guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 224/437: Correct mips o32 abi that was broken when addin


From: Andy Wingo
Subject: [Guile-commits] 224/437: Correct mips o32 abi that was broken when adding n32 abi support.
Date: Mon, 2 Jul 2018 05:14:25 -0400 (EDT)

wingo pushed a commit to branch lightning
in repository guile.

commit 8b28150303ac87d8662d7070c42fd6c87041573c
Author: pcpa <address@hidden>
Date:   Tue Jun 25 12:21:07 2013 -0300

    Correct mips o32 abi that was broken when adding n32 abi support.
    
        * lib/jit_mips.c: Correct cut&paste error that caused wrong
        stack offset calculation for double arguments in stack in
        the o32 abi.
        Correct typo in the __LITTLE_ENDIAN macro name, that came
        from cut&paste error in the original typo in lib/jit_ppc.c.
    
        * lib/jit_ia64.c, lib/jit_ppc.c: Correct typo in the
        __LITTLE_ENDIAN macro name.
---
 ChangeLog      | 11 +++++++++++
 lib/jit_ia64.c | 14 +++++++-------
 lib/jit_mips.c | 38 +++++++++++++++++++-------------------
 lib/jit_ppc.c  |  2 +-
 4 files changed, 38 insertions(+), 27 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 81fc943..8bd544a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2013-06-25 Paulo Andrade <address@hidden>
+
+       * lib/jit_mips.c: Correct cut&paste error that caused wrong
+       stack offset calculation for double arguments in stack in
+       the o32 abi.
+       Correct typo in the __LITTLE_ENDIAN macro name, that came
+       from cut&paste error in the original typo in lib/jit_ppc.c.
+
+       * lib/jit_ia64.c, lib/jit_ppc.c: Correct typo in the
+       __LITTLE_ENDIAN macro name.
+
 2013-06-22 Paulo Andrade <address@hidden>
 
        * check/lightning.c, configure.ac, include/lightning.h,
