mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-08-18 22:23:35 +00:00
[dynarmic, MacroHLE] Fix crashes on W^X systems (#4090)
should fix crashes on: - NetBSD - SELinux - OpenBSD - other W^X systems - some person trying to be funny with W^X on their system even if they dont have to perf impact should be minimal Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4090 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: Maufeat <sahyno1996@gmail.com>
This commit is contained in:
@@ -1117,6 +1117,8 @@ void MacroJITx64Impl::Optimizer_ScanFlags() {
|
||||
}
|
||||
|
||||
void MacroJITx64Impl::Compile() {
|
||||
// Matching PROTECT_RE needed for W^X systems
|
||||
setProtectMode(Xbyak::CodeArray::ProtectMode::PROTECT_RW);
|
||||
labels.fill(Xbyak::Label());
|
||||
|
||||
Common::X64::ABI_PushRegistersAndAdjustStack(*this, Common::X64::ABI_ALL_CALLEE_SAVED, 8);
|
||||
@@ -1164,6 +1166,7 @@ void MacroJITx64Impl::Compile() {
|
||||
Common::X64::ABI_PopRegistersAndAdjustStack(*this, Common::X64::ABI_ALL_CALLEE_SAVED, 8);
|
||||
ret();
|
||||
ready();
|
||||
setProtectMode(Xbyak::CodeArray::ProtectMode::PROTECT_RE);
|
||||
program = getCode<ProgramType>();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user