about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xCMakeLists.txt7
-rwxr-xr-xsrc/dynarec/arm64/dynarec_arm64_helper.h2
-rwxr-xr-xsrc/dynarec/dynarec_arch.h11
-rwxr-xr-xsrc/dynarec/dynarec_helper.h12
-rwxr-xr-xsrc/dynarec/dynarec_native.c5
-rwxr-xr-xsrc/dynarec/dynarec_native_pass.c (renamed from src/dynarec/arm64/dynarec_arm64_pass.c)8
6 files changed, 27 insertions, 18 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5da3cb96..f819a043 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -433,7 +433,6 @@ if(ARM_DYNAREC)
     "${BOX64_ROOT}/src/dynarec/arm64/dynarec_arm64_emit_math.c"
     "${BOX64_ROOT}/src/dynarec/arm64/dynarec_arm64_emit_logic.c"
     "${BOX64_ROOT}/src/dynarec/arm64/dynarec_arm64_emit_shift.c"
-    "${BOX64_ROOT}/src/dynarec/arm64/dynarec_arm64_pass.c"
     "${BOX64_ROOT}/src/dynarec/arm64/dynarec_arm64_00.c"
     "${BOX64_ROOT}/src/dynarec/arm64/dynarec_arm64_0f.c"
     "${BOX64_ROOT}/src/dynarec/arm64/dynarec_arm64_64.c"
@@ -457,7 +456,11 @@ if(ARM_DYNAREC)
 endif()
 
 if(DYNAREC)
-    set(DYNAREC_PASS "${BOX64_ROOT}/src/wrapped/generated/wrapper.h" ${DYNAREC_PASS})
+    set(DYNAREC_PASS 
+        "${BOX64_ROOT}/src/wrapped/generated/wrapper.h" 
+        ${DYNAREC_PASS}
+        "${BOX64_ROOT}/src/dynarec/dynarec_native_pass.c"
+    )
 
     add_library(dynarec_native OBJECT ${DYNAREC_SRC})
 
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;