FPSCR: Save and restore MSCSR across supervisor call, fix MXCSR exception mask

This commit is contained in:
MerryMage
2016-08-07 00:40:29 +01:00
parent c35f06470f
commit f88b1b4c2e
3 changed files with 6 additions and 2 deletions

View File

@@ -307,7 +307,11 @@ void EmitX64::EmitCallSupervisor(IR::Block&, IR::Inst* inst) {
reg_alloc.HostCall(nullptr, imm32);
code->STMXCSR(MDisp(R15, offsetof(JitState, guest_MXCSR)));
code->LDMXCSR(MDisp(R15, offsetof(JitState, save_host_MXCSR)));
code->ABI_CallFunction(reinterpret_cast<void*>(cb.CallSVC));
code->STMXCSR(MDisp(R15, offsetof(JitState, save_host_MXCSR)));
code->LDMXCSR(MDisp(R15, offsetof(JitState, guest_MXCSR)));
}
void EmitX64::EmitGetCarryFromOp(IR::Block&, IR::Inst*) {