Stephane Peiry <[EMAIL PROTECTED]> wrote:
> While playing with JIT on Suns, I've found out that the following pasm code:
> set I1, 2
> LOOP: sub I1, 1
> if I1, LOOP
> print "end\n"
> end
> never finishes.. that is: parrot -j loop.pasm hangs forever (never printing
> 'end') while the non-jitted "parrot loop.pasm" prints 'end' and finishes
> there as expected.
I don't know suns JIT code nor the assembler syntax, but it seems that
the two subcc lines are broken:
emitm_subcc_r(NATIVECODE, MAP[1], emitm_g(0), emitm_g(0));
If I understand that correctly it should read:
emitm_subcc_r(NATIVECODE, MAP[1], MAP[1], emitm_g(0));
(and similar a few lines below) - at least when compared to other code
that uses subcc_r.
> Thanks,
> Stephane
> PS.: placing a 'print I1' within the loop resolves the problem,
That could clear g(0) ...
leo