From 8f9206901d0d303e243a325255debbf2a9c3ca91 Mon Sep 17 00:00:00 2001 From: MerryMage Date: Sat, 8 Sep 2018 10:47:00 +0100 Subject: [PATCH] backend/x64: Do not clear fast_dispatch_table if not enabled There is no need to pay for the cost of setting a large block of memory if we're not using it. --- src/backend/x64/a32_emit_x64.cpp | 4 +++- src/backend/x64/a64_emit_x64.cpp | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/backend/x64/a32_emit_x64.cpp b/src/backend/x64/a32_emit_x64.cpp index 4f2a25c6..09ab5e64 100644 --- a/src/backend/x64/a32_emit_x64.cpp +++ b/src/backend/x64/a32_emit_x64.cpp @@ -158,7 +158,9 @@ void A32EmitX64::InvalidateCacheRanges(const boost::icl::interval_set& rang } void A32EmitX64::ClearFastDispatchTable() { - fast_dispatch_table.fill({0xFFFFFFFFFFFFFFFFull, nullptr}); + if (config.enable_fast_dispatch) { + fast_dispatch_table.fill({0xFFFFFFFFFFFFFFFFull, nullptr}); + } } void A32EmitX64::GenMemoryAccessors() { diff --git a/src/backend/x64/a64_emit_x64.cpp b/src/backend/x64/a64_emit_x64.cpp index 25fde3a6..c9755392 100644 --- a/src/backend/x64/a64_emit_x64.cpp +++ b/src/backend/x64/a64_emit_x64.cpp @@ -144,7 +144,9 @@ void A64EmitX64::InvalidateCacheRanges(const boost::icl::interval_set& rang } void A64EmitX64::ClearFastDispatchTable() { - fast_dispatch_table.fill({0xFFFFFFFFFFFFFFFFull, nullptr}); + if (conf.enable_fast_dispatch) { + fast_dispatch_table.fill({0xFFFFFFFFFFFFFFFFull, nullptr}); + } } void A64EmitX64::GenMemory128Accessors() {