From f93b404dbd1e60ba0efa88329f23479da73d2422 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 7 Jul 2011 06:54:55 -0600 Subject: [PATCH] PPC JIT repairs --- src/racket/src/jitcommon.c | 4 ++-- src/racket/src/jitinline.c | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/racket/src/jitcommon.c b/src/racket/src/jitcommon.c index bc63ff91d8..feae072a4c 100644 --- a/src/racket/src/jitcommon.c +++ b/src/racket/src/jitcommon.c @@ -887,7 +887,7 @@ static int generate_apply_proxy(mz_jit_state *jitter, int setter) jit_ldxi_p(JIT_R1, JIT_R2, &((Scheme_Chaperone *)0x0)->redirects); /* if chaperone was for properties, only, then we're done */ - ref = mz_beqi_t(jit_forward(), JIT_R1, scheme_vector_type, JIT_R2); + ref = mz_beqi_t(jit_forward(), JIT_R1, scheme_vector_type, JIT_V1); if (setter) jit_ldxi_p(JIT_V1, JIT_R1, &SCHEME_CDR(0x0)); /* rator */ @@ -934,7 +934,7 @@ static int generate_apply_proxy(mz_jit_state *jitter, int setter) jit_pusharg_p(JIT_R1); jit_pusharg_p(JIT_R0); JIT_UPDATE_THREAD_RSPTR(); - mz_finish_lwe(ts_vector_check_chaperone_of, refrts); + (void)mz_finish_lwe(ts_vector_check_chaperone_of, refrts); jit_retval(JIT_R0); CHECK_LIMIT(); diff --git a/src/racket/src/jitinline.c b/src/racket/src/jitinline.c index 7cf016c328..8018fe447d 100644 --- a/src/racket/src/jitinline.c +++ b/src/racket/src/jitinline.c @@ -1572,6 +1572,8 @@ static int generate_vector_op(mz_jit_state *jitter, int set, int int_ready, int --jitter->unbox_depth; } } + if (can_chaperone) + mz_patch_ucbranch(pref); if (!result_ignored) (void)jit_movi_p(JIT_R0, scheme_void); } else { @@ -1586,9 +1588,9 @@ static int generate_vector_op(mz_jit_state *jitter, int set, int int_ready, int else scheme_generate_alloc_double(jitter, 0); } + if (can_chaperone) + mz_patch_ucbranch(pref); } - if (can_chaperone) - mz_patch_ucbranch(pref); return 1; }