Cassie Jones [Thu, 16 Jan 2020 05:00:47 +0000 (00:00 -0500)]
Add ISA version 0.2
This changes the registers to 16-bit registers in order to solve the
code and data addressing problems in the first revision. Having
registers be address-sized means that we don't need to use register
pairs or segments. Some of these changes open up new encoding space, or
invalidate some previous design decisions. For instance, registers are
16 bits now, so AND/OR/XOR can no longer have a full-size immediate in
one byte. With this, we free up encoding space for other options.
Major additions include a "load upper/lower immediate" instruction.
Cassie Jones [Sat, 11 Jan 2020 02:51:58 +0000 (21:51 -0500)]
Add instruction program synthesis
This is inspired by Whitequark's work with program synthesis in Rosette.
I used it for generating wider shifts to gain some confidence that I
don't need instructions that use the carry.