(From update of attachment 378068)
>+ } >+ } else { >+ // BLX IP >+ *(--_nIns) = (NIns)( (COND_AL) | (0x12<<20) | (0x3<<4) | (IP) ); >+ asm_output("blx IP (=%p)", addr);
I missed this earlier -- this needs to be 0x12<<20 | 0xFFF << 8 | 0x3<<4 (or just 0x12FFF3 << 4) -- the 12 bits there are SBO, not SBZ, right?
Also, nit -- can you make that IP lowercase in the output? (The other register names are all lowercase in the asm output)
(From update of attachment 378068)
>+ }
>+ } else {
>+ // BLX IP
>+ *(--_nIns) = (NIns)( (COND_AL) | (0x12<<20) | (0x3<<4) | (IP) );
>+ asm_output("blx IP (=%p)", addr);
I missed this earlier -- this needs to be 0x12<<20 | 0xFFF << 8 | 0x3<<4 (or just 0x12FFF3 << 4) -- the 12 bits there are SBO, not SBZ, right?
Also, nit -- can you make that IP lowercase in the output? (The other register names are all lowercase in the asm output)