a64_emit_x64: Don't use far code for now

This commit is contained in:
MerryMage 2018-01-09 21:21:50 +00:00
parent 593a569b53
commit 10c60dda97

View file

@ -251,17 +251,9 @@ void A64EmitX64::EmitTerminalImpl(IR::Term::LinkBlock terminal, IR::LocationDesc
} else { } else {
EmitPatchJg(terminal.next); EmitPatchJg(terminal.next);
} }
Xbyak::Label dest;
code->jmp(dest, Xbyak::CodeGenerator::T_NEAR);
code->SwitchToFarCode();
code->align(16);
code->L(dest);
code->mov(rax, A64::LocationDescriptor{terminal.next}.PC()); code->mov(rax, A64::LocationDescriptor{terminal.next}.PC());
code->mov(qword[r15 + offsetof(A64JitState, pc)], rax); code->mov(qword[r15 + offsetof(A64JitState, pc)], rax);
// PushRSBHelper(rax, rbx, terminal.next);
code->ForceReturnFromRunCode(); code->ForceReturnFromRunCode();
code->SwitchToNearCode();
} }
void A64EmitX64::EmitTerminalImpl(IR::Term::LinkBlockFast terminal, IR::LocationDescriptor) { void A64EmitX64::EmitTerminalImpl(IR::Term::LinkBlockFast terminal, IR::LocationDescriptor) {