Browse Source

do not register handlers for fastmem if fastmem is disabled

Signed-off-by: lizzie <lizzie@eden-emu.dev>
dynarm7345
lizzie 3 weeks ago
committed by crueter
parent
commit
c7a7fe15e5
  1. 4
      src/dynarmic/src/dynarmic/backend/exception_handler_posix.cpp
  2. 6
      src/dynarmic/src/dynarmic/backend/x64/a32_emit_x64.cpp
  3. 6
      src/dynarmic/src/dynarmic/backend/x64/a64_emit_x64.cpp

4
src/dynarmic/src/dynarmic/backend/exception_handler_posix.cpp

@ -57,7 +57,7 @@ class SigHandler {
public:
SigHandler() noexcept {
signal_stack_size = std::max<size_t>(SIGSTKSZ, 2 * 1024 * 1024);
signal_stack_memory = mmap(nullptr, signal_stack_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
signal_stack_memory = std::malloc(signal_stack_size);
stack_t signal_stack{};
signal_stack.ss_sp = signal_stack_memory;
@ -89,7 +89,7 @@ public:
}
~SigHandler() noexcept {
munmap(signal_stack_memory, signal_stack_size);
std::free(signal_stack_memory);
}
void AddCodeBlock(u64 offset, CodeBlockInfo cbi) noexcept {

6
src/dynarmic/src/dynarmic/backend/x64/a32_emit_x64.cpp

@ -81,8 +81,10 @@ FP::FPCR A32EmitContext::FPCR(bool fpcr_controlled) const {
}
A32EmitX64::A32EmitX64(BlockOfCode& code, A32::UserConfig conf, A32::Jit* jit_interface)
: EmitX64(code), conf(std::move(conf)), jit_interface(jit_interface) {
GenFastmemFallbacks();
: EmitX64(code), conf(std::move(conf)), jit_interface(jit_interface) {
if (conf.fastmem_pointer)
GenFastmemFallbacks();
//
GenTerminalHandlers();
code.PreludeComplete();
ClearFastDispatchTable();

6
src/dynarmic/src/dynarmic/backend/x64/a64_emit_x64.cpp

@ -54,9 +54,11 @@ FP::FPCR A64EmitContext::FPCR(bool fpcr_controlled) const {
}
A64EmitX64::A64EmitX64(BlockOfCode& code, A64::UserConfig conf, A64::Jit* jit_interface)
: EmitX64(code), conf(conf), jit_interface{jit_interface} {
: EmitX64(code), conf(conf), jit_interface{jit_interface} {
if (conf.fastmem_pointer)
GenFastmemFallbacks();
//
GenMemory128Accessors();
GenFastmemFallbacks();
GenTerminalHandlers();
code.PreludeComplete();
ClearFastDispatchTable();

Loading…
Cancel
Save