Monday, July 03, 2006

When I say jump...

After far more struggling than it should have taken, I've gotten all the jump and branch instructions in. What took so long was that I realized that I could make these instructions much more efficient than the ones I'd put in already...and that I could optimize many of the earlier ones in similar ways. However, since lots of the earlier logic is a bit snarled, I ended up breaking everything and having to back out half of my changes. So the new instructions are fast [and could be a bit faster], and the old instructions are waiting to be optimized. I'm not sure whether I'll do that yet; it may wait until I'm ready to do BC 2.0 [with parallel calculations instead of the current one-ball-at-a-time serialized ones].

Down:
  • addc
  • addci
  • add
  • addi
  • subc
  • subci
  • sub
  • subi
  • or
  • ori
  • xor
  • xori
  • and
  • andi
  • sh
  • shi
  • lbr
  • lba
  • sbr
  • sba
  • b
  • bc
  • bal
  • j
  • jc
  • jal

To Go:
  • lsbr
  • lsba
  • ssbr
  • ssba
  • li


The multiplier will be accessed via instructions such as [ls]sb[ar]: load/store special byte to [immediate address/register address]. It's essentially off in IO space, or in a coprocessor, if you will.

Hmm...I may get rid of the 'b' in all those load+store instructions; it's a bit silly on an 8-bit machine.