diff --git a/lib/jit_ia64.c b/lib/jit_ia64.c
index a4c8764..71142a2 100644
--- a/lib/jit_ia64.c
+++ b/lib/jit_ia64.c
@@ -405,7 +405,7 @@ _jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t 
*v)
        jit_extr_c(u, _R32 + v->u.w);
     }
     else {
-#if __BYTE_ORDER == __LITTLE__ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
        jit_ldxi_c(u, JIT_FP, v->u.w);
 #else
        jit_ldxi_c(u, JIT_FP,
@@ -420,7 +420,7 @@ _jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, jit_node_t 
*v)
     if (v->u.w < 8)
        jit_extr_uc(u, _R32 + v->u.w);
     else {
-#if __BYTE_ORDER == __LITTLE__ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
        jit_ldxi_uc(u, JIT_FP, v->u.w);
 #else
        jit_ldxi_uc(u, JIT_FP,
@@ -435,7 +435,7 @@ _jit_getarg_s(jit_state_t *_jit, jit_int32_t u, jit_node_t 
*v)
     if (v->u.w < 8)
        jit_extr_s(u, _R32 + v->u.w);
     else {
-#if __BYTE_ORDER == __LITTLE__ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
        jit_ldxi_s(u, JIT_FP, v->u.w);
 #else
        jit_ldxi_s(u, JIT_FP,
@@ -450,7 +450,7 @@ _jit_getarg_us(jit_state_t *_jit, jit_int32_t u, jit_node_t 
*v)
     if (v->u.w < 8)
        jit_extr_us(u, _R32 + v->u.w);
     else {
-#if __BYTE_ORDER == __LITTLE__ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
        jit_ldxi_us(u, JIT_FP, v->u.w);
 #else
        jit_ldxi_us(u, JIT_FP,
@@ -465,7 +465,7 @@ _jit_getarg_i(jit_state_t *_jit, jit_int32_t u, jit_node_t 
*v)
     if (v->u.w < 8)
        jit_extr_i(u, _R32 + v->u.w);
     else {
-#if __BYTE_ORDER == __LITTLE__ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
        jit_ldxi_i(u, JIT_FP, v->u.w);
 #else
        jit_ldxi_i(u, JIT_FP,
@@ -480,7 +480,7 @@ _jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, jit_node_t 
*v)
     if (v->u.w < 8)
        jit_extr_ui(u, _R32 + v->u.w);
     else {
-#if __BYTE_ORDER == __LITTLE__ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
        jit_ldxi_ui(u, JIT_FP, v->u.w);
 #else
        jit_ldxi_ui(u, JIT_FP,
@@ -504,7 +504,7 @@ _jit_getarg_f(jit_state_t *_jit, jit_int32_t u, jit_node_t 
*v)
     if (v->u.w < 8)
        jit_movr_f(u, _F8 + v->u.w);
     else {
-#if __BYTE_ORDER == __LITTLE__ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
        jit_ldxi_f(u, JIT_FP, v->u.w);
 #else
        jit_ldxi_f(u, JIT_FP,
diff --git a/lib/jit_mips.c b/lib/jit_mips.c
index 1bdf28a..c2ae781 100644
--- a/lib/jit_mips.c
+++ b/lib/jit_mips.c
@@ -286,7 +286,7 @@ _jit_arg(jit_state_t *_jit)
        _jitc->function->self.size += STACK_SLOT;
     }
 #else
-    offset = (_jitc->function->self.size - stack_framesize) >> 2;
+    offset = (_jitc->function->self.size - stack_framesize) >> STACK_SHIFT;
     _jitc->function->self.argi = 1;
     if (offset >= 4)
        offset = _jitc->function->self.size;
@@ -314,7 +314,7 @@ _jit_arg_f(jit_state_t *_jit)
        _jitc->function->self.size += STACK_SLOT;
     }
 #else
-    offset = (_jitc->function->self.size - stack_framesize) >> 2;
+    offset = (_jitc->function->self.size - stack_framesize) >> STACK_SHIFT;
     if (offset < 4) {
        if (!_jitc->function->self.argi) {
            if (offset == 0)
@@ -356,14 +356,14 @@ _jit_arg_d(jit_state_t *_jit)
        _jitc->function->self.size += 4;
        _jitc->function->self.argi = 1;
     }
-    offset = (_jitc->function->self.size - stack_framesize) >> 2;
+    offset = (_jitc->function->self.size - stack_framesize) >> STACK_SHIFT;
     if (offset < 4) {
        if (!_jitc->function->self.argi)
            offset += 4;
     }
     else
        offset = _jitc->function->self.size;
-    _jitc->function->self.size += STACK_SLOT;
+    _jitc->function->self.size += sizeof(jit_float64_t);
 #endif
     return (jit_new_node_w(jit_code_arg_d, offset));
 }
@@ -380,12 +380,12 @@ _jit_getarg_c(jit_state_t *_jit, jit_int32_t u, 
jit_node_t *v)
     if (v->u.w < NUM_WORD_ARGS)
        jit_extr_c(u, _A0 - v->u.w);
     else {
-#if __BYTE_ORDER == __LITTLE__ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
        jit_ldxi_c(u, _FP, v->u.w);
 #else
        jit_ldxi_c(u, JIT_FP, v->u.w + STACK_SLOT - sizeof(jit_int8_t));
-    }
 #endif
+    }
 }
 
 void
@@ -394,12 +394,12 @@ _jit_getarg_uc(jit_state_t *_jit, jit_int32_t u, 
jit_node_t *v)
     if (v->u.w < NUM_WORD_ARGS)
        jit_extr_uc(u, _A0 - v->u.w);
     else {
-#if __BYTE_ORDER == __LITTLE__ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
        jit_ldxi_uc(u, _FP, v->u.w);
 #else
        jit_ldxi_uc(u, JIT_FP, v->u.w + STACK_SLOT - sizeof(jit_uint8_t));
-    }
 #endif
+    }
 }
 
 void
@@ -408,12 +408,12 @@ _jit_getarg_s(jit_state_t *_jit, jit_int32_t u, 
jit_node_t *v)
     if (v->u.w < NUM_WORD_ARGS)
        jit_extr_s(u, _A0 - v->u.w);
     else {
-#if __BYTE_ORDER == __LITTLE__ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
        jit_ldxi_s(u, _FP, v->u.w);
 #else
        jit_ldxi_s(u, JIT_FP, v->u.w + STACK_SLOT - sizeof(jit_int16_t));
-    }
 #endif
+    }
 }
 
 void
@@ -422,12 +422,12 @@ _jit_getarg_us(jit_state_t *_jit, jit_int32_t u, 
jit_node_t *v)
     if (v->u.w < NUM_WORD_ARGS)
        jit_extr_us(u, _A0 - v->u.w);
     else {
-#if __BYTE_ORDER == __LITTLE__ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
        jit_ldxi_us(u, _FP, v->u.w);
 #else
        jit_ldxi_us(u, JIT_FP, v->u.w + STACK_SLOT - sizeof(jit_uint16_t));
-    }
 #endif
+    }
 }
 
 void
@@ -441,12 +441,12 @@ _jit_getarg_i(jit_state_t *_jit, jit_int32_t u, 
jit_node_t *v)
 #endif
     }
     else {
-#if __BYTE_ORDER == __LITTLE__ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
        jit_ldxi_i(u, _FP, v->u.w);
 #else
        jit_ldxi_i(u, JIT_FP, v->u.w + STACK_SLOT - sizeof(jit_int32_t));
-    }
 #endif
+    }
 }
 
 #if __WORDSIZE == 64
