wingo pushed a commit to branch lightning
in repository guile.

commit 19e227e035ab132caa3623f181fd6996bee2b259
Author: pcpa <[email protected]>
Date:   Sun Aug 11 18:07:44 2013 -0300

    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 f33dc79..28fc900 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-08-11 Paulo Andrade <[email protected]>
+
+       * lib/jit_s390x-cpu.c: Correct code checking if immediate
+       fits instruction, but using the negated value.
+
 2013-07-28 Paulo Andrade <[email protected]>
 
        * 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 527b1c1..b6c2479 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);

Reply via email to