bc: fix some JIT mismatches

Using a newer GCC on arm32 exposed several small problems.
This commit is contained in:
Matthew Flatt 2020-06-26 15:21:09 -06:00
parent 866d6319a3
commit 38d90a5b0b
3 changed files with 4 additions and 4 deletions

View File

@ -2483,7 +2483,7 @@ static int generate_unsafe_struct_ref_sequence(mz_jit_state *jitter, Scheme_Obje
jit_addi_p(JIT_R1, JIT_RUNSTACK, WORDS_TO_BYTES(stack_pos)); jit_addi_p(JIT_R1, JIT_RUNSTACK, WORDS_TO_BYTES(stack_pos));
jit_str_p(JIT_R1, JIT_R0); jit_str_p(JIT_R1, JIT_R0);
jit_movi_i(JIT_V1, base); jit_movi_i(JIT_V1, base);
jit_movi_p(JIT_R0, count); jit_movi_i(JIT_R0, count);
(void)jit_calli(sjc.struct_raw_refs_code); (void)jit_calli(sjc.struct_raw_refs_code);
ref2 = jit_jmpi(jit_forward()); ref2 = jit_jmpi(jit_forward());
mz_patch_branch(ref); mz_patch_branch(ref);

View File

@ -1919,8 +1919,8 @@ static int common4(mz_jit_state *jitter, void *_data)
mz_prolog(JIT_R2); mz_prolog(JIT_R2);
JIT_UPDATE_THREAD_RSPTR(); JIT_UPDATE_THREAD_RSPTR();
jit_prepare(3); jit_prepare(3);
jit_pusharg_p(JIT_R0); jit_pusharg_i(JIT_R0);
jit_pusharg_p(JIT_V1); jit_pusharg_i(JIT_V1);
jit_pusharg_p(JIT_R1); jit_pusharg_p(JIT_R1);
(void)mz_finish_lwe(ts_unsafe_struct_refs, ref); (void)mz_finish_lwe(ts_unsafe_struct_refs, ref);
jit_retval(JIT_R0); jit_retval(JIT_R0);

View File

@ -2789,7 +2789,7 @@ static int generate_binary_char(mz_jit_state *jitter, Scheme_App3_Rec *app, int
jit_ldxi_i(JIT_R0, JIT_R0, (intptr_t)&SCHEME_CHAR_VAL((Scheme_Object *)0x0)); jit_ldxi_i(JIT_R0, JIT_R0, (intptr_t)&SCHEME_CHAR_VAL((Scheme_Object *)0x0));
} else { } else {
/* Unlikely, due to folding, but possible due to specialization */ /* Unlikely, due to folding, but possible due to specialization */
jit_ldi_i(JIT_R0, SCHEME_CHAR_VAL(r1)); jit_movi_i(JIT_R0, SCHEME_CHAR_VAL(r1));
} }
if (!SCHEME_CHARP(r2)) { if (!SCHEME_CHARP(r2)) {