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);