From 19e227e035ab132caa3623f181fd6996bee2b259 Mon Sep 17 00:00:00 2001 From: pcpa Date: Sun, 11 Aug 2013 18:07:44 -0300 Subject: [PATCH] Correct off by one bug on s390x subi. * lib/jit_s390x-cpu.c: Correct code checking if immediate fits instruction, but using the negated value. --- ChangeLog | 5 +++++ lib/jit_s390x-cpu.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index f33dc7990..28fc900f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-08-11 Paulo Andrade + + * lib/jit_s390x-cpu.c: Correct code checking if immediate + fits instruction, but using the negated value. + 2013-07-28 Paulo Andrade * include/lightning/jit_s390x.h, lib/jit_s390x-cpu.c, diff --git a/lib/jit_s390x-cpu.c b/lib/jit_s390x-cpu.c index 527b1c1f3..b6c24795e 100644 --- a/lib/jit_s390x-cpu.c +++ b/lib/jit_s390x-cpu.c @@ -2377,9 +2377,9 @@ static void _subi(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0) { jit_int32_t reg; - if (r0 == r1 && s16_p(i0)) + if (r0 == r1 && s16_p(-i0)) AGHI(r0, x16(-i0)); - else if (s20_p(i0)) + else if (s20_p(-i0)) LAY(r0, x20(-i0), 0, r1); else { reg = jit_get_reg(jit_class_gpr);