From fb1f3ba0515dd5c1639fbd881ec31b01e6acb8e2 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Sun, 28 Apr 2019 13:47:42 +0200 Subject: [PATCH] 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 f6d984b89..b0b1e756e 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);