diff --git a/ChangeLog b/ChangeLog index 2058deff2..3b4b0fc2f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-10-26 Paulo Andrade + + * lib/jit_x86-cpu.c: Correct a register allocation leak in + _bmsi and _bmci. + 2014-10-25 Paulo Andrade * lib/jit_disasm.c: Do not cause an fatal error if init_jit diff --git a/lib/jit_x86-cpu.c b/lib/jit_x86-cpu.c index 2e284f917..80d5b4084 100644 --- a/lib/jit_x86-cpu.c +++ b/lib/jit_x86-cpu.c @@ -3069,6 +3069,7 @@ _bmsi(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i1); testr(r0, rn(reg)); + jit_unget_reg(reg); } jnz(i0); return (_jit->pc.w); @@ -3092,6 +3093,7 @@ _bmci(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, jit_word_t i1) reg = jit_get_reg(jit_class_gpr); movi(rn(reg), i1); testr(r0, rn(reg)); + jit_unget_reg(reg); } jz(i0); return (_jit->pc.w);