[cpu] Fix System-V ABI guest to host and host to guest thunk emitters for Linux

Upstream changes made from xenia-project#1339 and xenia-project#2228 back to canary builds. This fixes various emulation crashes caused from different calling conventions on System-V ABI platforms compared to Windows standard.
This commit is contained in:
Marco Rodolfi
2025-01-19 16:09:52 +01:00
committed by Radosław Gliński
parent b9be601fad
commit 8d841693ff
2 changed files with 149 additions and 8 deletions

View File

@@ -2,7 +2,7 @@
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2020 Ben Vanik. All rights reserved. *
* Copyright 2025 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
@@ -91,13 +91,11 @@ void* AllocFixed(void* base_address, size_t length,
} else {
flags = MAP_PRIVATE | MAP_ANONYMOUS;
}
void* result = mmap(base_address, length, prot,
MAP_PRIVATE | MAP_FIXED | MAP_ANONYMOUS, -1, 0);
if (result == MAP_FAILED) {
return nullptr;
} else {
void* result = mmap(base_address, length, prot, flags, -1, 0);
if (result != MAP_FAILED) {
return result;
}
return nullptr;
}
bool DeallocFixed(void* base_address, size_t length,