guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 212/437: Correct remaining test cases, but not yet ones


From: Andy Wingo
Subject: [Guile-commits] 212/437: Correct remaining test cases, but not yet ones with stack arguments.
Date: Mon, 2 Jul 2018 05:14:23 -0400 (EDT)

wingo pushed a commit to branch lightning
in repository guile.

commit cee4ccb7d4646b40198e5f369006e96a146f1086
Author: pcpa <address@hidden>
Date:   Sat Apr 27 17:58:17 2013 -0300

    Correct remaining test cases, but not yet ones with stack arguments.
    
        lib/jit_ia64-cpu.c:
          Correct immediate range check of integer comparisons when
        inverting arguments.
          Correct gei_u that was not decrementing immediate when
        inverting arguments.
          Correct b?add* and b?sub* that were not properly updating
        the result register.
---
 ChangeLog          | 10 ++++++++++
 lib/jit_ia64-cpu.c | 28 ++++++++++++++--------------
 2 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 76debeb..8813af2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2013-04-27 Paulo Andrade <address@hidden>
 
+       lib/jit_ia64-cpu.c:
+         Correct immediate range check of integer comparisons when
+       inverting arguments.
+         Correct gei_u that was not decrementing immediate when
+       inverting arguments.
+         Correct b?add* and b?sub* that were not properly updating
+       the result register.
+
+2013-04-27 Paulo Andrade <address@hidden>
+
        * lib/jit_ia64-cpu.c: Correct wrong mapping of 2 instructions
        in "M-, stop, M-, stop" translation, that was ignoring the
        last stop (implemented as a nop I- stop).
diff --git a/lib/jit_ia64-cpu.c b/lib/jit_ia64-cpu.c
index b64f861..6ffe00d 100644
--- a/lib/jit_ia64-cpu.c
+++ b/lib/jit_ia64-cpu.c
@@ -3844,7 +3844,7 @@ static void
 _lti(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0)
 {
     jit_int32_t                reg;
-    if (i0 >= -128 && i0 <= 127)
+    if (i0 >= -127 && i0 <= 128)
        CMPI_LT(PR_7, PR_6, i0 - 1, r1);
     else {
        reg = jit_get_reg(jit_class_gpr);
@@ -3868,7 +3868,7 @@ static void
 _lti_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0)
 {
     jit_int32_t                reg;
-    if (i0 >= -128 && i0 <= 127)
+    if (i0 >= -127 && i0 <= 128)
        CMPI_LTU(PR_7, PR_6, i0 - 1, r1);
     else {
        reg = jit_get_reg(jit_class_gpr);
@@ -3952,7 +3952,7 @@ static void
 _gei(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0)
 {
     jit_int32_t                reg;
-    if (i0 >= -128 && i0 <= 127)
+    if (i0 >= -127 && i0 <= 128)
        CMPI_LT(PR_7, PR_6, i0 - 1, r1);
     else {
        reg = jit_get_reg(jit_class_gpr);
@@ -3976,8 +3976,8 @@ static void
 _gei_u(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_word_t i0)
 {
     jit_int32_t                reg;
-    if (i0 >= -128 && i0 <= 127)
-       CMPI_LTU(PR_7, PR_6, i0, r1);
+    if (i0 >= -127 && i0 <= 128)
+       CMPI_LTU(PR_7, PR_6, i0 - 1, r1);
     else {
        reg = jit_get_reg(jit_class_gpr);
        movi(rn(reg), i0);
@@ -4415,7 +4415,7 @@ _blti(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, 
jit_word_t i1)
 {
     jit_word_t         w;
     jit_int32_t                reg;
-    if (i1 >= -128 && i1 <= 127)
+    if (i1 >= -127 && i1 <= 128)
        CMPI_LT(PR_7, PR_6, i1 - 1, r0);
     else {
        reg = jit_get_reg(jit_class_gpr);
@@ -4445,7 +4445,7 @@ _blti_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, 
jit_word_t i1)
 {
     jit_word_t         w;
     jit_int32_t                reg;
-    if (i1 >= -128 && i1 <= 127)
+    if (i1 >= -127 && i1 <= 128)
        CMPI_LTU(PR_7, PR_6, i1 - 1, r0);
     else {
        reg = jit_get_reg(jit_class_gpr);
@@ -4551,7 +4551,7 @@ _bgei(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, 
jit_word_t i1)
 {
     jit_word_t         w;
     jit_int32_t                reg;
-    if (i1 >= -128 && i1 <= 127)
+    if (i1 >= -127 && i1 <= 128)
        CMPI_LT(PR_7, PR_6, i1 - 1, r0);
     else {
        reg = jit_get_reg(jit_class_gpr);
@@ -4581,7 +4581,7 @@ _bgei_u(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, 
jit_word_t i1)
 {
     jit_word_t         w;
     jit_int32_t                reg;
-    if (i1 >= -128 && i1 <= 127)
+    if (i1 >= -127 && i1 <= 128)
        CMPI_LTU(PR_7, PR_6, i1 - 1, r0);
     else {
        reg = jit_get_reg(jit_class_gpr);
@@ -4750,9 +4750,9 @@ _baddr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, 
jit_int32_t r1,
     ltr(rn(t2), rn(t1), r0);           /* t2 = t1 < r0 */
     ltr(rn(t1), r0, rn(t1));           /* t1 = r0 < t1 */
     CMPI_EQ(PR_6, PR_7, 0, rn(t0));
-    CMPI_EQ_p(PR_8, PR_9, 0, rn(t2), PR_6);/* if (t0==0) p4=t2==0,p5=t2!=0; */
-    CMPI_EQ_p(PR_8, PR_9, 0, rn(t2), PR_7);/* if (t0!=0) p4=t1==0,p5=t1!=0; */
-    MOV(r0, rn(t0));
+    CMPI_EQ_p(PR_8, PR_9, 0, rn(t2), PR_6);/* if (t0==0) p8=t2==0,p9=t2!=0; */
+    CMPI_EQ_p(PR_8, PR_9, 0, rn(t1), PR_7);/* if (t0!=0) p8=t1==0,p9=t1!=0; */
+    addr(r0, r0, r1);
     sync();
     w = _jit->pc.w;
     BRI_COND((i0 - w) >> 4, carry ? PR_9 : PR_8);
@@ -4827,8 +4827,8 @@ _bsubr(jit_state_t *_jit, jit_word_t i0, jit_int32_t r0, 
jit_int32_t r1,
     ltr(rn(t1), r0, rn(t1));           /* t1 = r0 < t1 */
     CMPI_EQ(PR_6, PR_7, 0, rn(t0));
     CMPI_EQ_p(PR_8, PR_9, 0, rn(t2), PR_6);/* if (t0==0) p4=t2==0,p5=t2!=0; */
-    CMPI_EQ_p(PR_8, PR_9, 0, rn(t2), PR_7);/* if (t0!=0) p4=t1==0,p5=t1!=0; */
-    MOV(r0, rn(t0));
+    CMPI_EQ_p(PR_8, PR_9, 0, rn(t1), PR_7);/* if (t0!=0) p4=t1==0,p5=t1!=0; */
+    subr(r0, r0, r1);
     sync();
     w = _jit->pc.w;
     BRI_COND((i0 - w) >> 4, carry ? PR_9 : PR_8);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]