From f595f850397ef13a92f2de05aa4d95ce10951b54 Mon Sep 17 00:00:00 2001 From: MerryMage Date: Mon, 4 Dec 2017 22:13:28 +0000 Subject: [PATCH] block_of_code: Remove vzeroupper --- src/backend_x64/block_of_code.cpp | 6 ------ src/backend_x64/block_of_code.h | 6 ------ 2 files changed, 12 deletions(-) diff --git a/src/backend_x64/block_of_code.cpp b/src/backend_x64/block_of_code.cpp index 2aa6210d..27a34f51 100644 --- a/src/backend_x64/block_of_code.cpp +++ b/src/backend_x64/block_of_code.cpp @@ -105,12 +105,6 @@ void BlockOfCode::GenRunCode() { align(); run_code = getCurr(); - // 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: // 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 diff --git a/src/backend_x64/block_of_code.h b/src/backend_x64/block_of_code.h index d2dd2182..d8cbe7ef 100644 --- a/src/backend_x64/block_of_code.h +++ b/src/backend_x64/block_of_code.h @@ -51,12 +51,6 @@ public: const u64 address = reinterpret_cast(fn); const u64 distance = address - (getCurr() + 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) { // Far call mov(rax, address);