diff options
author | Andy Wingo <wingo@pobox.com> | 2019-04-28 13:47:42 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2019-04-28 13:54:34 +0200 |
commit | fb1f3ba0515dd5c1639fbd881ec31b01e6acb8e2 (patch) | |
tree | 3d9e4d985f4791e3e7df3d7c128d102737b89859 /libguile/jit.c | |
parent | 61c6a0d3dd9930e8e060f844bf22f07f190329eb (diff) | |
download | guile-fb1f3ba0515dd5c1639fbd881ec31b01e6acb8e2.tar.gz |
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.
Diffstat (limited to 'libguile/jit.c')
-rw-r--r-- | libguile/jit.c | 8 |
1 files 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); |