summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2019-04-28 13:47:42 +0200
committerAndy Wingo <wingo@pobox.com>2019-04-28 13:54:34 +0200
commitfb1f3ba0515dd5c1639fbd881ec31b01e6acb8e2 (patch)
tree3d9e4d985f4791e3e7df3d7c128d102737b89859
parent61c6a0d3dd9930e8e060f844bf22f07f190329eb (diff)
downloadguile-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.
-rw-r--r--libguile/jit.c8
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);