diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-02-27 13:08:28 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-02-27 13:08:28 +0100 |
| commit | e190bb4b52b23be9745bd534f40d30d175ee8eaa (patch) | |
| tree | 4a00bef8e80f767058e867858eb749b76e0e2513 /src | |
| parent | 5d9b14dac7f2c85ffae3820e8a2a3b34fe3b3a06 (diff) | |
| download | box64-e190bb4b52b23be9745bd534f40d30d175ee8eaa.tar.gz box64-e190bb4b52b23be9745bd534f40d30d175ee8eaa.zip | |
[DYNAREC] Even more work on multiarch
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/arm64/dynarec_arm64_helper.h | 2 | ||||
| -rwxr-xr-x | src/dynarec/dynarec_arch.h | 11 | ||||
| -rwxr-xr-x | src/dynarec/dynarec_helper.h | 12 | ||||
| -rwxr-xr-x | src/dynarec/dynarec_native.c | 5 | ||||
| -rwxr-xr-x | src/dynarec/dynarec_native_pass.c (renamed from src/dynarec/arm64/dynarec_arm64_pass.c) | 8 |
5 files changed, 22 insertions, 16 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_helper.h b/src/dynarec/arm64/dynarec_arm64_helper.h index e1bbd5b9..7911e0c4 100755 --- a/src/dynarec/arm64/dynarec_arm64_helper.h +++ b/src/dynarec/arm64/dynarec_arm64_helper.h @@ -674,7 +674,7 @@ void* arm64_next(x64emu_t* emu, uintptr_t addr); #define STEPNAME(N) STEPNAME2(N, STEP) #endif -#define arm_pass STEPNAME(arm_pass) +#define native_pass STEPNAME(native_pass) #define dynarec64_00 STEPNAME(dynarec64_00) #define dynarec64_0F STEPNAME(dynarec64_0F) diff --git a/src/dynarec/dynarec_arch.h b/src/dynarec/dynarec_arch.h index ba054697..0c62469f 100755 --- a/src/dynarec/dynarec_arch.h +++ b/src/dynarec/dynarec_arch.h @@ -2,22 +2,13 @@ #define __DYNAREC_ARCH__H_ #ifdef ARM64 +#include "arm64/arm64_printer.h" #include "arm64/dynarec_arm64_private.h" #include "arm64/dynarec_arm64_functions.h" #define instruction_native_t instruction_arm64_t #define dynarec_native_t dynarec_arm_t -uintptr_t arm_pass0(dynarec_arm_t* dyn, uintptr_t addr); -uintptr_t arm_pass1(dynarec_arm_t* dyn, uintptr_t addr); -uintptr_t arm_pass2(dynarec_arm_t* dyn, uintptr_t addr); -uintptr_t arm_pass3(dynarec_arm_t* dyn, uintptr_t addr); - -#define native_pass0 arm_pass0 -#define native_pass1 arm_pass1 -#define native_pass2 arm_pass2 -#define native_pass3 arm_pass3 - #else #error Unsupported platform #endif diff --git a/src/dynarec/dynarec_helper.h b/src/dynarec/dynarec_helper.h new file mode 100755 index 00000000..19f48dcb --- /dev/null +++ b/src/dynarec/dynarec_helper.h @@ -0,0 +1,12 @@ +#ifndef __DYNAREC_HELPER__H_ +#define __DYNAREC_HELPER__H_ + +#ifdef ARM64 +#include "arm64/dynarec_arm64_helper.h" +#elif defined(LA464) +#include "la464/dynarec_la464_helper.h" +#else +#error Unsupported architecture +#endif + +#endif //__DYNAREC_HELPER__H_ \ No newline at end of file diff --git a/src/dynarec/dynarec_native.c b/src/dynarec/dynarec_native.c index c2a451df..19400607 100755 --- a/src/dynarec/dynarec_native.c +++ b/src/dynarec/dynarec_native.c @@ -346,6 +346,11 @@ void CancelBlock64() FreeDynarecMap(helper->dynablock, (uintptr_t)helper->dynablock->block, helper->dynablock->size); } +uintptr_t native_pass0(dynarec_arm_t* dyn, uintptr_t addr); +uintptr_t native_pass1(dynarec_arm_t* dyn, uintptr_t addr); +uintptr_t native_pass2(dynarec_arm_t* dyn, uintptr_t addr); +uintptr_t native_pass3(dynarec_arm_t* dyn, uintptr_t addr); + void* FillBlock64(dynablock_t* block, uintptr_t addr) { if(IsInHotPage(addr)) { dynarec_log(LOG_DEBUG, "Cancelling dynarec FillBlock on hotpage for %p\n", (void*)addr); diff --git a/src/dynarec/arm64/dynarec_arm64_pass.c b/src/dynarec/dynarec_native_pass.c index 5492df01..01d32b17 100755 --- a/src/dynarec/arm64/dynarec_arm64_pass.c +++ b/src/dynarec/dynarec_native_pass.c @@ -19,16 +19,14 @@ #include "dynarec_native.h" #include "custommem.h" -#include "arm64_printer.h" -#include "dynarec_arm64_private.h" -#include "dynarec_arm64_functions.h" -#include "dynarec_arm64_helper.h" +#include "dynarec_arch.h" +#include "dynarec_helper.h" #ifndef STEP #error No STEP defined #endif -uintptr_t arm_pass(dynarec_arm_t* dyn, uintptr_t addr) +uintptr_t native_pass(dynarec_arm_t* dyn, uintptr_t addr) { int ok = 1; int ninst = 0; |