Adr toPatch = jit_movi_p(JIT_R0,0x7fffffff);
which forces the emission of a 32-bit wide move. Still, I thought I'd report it as this is a robustness issue. Since the movi_p is already a variant of movi_l that returns the instruction address with the intent to patch it, maybe it would be safer/more robust to always emit an instruction of the maximum operand size.
Yes, of course. jit_movi_p is especially meant to be patchable.
Alternatively, make separate 32/64-bit versions that use (respectively) MOVL and MOVABSQ. Thanks!
I'll wait for you to commit (remember the ChangeLog and everything) and then do this.
Paolo