Assembler fully working
The new LLVM-based assembler is fully working, and 100% of the regression tests have been moved over to it as of this afternoon. It took close to 9 months to get done, but it’s all working now and gives us […]
The new LLVM-based assembler is fully working, and 100% of the regression tests have been moved over to it as of this afternoon. It took close to 9 months to get done, but it’s all working now and gives us […]
I’ve spent the last few evenings tweaking the LLVM backend’s MC code to fix a lot of minor issues, and it’s to the point where it can generate normal output from ECLair assembly input now! It understands that different instructions […]
Worked on the LLVM backend a bunch more this evening, and it successfully assembled something for the first time! Halt is just 0xfe but the backend only understands 16-bit instructions at the moment, so it assembled as noop, halt, but […]
I haven’t made any posts here in ages, but that doesn’t mean that work hasn’t been happening behind the scenes! I looked at what my options were last fall when it came to assemblers, and it looked like I had […]
Started working on the implementation of jmpe/jmpne, got frustrated that the temporary assembler still doesn’t support two-byte instructions. Fixed this, it now looks at the opcode and figures out which instruction will require a second register-selector byte and handles this […]
While thinking about the toolchain I realized I hadn’t ever finished implementing branch instructions. Today I added a microcode bit to negate branching (for the ‘if not’ jump instructions), and implemented the jmpnz and jmpno instructions. Also updated the test […]
As I started looking at adding ECLair’s instructions to the LLVM port, I realized that a lot of them aren’t organized in a reasonable way. For example, add16 with the source/dest register A has an entirely different pattern of bits […]
I’ve spent a bunch of my spare time over the past few months figuring out a toolchain for ECLair. I’m using LLVM so far, and have been working on learning how to port it to a new target platform and […]
Was pretty much out of microcode space, so extended the address width from 8 bits to 9. I’d known for awhile that this would likely be needed, as I exceeded 80% of the microcode space used up before even hitting […]
Finished all the 8-bit load and store operations, everything has proper unit tests and is working. While doing this it was starting to get hard to manage the single microcode definition file as it’s almost 650 lines long, and it’s […]