Browse Source

skip exception handler register on PS4 and use xbyak::inner:getpagesize

eden-orbis-ps4
lizzie 5 months ago
parent
commit
b72d609da3
  1. 1
      src/dynarmic/src/dynarmic/backend/x64/block_of_code.cpp
  2. 5
      src/dynarmic/src/dynarmic/backend/x64/emit_x64.cpp
  3. 3
      src/dynarmic/src/dynarmic/common/spin_lock_x64.cpp

1
src/dynarmic/src/dynarmic/backend/x64/block_of_code.cpp

@ -7,6 +7,7 @@
*/ */
#include "dynarmic/backend/x64/block_of_code.h" #include "dynarmic/backend/x64/block_of_code.h"
#include "xbyak/xbyak.h"
#ifdef _WIN32 #ifdef _WIN32
# define WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN

5
src/dynarmic/src/dynarmic/backend/x64/emit_x64.cpp

@ -41,9 +41,10 @@ EmitContext::EmitContext(RegAlloc& reg_alloc, IR::Block& block, boost::container
EmitContext::~EmitContext() = default; EmitContext::~EmitContext() = default;
EmitX64::EmitX64(BlockOfCode& code)
: code(code) {
EmitX64::EmitX64(BlockOfCode& code) : code(code) {
#ifndef __OPENORBIS__
exception_handler.Register(code); exception_handler.Register(code);
#endif
} }
EmitX64::~EmitX64() = default; EmitX64::~EmitX64() = default;

3
src/dynarmic/src/dynarmic/common/spin_lock_x64.cpp

@ -13,6 +13,7 @@
#include "dynarmic/backend/x64/abi.h" #include "dynarmic/backend/x64/abi.h"
#include "dynarmic/backend/x64/hostloc.h" #include "dynarmic/backend/x64/hostloc.h"
#include "dynarmic/common/spin_lock.h" #include "dynarmic/common/spin_lock.h"
#include "xbyak/xbyak.h"
#ifdef DYNARMIC_ENABLE_NO_EXECUTE_SUPPORT #ifdef DYNARMIC_ENABLE_NO_EXECUTE_SUPPORT
static const auto default_cg_mode = Xbyak::DontSetProtectRWE; static const auto default_cg_mode = Xbyak::DontSetProtectRWE;
@ -78,7 +79,7 @@ namespace {
struct SpinLockImpl { struct SpinLockImpl {
void Initialize() noexcept; void Initialize() noexcept;
static void GlobalInitialize() noexcept; static void GlobalInitialize() noexcept;
Xbyak::CodeGenerator code = Xbyak::CodeGenerator(4096, default_cg_mode);
Xbyak::CodeGenerator code = Xbyak::CodeGenerator(Xbyak::inner::getPageSize(), default_cg_mode);
void (*lock)(volatile int*) = nullptr; void (*lock)(volatile int*) = nullptr;
void (*unlock)(volatile int*) = nullptr; void (*unlock)(volatile int*) = nullptr;
}; };

Loading…
Cancel
Save