emit_arm64_a32: Fix CheckBit

This commit is contained in:
Merry 2022-07-24 18:15:39 +01:00 committed by merry
parent 95ae21bd41
commit a6e761daa9

View file

@ -98,7 +98,7 @@ void EmitA32Terminal(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Term::If
void EmitA32Terminal(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Term::CheckBit terminal, IR::LocationDescriptor initial_location, bool is_single_step) { void EmitA32Terminal(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Term::CheckBit terminal, IR::LocationDescriptor initial_location, bool is_single_step) {
oaknut::Label fail; oaknut::Label fail;
code.LDRB(Wscratch0, Xstate, offsetof(StackLayout, check_bit)); code.LDRB(Wscratch0, SP, offsetof(StackLayout, check_bit));
code.CBZ(Wscratch0, fail); code.CBZ(Wscratch0, fail);
EmitA32Terminal(code, ctx, terminal.then_, initial_location, is_single_step); EmitA32Terminal(code, ctx, terminal.then_, initial_location, is_single_step);
code.l(fail); code.l(fail);