PPC JIT repairs
This commit is contained in:
parent
380b6a8440
commit
f93b404dbd
|
@ -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);
|
jit_ldxi_p(JIT_R1, JIT_R2, &((Scheme_Chaperone *)0x0)->redirects);
|
||||||
|
|
||||||
/* if chaperone was for properties, only, then we're done */
|
/* 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)
|
if (setter)
|
||||||
jit_ldxi_p(JIT_V1, JIT_R1, &SCHEME_CDR(0x0)); /* rator */
|
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_R1);
|
||||||
jit_pusharg_p(JIT_R0);
|
jit_pusharg_p(JIT_R0);
|
||||||
JIT_UPDATE_THREAD_RSPTR();
|
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);
|
jit_retval(JIT_R0);
|
||||||
CHECK_LIMIT();
|
CHECK_LIMIT();
|
||||||
|
|
||||||
|
|
|
@ -1572,6 +1572,8 @@ static int generate_vector_op(mz_jit_state *jitter, int set, int int_ready, int
|
||||||
--jitter->unbox_depth;
|
--jitter->unbox_depth;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (can_chaperone)
|
||||||
|
mz_patch_ucbranch(pref);
|
||||||
if (!result_ignored)
|
if (!result_ignored)
|
||||||
(void)jit_movi_p(JIT_R0, scheme_void);
|
(void)jit_movi_p(JIT_R0, scheme_void);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1586,9 +1588,9 @@ static int generate_vector_op(mz_jit_state *jitter, int set, int int_ready, int
|
||||||
else
|
else
|
||||||
scheme_generate_alloc_double(jitter, 0);
|
scheme_generate_alloc_double(jitter, 0);
|
||||||
}
|
}
|
||||||
|
if (can_chaperone)
|
||||||
|
mz_patch_ucbranch(pref);
|
||||||
}
|
}
|
||||||
if (can_chaperone)
|
|
||||||
mz_patch_ucbranch(pref);
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user