totalspectrum/spin2cpp

P2: Can't assemble branches with long immediates

Wuerfel21 opened this issue · 1 comments

DAT
              org
              tjnz pa,##.label
              long 0[400]
.label        jmp #$

I'm fairly sure this should work.

Also, I think I saw a really stupid workaround for this issue somewhere in assemble_ir.c

This should be fixed now. One quirk of this instruction encoding is that PNut, at least, only encodes 18 bits for the signed offset in the AUGD + tjnz, rather than the full 32 bits that are available. I've made flexspin do the same.