[Orc] Use the 64-bit versions of FXSAVE/FXRSTOR for JIT reentry.

llvm-svn: 235325
This commit is contained in:
Lang Hames 2015-04-20 18:25:44 +00:00
parent 8e43f16a62
commit e77a58f25d

View File

@ -70,7 +70,7 @@ void OrcX86_64::insertResolverBlock(
unsigned Padding = (GPRs.size() + 1) % 2 ? 8 : 0;
unsigned FXSaveSize = 512 + Padding;
AsmStream << " subq $" << FXSaveSize << ", %rsp\n"
<< " fxsave (%rsp)\n"
<< " fxsave64 (%rsp)\n"
// Load callback manager address, compute trampoline address, call JIT.
<< " lea jit_callback_manager_addr(%rip), %rdi\n"
@ -85,7 +85,7 @@ void OrcX86_64::insertResolverBlock(
<< " movq %rax, 0x8(%rbp)\n"
// Restore the floating point state.
<< " fxrstor (%rsp)\n"
<< " fxrstor64 (%rsp)\n"
<< " addq $" << FXSaveSize << ", %rsp\n";
for (const auto &GPR : make_range(GPRs.rbegin(), GPRs.rend()))