guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 04/04: Fix errors in 32-bit JIT support


From: Andy Wingo
Subject: [Guile-commits] 04/04: Fix errors in 32-bit JIT support
Date: Sun, 28 Apr 2019 07:57:00 -0400 (EDT)

wingo pushed a commit to branch lightening
in repository guile.

commit fb1f3ba0515dd5c1639fbd881ec31b01e6acb8e2
Author: Andy Wingo <address@hidden>
Date:   Sun Apr 28 13:47:42 2019 +0200

    Fix errors in 32-bit JIT support
    
    * libguile/jit.c (compile_ursh_immediate):
    (compile_ulsh_immediate): Fix immediate/register variant calling.
    Happily a benefit of lightening, as type safety did this for us.
    (DEFINE_CLOBBER_RECORDING_EMITTER_R_R_2): Pass JIT state.
---
 libguile/jit.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libguile/jit.c b/libguile/jit.c
index f6d984b..b0b1e75 100644
--- a/libguile/jit.c
+++ b/libguile/jit.c
@@ -492,7 +492,7 @@ emit_##stem (scm_jit_state *j,                              
            \
              jit_##typ##_t dst1, jit_##typ##_t dst2,                    \
              jit_##typ##_t a, jit_##typ##_t b)                          \
 {                                                                       \
-  jit_##stem (dst1, dst2, a, b);                                        \
+  jit_##stem (j->jit, dst1, dst2, a, b);                                \
   record_##typ##_clobber (j, dst1);                                     \
   record_##typ##_clobber (j, dst2);                                     \
 }
@@ -2945,7 +2945,7 @@ compile_ursh_immediate (scm_jit_state *j, uint8_t dst, 
uint8_t a, uint8_t b)
   else if (b == 32)
     {
       /*  hi = 0, lo = hi */
-      emit_movi (j, T0, T1);
+      emit_movr (j, T0, T1);
       emit_movi (j, T1, 0);
     }
   else /* b > 32 */
@@ -2985,13 +2985,13 @@ compile_ulsh_immediate (scm_jit_state *j, uint8_t dst, 
uint8_t a, uint8_t b)
   else if (b == 32)
     {
       /*  hi = lo, lo = 0 */
-      emit_movi (j, T1, T0);
+      emit_movr (j, T1, T0);
       emit_movi (j, T0, 0);
     }
   else /* b > 32 */
     {
       /* hi = lo << (s-32), lo = 0 */
-      emit_lshr (j, T1, T0, b - 32);
+      emit_lshi (j, T1, T0, b - 32);
       emit_movi (j, T0, 0);
     }
   emit_sp_set_u64 (j, dst, T0, T1);



reply via email to

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