@@ -456,12 +456,12 @@ _jit_getarg_ui(jit_state_t *_jit, jit_int32_t u, 
jit_node_t *v)
     if (v->u.w < NUM_WORD_ARGS)
        jit_extr_ui(u, _A0 - v->u.w);
     else {
-#  if __BYTE_ORDER == __LITTLE__ENDIAN
+#  if __BYTE_ORDER == __LITTLE_ENDIAN
        jit_ldxi_ui(u, _FP, v->u.w);
 #  else
        jit_ldxi_ui(u, JIT_FP, v->u.w + STACK_SLOT - sizeof(jit_uint32_t));
-    }
 #  endif
+    }
 }
 
 void
@@ -668,7 +668,7 @@ _jit_pushargr_d(jit_state_t *_jit, jit_int32_t u)
        _jitc->function->call.size += 4;
        adjust = 1;
     }
-    offset = _jitc->function->call.size >> 2;
+    offset = _jitc->function->call.size >> STACK_SHIFT;
     if (offset < 3) {
        if (adjust) {
            jit_movr_d_ww(_A0 - offset, _A0 - (offset + 1), u);
@@ -681,7 +681,7 @@ _jit_pushargr_d(jit_state_t *_jit, jit_int32_t u)
     }
     else
        jit_stxi_d(_jitc->function->call.size, JIT_SP, u);
-    _jitc->function->call.size += STACK_SLOT;
+    _jitc->function->call.size += sizeof(jit_float64_t);
 #endif
 }
 
@@ -731,7 +731,7 @@ _jit_pushargi_d(jit_state_t *_jit, jit_float64_t u)
        jit_stxi_d(_jitc->function->call.size, JIT_SP, regno);
        jit_unget_reg(regno);
     }
-    _jitc->function->call.size += STACK_SLOT;
+    _jitc->function->call.size += sizeof(jit_float64_t);
 #endif
 }
 
diff --git a/lib/jit_ppc.c b/lib/jit_ppc.c
index a2e6401..010d905 100644
--- a/lib/jit_ppc.c
+++ b/lib/jit_ppc.c
@@ -318,7 +318,7 @@ _jit_getarg_c(jit_state_t *_jit, jit_int32_t u, jit_node_t 
*v)
     if (v->u.w < 8)
        jit_extr_c(u, JIT_RA0 - v->u.w);
     else {
-#if __BYTE_ORDER == __LITTLE__ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
        jit_ldxi_c(u, JIT_FP, v->u.w);
 #else
        jit_ldxi_c(u, JIT_FP,



reply via email to

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