block_of_code: Remove vzeroupper

This commit is contained in:
MerryMage 2017-12-04 22:13:28 +00:00
parent 05f3f07704
commit f595f85039
2 changed files with 0 additions and 12 deletions

View file

@ -105,12 +105,6 @@ void BlockOfCode::GenRunCode() {
align(); align();
run_code = getCurr<RunCodeFuncType>(); run_code = getCurr<RunCodeFuncType>();
// As we currently do not emit AVX instructions, AVX-SSE transition may occur.
// We avoid the transition penalty by calling vzeroupper.
if (DoesCpuSupport(Xbyak::util::Cpu::tAVX)) {
vzeroupper();
}
// This serves two purposes: // This serves two purposes:
// 1. It saves all the registers we as a callee need to save. // 1. It saves all the registers we as a callee need to save.
// 2. It aligns the stack so that the code the JIT emits can assume // 2. It aligns the stack so that the code the JIT emits can assume

View file

@ -51,12 +51,6 @@ public:
const u64 address = reinterpret_cast<u64>(fn); const u64 address = reinterpret_cast<u64>(fn);
const u64 distance = address - (getCurr<u64>() + 5); const u64 distance = address - (getCurr<u64>() + 5);
// As we do not know if user-code is AVX or SSE, an AVX-SSE transition may occur.
// We avoid the transition penalty by calling vzeroupper.
if (DoesCpuSupport(Xbyak::util::Cpu::tAVX)) {
vzeroupper();
}
if (distance >= 0x0000000080000000ULL && distance < 0xFFFFFFFF80000000ULL) { if (distance >= 0x0000000080000000ULL && distance < 0xFFFFFFFF80000000ULL) {
// Far call // Far call
mov(rax, address); mov(rax, address);