about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/box64context.c2
-rw-r--r--src/core.c5
-rw-r--r--src/dynarec/arm64/dynarec_arm64_00.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_0f.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_64.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_66.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_660f.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_6664.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_66f0.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_66f20f.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_66f30f.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_67.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_6764_32.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_67_32.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_67_avx.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_arch.c1
-rw-r--r--src/dynarec/arm64/dynarec_arm64_arch.h2
-rw-r--r--src/dynarec/arm64/dynarec_arm64_avx.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_avx_0f.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_avx_0f38.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_avx_66_0f.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_avx_66_0f38.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_avx_66_0f3a.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_avx_f2_0f.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_avx_f2_0f38.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_avx_f2_0f3a.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_avx_f3_0f.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_avx_f3_0f38.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_d8.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_d9.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_da.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_db.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_dc.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_dd.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_de.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_df.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_emit_logic.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_emit_math.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_emit_shift.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_emit_tests.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_f0.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_f20f.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_f30f.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_functions.c3
-rw-r--r--src/dynarec/arm64/dynarec_arm64_helper.c3
-rw-r--r--src/dynarec/dynablock.c3
-rw-r--r--src/dynarec/dynarec.c4
-rw-r--r--src/dynarec/dynarec_native.c3
-rw-r--r--src/dynarec/dynarec_native_functions.c3
-rw-r--r--src/dynarec/dynarec_native_pass.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_00.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_0f.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_64.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_66.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_660f.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_6664.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_66f0.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_66f20f.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_67.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_emit_logic.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_emit_math.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_emit_shift.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_emit_tests.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_f0.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_f20f.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_f30f.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_functions.c3
-rw-r--r--src/dynarec/la64/dynarec_la64_helper.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_00.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_00_0.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_00_1.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_00_2.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_00_3.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_0f.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_0f_vector.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_64.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_64_vector.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_66.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_660f.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_660f38.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_660f_vector.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_6664.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_66f0.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_66f20f.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_66f30f.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_67.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_67_32.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_67_vector.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_arch.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_arch.h2
-rw-r--r--src/dynarec/rv64/dynarec_rv64_avx.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_avx_f3_0f.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_d8.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_d9.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_da.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_db.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_dc.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_dd.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_de.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_df.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_emit_logic.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_emit_math.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_emit_shift.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_emit_tests.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_f0.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_f20f.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_f20f_vector.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_f30f.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_f30f_vector.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_functions.c3
-rw-r--r--src/dynarec/rv64/dynarec_rv64_helper.c3
-rw-r--r--src/elfs/elfloader.c3
-rw-r--r--src/elfs/elfloader32.c1
-rw-r--r--src/emu/x64emu.c3
-rw-r--r--src/emu/x64int3.c2
-rw-r--r--src/emu/x64run.c2
-rw-r--r--src/emu/x64run0f.c2
-rw-r--r--src/emu/x64run64.c2
-rw-r--r--src/emu/x64run66.c2
-rw-r--r--src/emu/x64run660f.c1
-rw-r--r--src/emu/x64run6664.c1
-rw-r--r--src/emu/x64run66d9.c1
-rw-r--r--src/emu/x64run66dd.c1
-rw-r--r--src/emu/x64run66f0.c1
-rw-r--r--src/emu/x64run66f20f.c1
-rw-r--r--src/emu/x64run66f30f.c1
-rw-r--r--src/emu/x64run67.c4
-rw-r--r--src/emu/x64run670f.c1
-rw-r--r--src/emu/x64run6764_32.c2
-rw-r--r--src/emu/x64run6766.c1
-rw-r--r--src/emu/x64run67660f.c1
-rw-r--r--src/emu/x64run67_32.c3
-rw-r--r--src/emu/x64run67avx.c1
-rw-r--r--src/emu/x64run_private.c4
-rw-r--r--src/emu/x64run_private.h74
-rw-r--r--src/emu/x64runavx.c1
-rw-r--r--src/emu/x64runavx0f.c1
-rw-r--r--src/emu/x64runavx0f38.c1
-rw-r--r--src/emu/x64runavx660f.c1
-rw-r--r--src/emu/x64runavx660f38.c1
-rw-r--r--src/emu/x64runavx660f3a.c1
-rw-r--r--src/emu/x64runavxf20f.c1
-rw-r--r--src/emu/x64runavxf20f38.c1
-rw-r--r--src/emu/x64runavxf20f3a.c1
-rw-r--r--src/emu/x64runavxf30f.c1
-rw-r--r--src/emu/x64runavxf30f38.c1
-rw-r--r--src/emu/x64runavxf30f3a.c1
-rw-r--r--src/emu/x64rund8.c3
-rw-r--r--src/emu/x64rund9.c3
-rw-r--r--src/emu/x64runda.c3
-rw-r--r--src/emu/x64rundb.c1
-rw-r--r--src/emu/x64rundc.c1
-rw-r--r--src/emu/x64rundd.c3
-rw-r--r--src/emu/x64runde.c3
-rw-r--r--src/emu/x64rundf.c1
-rw-r--r--src/emu/x64runf0.c1
-rw-r--r--src/emu/x64runf20f.c1
-rw-r--r--src/emu/x64runf30f.c1
-rw-r--r--src/emu/x64syscall.c2
-rw-r--r--src/emu/x64test.c2
-rwxr-xr-xsrc/emu/x86int3.c1
-rwxr-xr-xsrc/emu/x86syscall.c1
-rw-r--r--src/emu/x86syscall_32.c2
-rw-r--r--src/include/box64cpu.h12
-rw-r--r--src/include/box64cpu_util.h111
-rw-r--r--src/include/dynarec.h8
-rw-r--r--src/include/x64emu.h28
-rw-r--r--src/include/x64run.h11
-rw-r--r--src/include/x64test.h3
-rw-r--r--src/libtools/sdl1rwops.c1
-rw-r--r--src/libtools/sdl2rwops.c1
-rw-r--r--src/libtools/signal32.c3
-rw-r--r--src/libtools/signals.c3
-rw-r--r--src/libtools/threads.c5
-rwxr-xr-xsrc/libtools/threads32.c4
-rw-r--r--src/tools/box64stack.c1
-rw-r--r--src/tools/callback.c6
-rw-r--r--src/wrapped/wrappedlibc.c1
-rwxr-xr-xsrc/wrapped32/wrappedlibc.c1
179 files changed, 277 insertions, 409 deletions
diff --git a/src/box64context.c b/src/box64context.c
index 651c2ca1..bf9ccd69 100644
--- a/src/box64context.c
+++ b/src/box64context.c
@@ -21,7 +21,7 @@
 #include "signals.h"
 #include "gltools.h"
 #include "rbtree.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #ifdef BOX32
 #include "box32.h"
 #endif
diff --git a/src/core.c b/src/core.c
index 11f714d7..9d006e05 100644
--- a/src/core.c
+++ b/src/core.c
@@ -28,19 +28,20 @@
 #include "debug.h"
 #include "fileutils.h"
 #include "box64context.h"
+#include "box64cpu.h"
+#include "box64cpu_util.h"
 #include "wine_tools.h"
 #include "elfloader.h"
 #include "custommem.h"
 #include "box64stack.h"
 #include "auxval.h"
-#include "x64emu.h"
 #include "threads.h"
 #include "x64trace.h"
 #include "librarian.h"
-#include "x64run.h"
 #include "symbols.h"
 #include "emu/x64run_private.h"
 #include "elfs/elfloader_private.h"
+#include "x64emu.h"
 #include "library.h"
 #include "core.h"
 #include "env.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_00.c b/src/dynarec/arm64/dynarec_arm64_00.c
index 3732bee4..5df6fc8b 100644
--- a/src/dynarec/arm64/dynarec_arm64_00.c
+++ b/src/dynarec/arm64/dynarec_arm64_00.c
@@ -6,10 +6,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c
index eb712db4..6e049951 100644
--- a/src/dynarec/arm64/dynarec_arm64_0f.c
+++ b/src/dynarec/arm64/dynarec_arm64_0f.c
@@ -5,10 +5,9 @@
 

 #include "debug.h"

 #include "box64context.h"

-#include "dynarec.h"

+#include "box64cpu.h"

 #include "emu/x64emu_private.h"

 #include "emu/x64run_private.h"

-#include "x64run.h"

 #include "x64emu.h"

 #include "box64stack.h"

 #include "callback.h"

diff --git a/src/dynarec/arm64/dynarec_arm64_64.c b/src/dynarec/arm64/dynarec_arm64_64.c
index 6c50e374..f7265aad 100644
--- a/src/dynarec/arm64/dynarec_arm64_64.c
+++ b/src/dynarec/arm64/dynarec_arm64_64.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_66.c b/src/dynarec/arm64/dynarec_arm64_66.c
index b6eb2f00..0260b2b0 100644
--- a/src/dynarec/arm64/dynarec_arm64_66.c
+++ b/src/dynarec/arm64/dynarec_arm64_66.c
@@ -5,10 +5,9 @@
 

 #include "debug.h"

 #include "box64context.h"

-#include "dynarec.h"

+#include "box64cpu.h"

 #include "emu/x64emu_private.h"

 #include "emu/x64run_private.h"

-#include "x64run.h"

 #include "x64emu.h"

 #include "box64stack.h"

 #include "callback.h"

diff --git a/src/dynarec/arm64/dynarec_arm64_660f.c b/src/dynarec/arm64/dynarec_arm64_660f.c
index 94cca9e7..fee52d30 100644
--- a/src/dynarec/arm64/dynarec_arm64_660f.c
+++ b/src/dynarec/arm64/dynarec_arm64_660f.c
@@ -5,10 +5,9 @@
 

 #include "debug.h"

 #include "box64context.h"

-#include "dynarec.h"

+#include "box64cpu.h"

 #include "emu/x64emu_private.h"

 #include "emu/x64run_private.h"

-#include "x64run.h"

 #include "x64emu.h"

 #include "box64stack.h"

 #include "callback.h"

diff --git a/src/dynarec/arm64/dynarec_arm64_6664.c b/src/dynarec/arm64/dynarec_arm64_6664.c
index 87ee3961..8e49ef15 100644
--- a/src/dynarec/arm64/dynarec_arm64_6664.c
+++ b/src/dynarec/arm64/dynarec_arm64_6664.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_66f0.c b/src/dynarec/arm64/dynarec_arm64_66f0.c
index 2ee22297..1a636ce6 100644
--- a/src/dynarec/arm64/dynarec_arm64_66f0.c
+++ b/src/dynarec/arm64/dynarec_arm64_66f0.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_66f20f.c b/src/dynarec/arm64/dynarec_arm64_66f20f.c
index 6c94873a..eb08003b 100644
--- a/src/dynarec/arm64/dynarec_arm64_66f20f.c
+++ b/src/dynarec/arm64/dynarec_arm64_66f20f.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_66f30f.c b/src/dynarec/arm64/dynarec_arm64_66f30f.c
index 88421c9f..99df412e 100644
--- a/src/dynarec/arm64/dynarec_arm64_66f30f.c
+++ b/src/dynarec/arm64/dynarec_arm64_66f30f.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_67.c b/src/dynarec/arm64/dynarec_arm64_67.c
index 03639bf3..8a44a764 100644
--- a/src/dynarec/arm64/dynarec_arm64_67.c
+++ b/src/dynarec/arm64/dynarec_arm64_67.c
@@ -5,10 +5,9 @@
 

 #include "debug.h"

 #include "box64context.h"

-#include "dynarec.h"

+#include "box64cpu.h"

 #include "emu/x64emu_private.h"

 #include "emu/x64run_private.h"

-#include "x64run.h"

 #include "x64emu.h"

 #include "box64stack.h"

 #include "callback.h"

diff --git a/src/dynarec/arm64/dynarec_arm64_6764_32.c b/src/dynarec/arm64/dynarec_arm64_6764_32.c
index 1a0283f6..43a31344 100644
--- a/src/dynarec/arm64/dynarec_arm64_6764_32.c
+++ b/src/dynarec/arm64/dynarec_arm64_6764_32.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_67_32.c b/src/dynarec/arm64/dynarec_arm64_67_32.c
index 4b247fd0..3468cb02 100644
--- a/src/dynarec/arm64/dynarec_arm64_67_32.c
+++ b/src/dynarec/arm64/dynarec_arm64_67_32.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_67_avx.c b/src/dynarec/arm64/dynarec_arm64_67_avx.c
index a4a51003..385ed4e3 100644
--- a/src/dynarec/arm64/dynarec_arm64_67_avx.c
+++ b/src/dynarec/arm64/dynarec_arm64_67_avx.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_arch.c b/src/dynarec/arm64/dynarec_arm64_arch.c
index 3813b622..45093acd 100644
--- a/src/dynarec/arm64/dynarec_arm64_arch.c
+++ b/src/dynarec/arm64/dynarec_arm64_arch.c
@@ -8,7 +8,6 @@
 #include "dynablock.h"
 #include "x64emu.h"
 #include "emu/x64emu_private.h"
-#include "x64run.h"
 #include "emu/x64run_private.h"
 #include "dynarec/dynablock_private.h"
 #include "dynarec_arm64_arch.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_arch.h b/src/dynarec/arm64/dynarec_arm64_arch.h
index 955114e8..4463df6c 100644
--- a/src/dynarec/arm64/dynarec_arm64_arch.h
+++ b/src/dynarec/arm64/dynarec_arm64_arch.h
@@ -6,7 +6,7 @@
 
 #include "x64emu.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "dynarec_arm64_private.h"
 
 // get size of arch specific info (can be 0)
diff --git a/src/dynarec/arm64/dynarec_arm64_avx.c b/src/dynarec/arm64/dynarec_arm64_avx.c
index a16f1eeb..3c9587be 100644
--- a/src/dynarec/arm64/dynarec_arm64_avx.c
+++ b/src/dynarec/arm64/dynarec_arm64_avx.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_avx_0f.c b/src/dynarec/arm64/dynarec_arm64_avx_0f.c
index b55bfc77..09c2ddbd 100644
--- a/src/dynarec/arm64/dynarec_arm64_avx_0f.c
+++ b/src/dynarec/arm64/dynarec_arm64_avx_0f.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_avx_0f38.c b/src/dynarec/arm64/dynarec_arm64_avx_0f38.c
index 7ff15039..3012c113 100644
--- a/src/dynarec/arm64/dynarec_arm64_avx_0f38.c
+++ b/src/dynarec/arm64/dynarec_arm64_avx_0f38.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_avx_66_0f.c b/src/dynarec/arm64/dynarec_arm64_avx_66_0f.c
index f2c0f1d0..e52d7b96 100644
--- a/src/dynarec/arm64/dynarec_arm64_avx_66_0f.c
+++ b/src/dynarec/arm64/dynarec_arm64_avx_66_0f.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_avx_66_0f38.c b/src/dynarec/arm64/dynarec_arm64_avx_66_0f38.c
index 153ab1f2..408bac5c 100644
--- a/src/dynarec/arm64/dynarec_arm64_avx_66_0f38.c
+++ b/src/dynarec/arm64/dynarec_arm64_avx_66_0f38.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_avx_66_0f3a.c b/src/dynarec/arm64/dynarec_arm64_avx_66_0f3a.c
index fcff05c7..004eaf59 100644
--- a/src/dynarec/arm64/dynarec_arm64_avx_66_0f3a.c
+++ b/src/dynarec/arm64/dynarec_arm64_avx_66_0f3a.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_avx_f2_0f.c b/src/dynarec/arm64/dynarec_arm64_avx_f2_0f.c
index 2bdcb373..aaea50d1 100644
--- a/src/dynarec/arm64/dynarec_arm64_avx_f2_0f.c
+++ b/src/dynarec/arm64/dynarec_arm64_avx_f2_0f.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_avx_f2_0f38.c b/src/dynarec/arm64/dynarec_arm64_avx_f2_0f38.c
index fbee03e3..ab230f20 100644
--- a/src/dynarec/arm64/dynarec_arm64_avx_f2_0f38.c
+++ b/src/dynarec/arm64/dynarec_arm64_avx_f2_0f38.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_avx_f2_0f3a.c b/src/dynarec/arm64/dynarec_arm64_avx_f2_0f3a.c
index 2c7f6191..62702dcd 100644
--- a/src/dynarec/arm64/dynarec_arm64_avx_f2_0f3a.c
+++ b/src/dynarec/arm64/dynarec_arm64_avx_f2_0f3a.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_avx_f3_0f.c b/src/dynarec/arm64/dynarec_arm64_avx_f3_0f.c
index cd156bb4..2f26516f 100644
--- a/src/dynarec/arm64/dynarec_arm64_avx_f3_0f.c
+++ b/src/dynarec/arm64/dynarec_arm64_avx_f3_0f.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_avx_f3_0f38.c b/src/dynarec/arm64/dynarec_arm64_avx_f3_0f38.c
index 7a5a9fc9..de7c968c 100644
--- a/src/dynarec/arm64/dynarec_arm64_avx_f3_0f38.c
+++ b/src/dynarec/arm64/dynarec_arm64_avx_f3_0f38.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_d8.c b/src/dynarec/arm64/dynarec_arm64_d8.c
index 129fe86e..5053c7ea 100644
--- a/src/dynarec/arm64/dynarec_arm64_d8.c
+++ b/src/dynarec/arm64/dynarec_arm64_d8.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_d9.c b/src/dynarec/arm64/dynarec_arm64_d9.c
index b318996d..da8f2407 100644
--- a/src/dynarec/arm64/dynarec_arm64_d9.c
+++ b/src/dynarec/arm64/dynarec_arm64_d9.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_da.c b/src/dynarec/arm64/dynarec_arm64_da.c
index f6668985..a39126bd 100644
--- a/src/dynarec/arm64/dynarec_arm64_da.c
+++ b/src/dynarec/arm64/dynarec_arm64_da.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_db.c b/src/dynarec/arm64/dynarec_arm64_db.c
index 0bcd3de6..1be3e610 100644
--- a/src/dynarec/arm64/dynarec_arm64_db.c
+++ b/src/dynarec/arm64/dynarec_arm64_db.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_dc.c b/src/dynarec/arm64/dynarec_arm64_dc.c
index 1e068277..60fc4c70 100644
--- a/src/dynarec/arm64/dynarec_arm64_dc.c
+++ b/src/dynarec/arm64/dynarec_arm64_dc.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_dd.c b/src/dynarec/arm64/dynarec_arm64_dd.c
index 11ab98e5..6acd73b2 100644
--- a/src/dynarec/arm64/dynarec_arm64_dd.c
+++ b/src/dynarec/arm64/dynarec_arm64_dd.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_de.c b/src/dynarec/arm64/dynarec_arm64_de.c
index 9c4dcc81..abd8fa79 100644
--- a/src/dynarec/arm64/dynarec_arm64_de.c
+++ b/src/dynarec/arm64/dynarec_arm64_de.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_df.c b/src/dynarec/arm64/dynarec_arm64_df.c
index a55e28e3..68db5bc8 100644
--- a/src/dynarec/arm64/dynarec_arm64_df.c
+++ b/src/dynarec/arm64/dynarec_arm64_df.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_emit_logic.c b/src/dynarec/arm64/dynarec_arm64_emit_logic.c
index e66da11c..d1e52498 100644
--- a/src/dynarec/arm64/dynarec_arm64_emit_logic.c
+++ b/src/dynarec/arm64/dynarec_arm64_emit_logic.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_emit_math.c b/src/dynarec/arm64/dynarec_arm64_emit_math.c
index 2050dd33..0d904ff3 100644
--- a/src/dynarec/arm64/dynarec_arm64_emit_math.c
+++ b/src/dynarec/arm64/dynarec_arm64_emit_math.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_emit_shift.c b/src/dynarec/arm64/dynarec_arm64_emit_shift.c
index adc22c68..03858a38 100644
--- a/src/dynarec/arm64/dynarec_arm64_emit_shift.c
+++ b/src/dynarec/arm64/dynarec_arm64_emit_shift.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_emit_tests.c b/src/dynarec/arm64/dynarec_arm64_emit_tests.c
index 75d1bee0..2cbe9f49 100644
--- a/src/dynarec/arm64/dynarec_arm64_emit_tests.c
+++ b/src/dynarec/arm64/dynarec_arm64_emit_tests.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_f0.c b/src/dynarec/arm64/dynarec_arm64_f0.c
index 3e39369e..f0278aae 100644
--- a/src/dynarec/arm64/dynarec_arm64_f0.c
+++ b/src/dynarec/arm64/dynarec_arm64_f0.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_f20f.c b/src/dynarec/arm64/dynarec_arm64_f20f.c
index b8682735..7c62d547 100644
--- a/src/dynarec/arm64/dynarec_arm64_f20f.c
+++ b/src/dynarec/arm64/dynarec_arm64_f20f.c
@@ -5,10 +5,9 @@
 

 #include "debug.h"

 #include "box64context.h"

-#include "dynarec.h"

+#include "box64cpu.h"

 #include "emu/x64emu_private.h"

 #include "emu/x64run_private.h"

-#include "x64run.h"

 #include "x64emu.h"

 #include "box64stack.h"

 #include "callback.h"

diff --git a/src/dynarec/arm64/dynarec_arm64_f30f.c b/src/dynarec/arm64/dynarec_arm64_f30f.c
index 0297d118..891cb1a2 100644
--- a/src/dynarec/arm64/dynarec_arm64_f30f.c
+++ b/src/dynarec/arm64/dynarec_arm64_f30f.c
@@ -5,10 +5,9 @@
 

 #include "debug.h"

 #include "box64context.h"

-#include "dynarec.h"

+#include "box64cpu.h"

 #include "emu/x64emu_private.h"

 #include "emu/x64run_private.h"

-#include "x64run.h"

 #include "x64emu.h"

 #include "box64stack.h"

 #include "callback.h"

diff --git a/src/dynarec/arm64/dynarec_arm64_functions.c b/src/dynarec/arm64/dynarec_arm64_functions.c
index 6b8013af..72c4a05e 100644
--- a/src/dynarec/arm64/dynarec_arm64_functions.c
+++ b/src/dynarec/arm64/dynarec_arm64_functions.c
@@ -10,9 +10,8 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/arm64/dynarec_arm64_helper.c b/src/dynarec/arm64/dynarec_arm64_helper.c
index 4712fc9b..19139c46 100644
--- a/src/dynarec/arm64/dynarec_arm64_helper.c
+++ b/src/dynarec/arm64/dynarec_arm64_helper.c
@@ -7,10 +7,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/dynablock.c b/src/dynarec/dynablock.c
index 109edf5c..1d0498f8 100644
--- a/src/dynarec/dynablock.c
+++ b/src/dynarec/dynablock.c
@@ -7,9 +7,8 @@
 #include "os.h"
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/dynarec.c b/src/dynarec/dynarec.c
index 0bcf9451..eca8087f 100644
--- a/src/dynarec/dynarec.c
+++ b/src/dynarec/dynarec.c
@@ -6,9 +6,9 @@
 #include "os.h"
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
+#include "box64cpu_util.h"
 #include "emu/x64emu_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/dynarec_native.c b/src/dynarec/dynarec_native.c
index 0a32b0e5..8f1525e4 100644
--- a/src/dynarec/dynarec_native.c
+++ b/src/dynarec/dynarec_native.c
@@ -9,9 +9,8 @@
 #include "debug.h"
 #include "box64context.h"
 #include "custommem.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/dynarec_native_functions.c b/src/dynarec/dynarec_native_functions.c
index 46e95190..51340ded 100644
--- a/src/dynarec/dynarec_native_functions.c
+++ b/src/dynarec/dynarec_native_functions.c
@@ -10,10 +10,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "tools/bridge_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/dynarec_native_pass.c b/src/dynarec/dynarec_native_pass.c
index d6774146..36032d97 100644
--- a/src/dynarec/dynarec_native_pass.c
+++ b/src/dynarec/dynarec_native_pass.c
@@ -6,10 +6,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "emu/x64run_private.h"
diff --git a/src/dynarec/la64/dynarec_la64_00.c b/src/dynarec/la64/dynarec_la64_00.c
index 4e91e23a..04254a57 100644
--- a/src/dynarec/la64/dynarec_la64_00.c
+++ b/src/dynarec/la64/dynarec_la64_00.c
@@ -6,11 +6,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_0f.c b/src/dynarec/la64/dynarec_la64_0f.c
index 261ce53d..5280c7ff 100644
--- a/src/dynarec/la64/dynarec_la64_0f.c
+++ b/src/dynarec/la64/dynarec_la64_0f.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_64.c b/src/dynarec/la64/dynarec_la64_64.c
index 6e076719..58829ba8 100644
--- a/src/dynarec/la64/dynarec_la64_64.c
+++ b/src/dynarec/la64/dynarec_la64_64.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_66.c b/src/dynarec/la64/dynarec_la64_66.c
index a0ec5025..20c3e8c8 100644
--- a/src/dynarec/la64/dynarec_la64_66.c
+++ b/src/dynarec/la64/dynarec_la64_66.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_660f.c b/src/dynarec/la64/dynarec_la64_660f.c
index 28bb6139..989f59e5 100644
--- a/src/dynarec/la64/dynarec_la64_660f.c
+++ b/src/dynarec/la64/dynarec_la64_660f.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_6664.c b/src/dynarec/la64/dynarec_la64_6664.c
index 15c81000..54dcb6ac 100644
--- a/src/dynarec/la64/dynarec_la64_6664.c
+++ b/src/dynarec/la64/dynarec_la64_6664.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_66f0.c b/src/dynarec/la64/dynarec_la64_66f0.c
index e2c74406..46610a5c 100644
--- a/src/dynarec/la64/dynarec_la64_66f0.c
+++ b/src/dynarec/la64/dynarec_la64_66f0.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_66f20f.c b/src/dynarec/la64/dynarec_la64_66f20f.c
index bab0ad8b..8e93e3fa 100644
--- a/src/dynarec/la64/dynarec_la64_66f20f.c
+++ b/src/dynarec/la64/dynarec_la64_66f20f.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_67.c b/src/dynarec/la64/dynarec_la64_67.c
index 899ed70b..cff5d923 100644
--- a/src/dynarec/la64/dynarec_la64_67.c
+++ b/src/dynarec/la64/dynarec_la64_67.c
@@ -6,11 +6,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_emit_logic.c b/src/dynarec/la64/dynarec_la64_emit_logic.c
index b92c2e48..b1c42f54 100644
--- a/src/dynarec/la64/dynarec_la64_emit_logic.c
+++ b/src/dynarec/la64/dynarec_la64_emit_logic.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_emit_math.c b/src/dynarec/la64/dynarec_la64_emit_math.c
index 11b66e2e..fc3016e6 100644
--- a/src/dynarec/la64/dynarec_la64_emit_math.c
+++ b/src/dynarec/la64/dynarec_la64_emit_math.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_emit_shift.c b/src/dynarec/la64/dynarec_la64_emit_shift.c
index 0125c1ae..4871e829 100644
--- a/src/dynarec/la64/dynarec_la64_emit_shift.c
+++ b/src/dynarec/la64/dynarec_la64_emit_shift.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_emit_tests.c b/src/dynarec/la64/dynarec_la64_emit_tests.c
index ea04f36a..95f9f516 100644
--- a/src/dynarec/la64/dynarec_la64_emit_tests.c
+++ b/src/dynarec/la64/dynarec_la64_emit_tests.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_f0.c b/src/dynarec/la64/dynarec_la64_f0.c
index 50b057c2..3382ec1a 100644
--- a/src/dynarec/la64/dynarec_la64_f0.c
+++ b/src/dynarec/la64/dynarec_la64_f0.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_f20f.c b/src/dynarec/la64/dynarec_la64_f20f.c
index f9df4b52..fb78a102 100644
--- a/src/dynarec/la64/dynarec_la64_f20f.c
+++ b/src/dynarec/la64/dynarec_la64_f20f.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_f30f.c b/src/dynarec/la64/dynarec_la64_f30f.c
index 9cd89b42..fe8c5c7f 100644
--- a/src/dynarec/la64/dynarec_la64_f30f.c
+++ b/src/dynarec/la64/dynarec_la64_f30f.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_functions.c b/src/dynarec/la64/dynarec_la64_functions.c
index 6bc72584..c24e4f67 100644
--- a/src/dynarec/la64/dynarec_la64_functions.c
+++ b/src/dynarec/la64/dynarec_la64_functions.c
@@ -10,9 +10,8 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/la64/dynarec_la64_helper.c b/src/dynarec/la64/dynarec_la64_helper.c
index 83ef2cc9..da99f562 100644
--- a/src/dynarec/la64/dynarec_la64_helper.c
+++ b/src/dynarec/la64/dynarec_la64_helper.c
@@ -7,11 +7,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "la64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_00.c b/src/dynarec/rv64/dynarec_rv64_00.c
index f8be1f31..0f0c049b 100644
--- a/src/dynarec/rv64/dynarec_rv64_00.c
+++ b/src/dynarec/rv64/dynarec_rv64_00.c
@@ -7,10 +7,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_00_0.c b/src/dynarec/rv64/dynarec_rv64_00_0.c
index 5172bf7a..b467f3b6 100644
--- a/src/dynarec/rv64/dynarec_rv64_00_0.c
+++ b/src/dynarec/rv64/dynarec_rv64_00_0.c
@@ -7,10 +7,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_00_1.c b/src/dynarec/rv64/dynarec_rv64_00_1.c
index 88dd813f..6ff5c3bb 100644
--- a/src/dynarec/rv64/dynarec_rv64_00_1.c
+++ b/src/dynarec/rv64/dynarec_rv64_00_1.c
@@ -7,10 +7,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_00_2.c b/src/dynarec/rv64/dynarec_rv64_00_2.c
index 35241d38..b23f8e16 100644
--- a/src/dynarec/rv64/dynarec_rv64_00_2.c
+++ b/src/dynarec/rv64/dynarec_rv64_00_2.c
@@ -7,10 +7,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_00_3.c b/src/dynarec/rv64/dynarec_rv64_00_3.c
index 9b1f6660..17d92fd5 100644
--- a/src/dynarec/rv64/dynarec_rv64_00_3.c
+++ b/src/dynarec/rv64/dynarec_rv64_00_3.c
@@ -7,10 +7,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_0f.c b/src/dynarec/rv64/dynarec_rv64_0f.c
index b4139ecf..a877a9fd 100644
--- a/src/dynarec/rv64/dynarec_rv64_0f.c
+++ b/src/dynarec/rv64/dynarec_rv64_0f.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_0f_vector.c b/src/dynarec/rv64/dynarec_rv64_0f_vector.c
index 428dbcf4..ca42f76f 100644
--- a/src/dynarec/rv64/dynarec_rv64_0f_vector.c
+++ b/src/dynarec/rv64/dynarec_rv64_0f_vector.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_64.c b/src/dynarec/rv64/dynarec_rv64_64.c
index 69503d77..0873d319 100644
--- a/src/dynarec/rv64/dynarec_rv64_64.c
+++ b/src/dynarec/rv64/dynarec_rv64_64.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_64_vector.c b/src/dynarec/rv64/dynarec_rv64_64_vector.c
index 71ea326b..f02252e1 100644
--- a/src/dynarec/rv64/dynarec_rv64_64_vector.c
+++ b/src/dynarec/rv64/dynarec_rv64_64_vector.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_66.c b/src/dynarec/rv64/dynarec_rv64_66.c
index 25e595f5..8c7bb818 100644
--- a/src/dynarec/rv64/dynarec_rv64_66.c
+++ b/src/dynarec/rv64/dynarec_rv64_66.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "rv64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_660f.c b/src/dynarec/rv64/dynarec_rv64_660f.c
index bcc59c8a..c4d6252c 100644
--- a/src/dynarec/rv64/dynarec_rv64_660f.c
+++ b/src/dynarec/rv64/dynarec_rv64_660f.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_660f38.c b/src/dynarec/rv64/dynarec_rv64_660f38.c
index ca1146f0..d96d8ac8 100644
--- a/src/dynarec/rv64/dynarec_rv64_660f38.c
+++ b/src/dynarec/rv64/dynarec_rv64_660f38.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_660f_vector.c b/src/dynarec/rv64/dynarec_rv64_660f_vector.c
index 8818b492..52195ca4 100644
--- a/src/dynarec/rv64/dynarec_rv64_660f_vector.c
+++ b/src/dynarec/rv64/dynarec_rv64_660f_vector.c
@@ -4,10 +4,9 @@
 #include <errno.h>
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_6664.c b/src/dynarec/rv64/dynarec_rv64_6664.c
index 2afc198d..a5ee4302 100644
--- a/src/dynarec/rv64/dynarec_rv64_6664.c
+++ b/src/dynarec/rv64/dynarec_rv64_6664.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_66f0.c b/src/dynarec/rv64/dynarec_rv64_66f0.c
index c904d077..d762075f 100644
--- a/src/dynarec/rv64/dynarec_rv64_66f0.c
+++ b/src/dynarec/rv64/dynarec_rv64_66f0.c
@@ -5,11 +5,10 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "rv64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_66f20f.c b/src/dynarec/rv64/dynarec_rv64_66f20f.c
index 9a22da1f..ed79efe4 100644
--- a/src/dynarec/rv64/dynarec_rv64_66f20f.c
+++ b/src/dynarec/rv64/dynarec_rv64_66f20f.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_66f30f.c b/src/dynarec/rv64/dynarec_rv64_66f30f.c
index 851ec625..0326e80e 100644
--- a/src/dynarec/rv64/dynarec_rv64_66f30f.c
+++ b/src/dynarec/rv64/dynarec_rv64_66f30f.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_67.c b/src/dynarec/rv64/dynarec_rv64_67.c
index eeedc831..e4384c57 100644
--- a/src/dynarec/rv64/dynarec_rv64_67.c
+++ b/src/dynarec/rv64/dynarec_rv64_67.c
@@ -6,10 +6,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_67_32.c b/src/dynarec/rv64/dynarec_rv64_67_32.c
index 3ca4c763..dbc93590 100644
--- a/src/dynarec/rv64/dynarec_rv64_67_32.c
+++ b/src/dynarec/rv64/dynarec_rv64_67_32.c
@@ -6,10 +6,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_67_vector.c b/src/dynarec/rv64/dynarec_rv64_67_vector.c
index 23613308..7b0950db 100644
--- a/src/dynarec/rv64/dynarec_rv64_67_vector.c
+++ b/src/dynarec/rv64/dynarec_rv64_67_vector.c
@@ -6,10 +6,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_arch.c b/src/dynarec/rv64/dynarec_rv64_arch.c
index df4ca848..e9065657 100644
--- a/src/dynarec/rv64/dynarec_rv64_arch.c
+++ b/src/dynarec/rv64/dynarec_rv64_arch.c
@@ -8,7 +8,6 @@
 #include "dynablock.h"
 #include "x64emu.h"
 #include "emu/x64emu_private.h"
-#include "x64run.h"
 #include "emu/x64run_private.h"
 #include "dynarec/dynablock_private.h"
 #include "dynarec_rv64_arch.h"
@@ -229,4 +228,4 @@ int arch_unaligned(dynablock_t* db, uintptr_t x64pc)
         next = (arch_arch_t*)((uintptr_t)next + sizeof_arch(arch));
     }
     return arch->unaligned;
-}
\ No newline at end of file
+}
diff --git a/src/dynarec/rv64/dynarec_rv64_arch.h b/src/dynarec/rv64/dynarec_rv64_arch.h
index 814918be..0775524a 100644
--- a/src/dynarec/rv64/dynarec_rv64_arch.h
+++ b/src/dynarec/rv64/dynarec_rv64_arch.h
@@ -6,7 +6,7 @@
 
 #include "x64emu.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "dynarec_rv64_private.h"
 
 // get size of arch specific info (can be 0)
diff --git a/src/dynarec/rv64/dynarec_rv64_avx.c b/src/dynarec/rv64/dynarec_rv64_avx.c
index dfa985d1..bd03354f 100644
--- a/src/dynarec/rv64/dynarec_rv64_avx.c
+++ b/src/dynarec/rv64/dynarec_rv64_avx.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_avx_f3_0f.c b/src/dynarec/rv64/dynarec_rv64_avx_f3_0f.c
index 41a00706..bc69de83 100644
--- a/src/dynarec/rv64/dynarec_rv64_avx_f3_0f.c
+++ b/src/dynarec/rv64/dynarec_rv64_avx_f3_0f.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_d8.c b/src/dynarec/rv64/dynarec_rv64_d8.c
index 824739c9..8affe09a 100644
--- a/src/dynarec/rv64/dynarec_rv64_d8.c
+++ b/src/dynarec/rv64/dynarec_rv64_d8.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_d9.c b/src/dynarec/rv64/dynarec_rv64_d9.c
index 2da5d704..0e9fd78d 100644
--- a/src/dynarec/rv64/dynarec_rv64_d9.c
+++ b/src/dynarec/rv64/dynarec_rv64_d9.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_da.c b/src/dynarec/rv64/dynarec_rv64_da.c
index 97058a60..4dcced44 100644
--- a/src/dynarec/rv64/dynarec_rv64_da.c
+++ b/src/dynarec/rv64/dynarec_rv64_da.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_db.c b/src/dynarec/rv64/dynarec_rv64_db.c
index 26c5a9d4..1558d1cd 100644
--- a/src/dynarec/rv64/dynarec_rv64_db.c
+++ b/src/dynarec/rv64/dynarec_rv64_db.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_dc.c b/src/dynarec/rv64/dynarec_rv64_dc.c
index 3346e6de..e92dce37 100644
--- a/src/dynarec/rv64/dynarec_rv64_dc.c
+++ b/src/dynarec/rv64/dynarec_rv64_dc.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_dd.c b/src/dynarec/rv64/dynarec_rv64_dd.c
index d3d06c6f..beeb29d3 100644
--- a/src/dynarec/rv64/dynarec_rv64_dd.c
+++ b/src/dynarec/rv64/dynarec_rv64_dd.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_de.c b/src/dynarec/rv64/dynarec_rv64_de.c
index dc6a27ce..e7458e01 100644
--- a/src/dynarec/rv64/dynarec_rv64_de.c
+++ b/src/dynarec/rv64/dynarec_rv64_de.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_df.c b/src/dynarec/rv64/dynarec_rv64_df.c
index 39cdac19..4250b3a9 100644
--- a/src/dynarec/rv64/dynarec_rv64_df.c
+++ b/src/dynarec/rv64/dynarec_rv64_df.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_emit_logic.c b/src/dynarec/rv64/dynarec_rv64_emit_logic.c
index 1010f38d..880b1f2a 100644
--- a/src/dynarec/rv64/dynarec_rv64_emit_logic.c
+++ b/src/dynarec/rv64/dynarec_rv64_emit_logic.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_emit_math.c b/src/dynarec/rv64/dynarec_rv64_emit_math.c
index 46c45a07..288b603e 100644
--- a/src/dynarec/rv64/dynarec_rv64_emit_math.c
+++ b/src/dynarec/rv64/dynarec_rv64_emit_math.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_emit_shift.c b/src/dynarec/rv64/dynarec_rv64_emit_shift.c
index 797c769b..83f132b9 100644
--- a/src/dynarec/rv64/dynarec_rv64_emit_shift.c
+++ b/src/dynarec/rv64/dynarec_rv64_emit_shift.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_emit_tests.c b/src/dynarec/rv64/dynarec_rv64_emit_tests.c
index bc9e79ce..c3ed32ce 100644
--- a/src/dynarec/rv64/dynarec_rv64_emit_tests.c
+++ b/src/dynarec/rv64/dynarec_rv64_emit_tests.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_f0.c b/src/dynarec/rv64/dynarec_rv64_f0.c
index adac3d17..0a647526 100644
--- a/src/dynarec/rv64/dynarec_rv64_f0.c
+++ b/src/dynarec/rv64/dynarec_rv64_f0.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_f20f.c b/src/dynarec/rv64/dynarec_rv64_f20f.c
index 5eee471f..f376a3eb 100644
--- a/src/dynarec/rv64/dynarec_rv64_f20f.c
+++ b/src/dynarec/rv64/dynarec_rv64_f20f.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_f20f_vector.c b/src/dynarec/rv64/dynarec_rv64_f20f_vector.c
index ed9790f6..688159a5 100644
--- a/src/dynarec/rv64/dynarec_rv64_f20f_vector.c
+++ b/src/dynarec/rv64/dynarec_rv64_f20f_vector.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_f30f.c b/src/dynarec/rv64/dynarec_rv64_f30f.c
index 671ca9ed..1200f0ff 100644
--- a/src/dynarec/rv64/dynarec_rv64_f30f.c
+++ b/src/dynarec/rv64/dynarec_rv64_f30f.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_f30f_vector.c b/src/dynarec/rv64/dynarec_rv64_f30f_vector.c
index bf825cc6..eb204e7b 100644
--- a/src/dynarec/rv64/dynarec_rv64_f30f_vector.c
+++ b/src/dynarec/rv64/dynarec_rv64_f30f_vector.c
@@ -5,10 +5,9 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_functions.c b/src/dynarec/rv64/dynarec_rv64_functions.c
index fcda5645..9e8ed92b 100644
--- a/src/dynarec/rv64/dynarec_rv64_functions.c
+++ b/src/dynarec/rv64/dynarec_rv64_functions.c
@@ -10,9 +10,8 @@
 
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/dynarec/rv64/dynarec_rv64_helper.c b/src/dynarec/rv64/dynarec_rv64_helper.c
index 25a1a469..c59febc9 100644
--- a/src/dynarec/rv64/dynarec_rv64_helper.c
+++ b/src/dynarec/rv64/dynarec_rv64_helper.c
@@ -8,11 +8,10 @@
 #include "bitutils.h"
 #include "debug.h"
 #include "box64context.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "rv64_emitter.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
 #include "callback.h"
diff --git a/src/elfs/elfloader.c b/src/elfs/elfloader.c
index cf00843e..2f8add77 100644
--- a/src/elfs/elfloader.c
+++ b/src/elfs/elfloader.c
@@ -21,12 +21,13 @@
 #include "elfload_dump.h"
 #include "elfloader_private.h"
 #include "librarian.h"
-#include "x64run.h"
 #include "bridge.h"
 #include "wrapper.h"
 #include "box64context.h"
 #include "library.h"
 #include "x64emu.h"
+#include "box64cpu.h"
+#include "box64cpu_util.h"
 #include "box64stack.h"
 #include "callback.h"
 #include "box64stack.h"
diff --git a/src/elfs/elfloader32.c b/src/elfs/elfloader32.c
index 4352cfd0..42478d8e 100644
--- a/src/elfs/elfloader32.c
+++ b/src/elfs/elfloader32.c
@@ -29,6 +29,7 @@
 #include "box64stack.h"
 #include "callback.h"
 #include "box64stack.h"
+#include "box64cpu_util.h"
 #include "wine_tools.h"
 #include "dictionnary.h"
 #include "symbols.h"
diff --git a/src/emu/x64emu.c b/src/emu/x64emu.c
index 05ff1393..a2117176 100644
--- a/src/emu/x64emu.c
+++ b/src/emu/x64emu.c
@@ -11,10 +11,11 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
+#include "box64cpu.h"
+#include "box64cpu_util.h"
 #include "x64emu_private.h"
 #include "x87emu_private.h"
 #include "box64context.h"
-#include "x64run.h"
 #include "x64run_private.h"
 #include "callback.h"
 #include "bridge.h"
diff --git a/src/emu/x64int3.c b/src/emu/x64int3.c
index 6c1d5d92..9ae93f99 100644
--- a/src/emu/x64int3.c
+++ b/src/emu/x64int3.c
@@ -17,7 +17,7 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
+#include "box64cpu.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x87emu_private.h"
diff --git a/src/emu/x64run.c b/src/emu/x64run.c
index ad1db962..f55084c5 100644
--- a/src/emu/x64run.c
+++ b/src/emu/x64run.c
@@ -11,8 +11,8 @@
 #include "os.h"
 #include "debug.h"
 #include "box64stack.h"
+#include "box64cpu_util.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c
index 556ad1f8..2a5df329 100644
--- a/src/emu/x64run0f.c
+++ b/src/emu/x64run0f.c
@@ -11,8 +11,8 @@
 

 #include "debug.h"

 #include "box64stack.h"

+#include "box64cpu_util.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

diff --git a/src/emu/x64run64.c b/src/emu/x64run64.c
index 33f1e806..bfecc778 100644
--- a/src/emu/x64run64.c
+++ b/src/emu/x64run64.c
@@ -10,8 +10,8 @@
 

 #include "debug.h"

 #include "box64stack.h"

+#include "box64cpu_util.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

diff --git a/src/emu/x64run66.c b/src/emu/x64run66.c
index e1abf3b7..5a1b377f 100644
--- a/src/emu/x64run66.c
+++ b/src/emu/x64run66.c
@@ -10,8 +10,8 @@
 

 #include "debug.h"

 #include "box64stack.h"

+#include "box64cpu_util.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

diff --git a/src/emu/x64run660f.c b/src/emu/x64run660f.c
index 44d63bdb..a6271775 100644
--- a/src/emu/x64run660f.c
+++ b/src/emu/x64run660f.c
@@ -12,7 +12,6 @@
 #include "debug.h"

 #include "box64stack.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

diff --git a/src/emu/x64run6664.c b/src/emu/x64run6664.c
index 299f7f7d..35dda42d 100644
--- a/src/emu/x64run6664.c
+++ b/src/emu/x64run6664.c
@@ -11,7 +11,6 @@
 #include "debug.h"

 #include "box64stack.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

diff --git a/src/emu/x64run66d9.c b/src/emu/x64run66d9.c
index 84b554df..a7b1a331 100644
--- a/src/emu/x64run66d9.c
+++ b/src/emu/x64run66d9.c
@@ -11,7 +11,6 @@
 #include "debug.h"

 #include "box64stack.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

diff --git a/src/emu/x64run66dd.c b/src/emu/x64run66dd.c
index 7f768aad..b1673064 100644
--- a/src/emu/x64run66dd.c
+++ b/src/emu/x64run66dd.c
@@ -11,7 +11,6 @@
 #include "debug.h"

 #include "box64stack.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

diff --git a/src/emu/x64run66f0.c b/src/emu/x64run66f0.c
index 7e6fc5db..4401d260 100644
--- a/src/emu/x64run66f0.c
+++ b/src/emu/x64run66f0.c
@@ -11,7 +11,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64run66f20f.c b/src/emu/x64run66f20f.c
index a4ad4438..bc6c0732 100644
--- a/src/emu/x64run66f20f.c
+++ b/src/emu/x64run66f20f.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64run66f30f.c b/src/emu/x64run66f30f.c
index 878fc01a..91a772c2 100644
--- a/src/emu/x64run66f30f.c
+++ b/src/emu/x64run66f30f.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64run67.c b/src/emu/x64run67.c
index 5d0eea0f..c64bf630 100644
--- a/src/emu/x64run67.c
+++ b/src/emu/x64run67.c
@@ -10,8 +10,8 @@
 

 #include "debug.h"

 #include "box64stack.h"

+#include "box64cpu_util.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

@@ -580,4 +580,4 @@ uintptr_t Run67(x64emu_t *emu, rex_t rex, int rep, uintptr_t addr)
         return 0;

     }

     return addr;

-}
\ No newline at end of file
+}

diff --git a/src/emu/x64run670f.c b/src/emu/x64run670f.c
index 87b89f84..8d074a1d 100644
--- a/src/emu/x64run670f.c
+++ b/src/emu/x64run670f.c
@@ -11,7 +11,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64run6764_32.c b/src/emu/x64run6764_32.c
index c17481cc..bb53498e 100644
--- a/src/emu/x64run6764_32.c
+++ b/src/emu/x64run6764_32.c
@@ -10,8 +10,8 @@
 
 #include "debug.h"
 #include "box64stack.h"
+#include "box64cpu_util.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64run6766.c b/src/emu/x64run6766.c
index 080abf91..d7fd39be 100644
--- a/src/emu/x64run6766.c
+++ b/src/emu/x64run6766.c
@@ -11,7 +11,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64run67660f.c b/src/emu/x64run67660f.c
index 0369b82a..4e1a3f90 100644
--- a/src/emu/x64run67660f.c
+++ b/src/emu/x64run67660f.c
@@ -11,7 +11,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64run67_32.c b/src/emu/x64run67_32.c
index 4b7afbea..73459143 100644
--- a/src/emu/x64run67_32.c
+++ b/src/emu/x64run67_32.c
@@ -11,7 +11,6 @@
 #include "debug.h"

 #include "box64stack.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

@@ -112,4 +111,4 @@ uintptr_t Run67_32(x64emu_t *emu, rex_t rex, int rep, uintptr_t addr)
         return 0;

     }

     return addr;

-}
\ No newline at end of file
+}

diff --git a/src/emu/x64run67avx.c b/src/emu/x64run67avx.c
index bfc99e9c..de275c92 100644
--- a/src/emu/x64run67avx.c
+++ b/src/emu/x64run67avx.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64run_private.c b/src/emu/x64run_private.c
index 4f3d5b4c..9d520e59 100644
--- a/src/emu/x64run_private.c
+++ b/src/emu/x64run_private.c
@@ -12,11 +12,11 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
+#include "box64cpu.h"
+#include "box64cpu_util.h"
 #include "x64run_private.h"
 #include "x64emu_private.h"
 #include "box64context.h"
-#include "x64run.h"
 #include "librarian.h"
 #include "elfloader.h"
 #ifdef HAVE_TRACE
diff --git a/src/emu/x64run_private.h b/src/emu/x64run_private.h
index 35fa99bb..53b1bf74 100644
--- a/src/emu/x64run_private.h
+++ b/src/emu/x64run_private.h
@@ -5,7 +5,6 @@
 #include "regs.h"
 #include "x64emu_private.h"
 #include "box64context.h"
-typedef struct x64emu_s x64emu_t;
 
 typedef struct rex_s {
     union {
@@ -37,79 +36,6 @@ typedef struct vex_s {
     uint16_t    m:5;    // opcode map
 } vex_t;
 
-static inline uint8_t Peek(x64emu_t *emu, int offset){return *(uint8_t*)(R_RIP + offset);}
-
-#ifdef TEST_INTERPRETER
-#define Push16(E, V)  do{E->regs[_SP].q[0] -=2; test->memsize = 2; *(uint16_t*)test->mem = (V); test->memaddr = E->regs[_SP].q[0];}while(0)
-#define Push32(E, V)  do{E->regs[_SP].q[0] -=4; test->memsize = 4; *(uint32_t*)test->mem = (V); test->memaddr = E->regs[_SP].q[0];}while(0)
-#define Push64(E, V)  do{E->regs[_SP].q[0] -=8; test->memsize = 8; *(uint64_t*)test->mem = (V); test->memaddr = E->regs[_SP].q[0];}while(0)
-#else
-static inline void Push16(x64emu_t *emu, uint16_t v)
-{
-    R_RSP -= 2;
-    *((uint16_t*)R_RSP) = v;
-}
-
-static inline void Push_32(x64emu_t *emu, uint32_t v)
-{
-    R_ESP -= 4;
-    *((uint32_t*)(uintptr_t)R_ESP) = v;
-}
-
-static inline void Push32(x64emu_t *emu, uint32_t v)
-{
-    R_RSP -= 4;
-    *((uint32_t*)R_RSP) = v;
-}
-
-static inline void Push64(x64emu_t *emu, uint64_t v)
-{
-    R_RSP -= 8;
-    *((uint64_t*)R_RSP) = v;
-}
-#endif
-
-static inline uint16_t Pop16(x64emu_t *emu)
-{
-    uint16_t* st = (uint16_t*)R_RSP;
-    R_RSP += 2;
-    return *st;
-}
-
-static inline uint32_t Pop_32(x64emu_t *emu)
-{
-    uint32_t* st = (uint32_t*)(uintptr_t)R_RSP;
-    R_ESP += 4;
-    return *st;
-}
-
-static inline uint32_t Pop32(x64emu_t *emu)
-{
-    uint32_t* st = (uint32_t*)R_RSP;
-    R_RSP += 4;
-    return *st;
-}
-
-static inline uint64_t Pop64(x64emu_t *emu)
-{
-    uint64_t* st = (uint64_t*)R_RSP;
-    R_RSP += 8;
-    return *st;
-}
-
-static inline void PushExit(x64emu_t* emu)
-{
-    R_RSP -= 8;
-    *((uint64_t*)R_RSP) = my_context->exit_bridge;
-}
-
-#ifdef BOX32
-static inline void PushExit_32(x64emu_t* emu)
-{
-    R_ESP -= 4;
-    *((ptr_t*)(uintptr_t)R_ESP) = my_context->exit_bridge;
-}
-#endif
 // the op code definition can be found here: http://ref.x86asm.net/geek32.html
 
 reg64_t* GetECommon(x64emu_t* emu, uintptr_t* addr, rex_t rex, uint8_t m, uint8_t delta);
diff --git a/src/emu/x64runavx.c b/src/emu/x64runavx.c
index a4e3fc35..9651e924 100644
--- a/src/emu/x64runavx.c
+++ b/src/emu/x64runavx.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64runavx0f.c b/src/emu/x64runavx0f.c
index 49786f8b..4ca1cb5e 100644
--- a/src/emu/x64runavx0f.c
+++ b/src/emu/x64runavx0f.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64runavx0f38.c b/src/emu/x64runavx0f38.c
index 011491c4..015167c5 100644
--- a/src/emu/x64runavx0f38.c
+++ b/src/emu/x64runavx0f38.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64runavx660f.c b/src/emu/x64runavx660f.c
index 45aaf043..26c36bbb 100644
--- a/src/emu/x64runavx660f.c
+++ b/src/emu/x64runavx660f.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64runavx660f38.c b/src/emu/x64runavx660f38.c
index d7d4b914..1766168d 100644
--- a/src/emu/x64runavx660f38.c
+++ b/src/emu/x64runavx660f38.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64runavx660f3a.c b/src/emu/x64runavx660f3a.c
index 4a5ea456..d81f6a84 100644
--- a/src/emu/x64runavx660f3a.c
+++ b/src/emu/x64runavx660f3a.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64runavxf20f.c b/src/emu/x64runavxf20f.c
index 9dc26b01..4cbd1af5 100644
--- a/src/emu/x64runavxf20f.c
+++ b/src/emu/x64runavxf20f.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64runavxf20f38.c b/src/emu/x64runavxf20f38.c
index 05754092..276ccbfd 100644
--- a/src/emu/x64runavxf20f38.c
+++ b/src/emu/x64runavxf20f38.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64runavxf20f3a.c b/src/emu/x64runavxf20f3a.c
index 186d35cc..f9691fe4 100644
--- a/src/emu/x64runavxf20f3a.c
+++ b/src/emu/x64runavxf20f3a.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64runavxf30f.c b/src/emu/x64runavxf30f.c
index d712b105..08d746cf 100644
--- a/src/emu/x64runavxf30f.c
+++ b/src/emu/x64runavxf30f.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64runavxf30f38.c b/src/emu/x64runavxf30f38.c
index a2ed5225..4dbdbbd5 100644
--- a/src/emu/x64runavxf30f38.c
+++ b/src/emu/x64runavxf30f38.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64runavxf30f3a.c b/src/emu/x64runavxf30f3a.c
index c5dc9a17..0100c3c8 100644
--- a/src/emu/x64runavxf30f3a.c
+++ b/src/emu/x64runavxf30f3a.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64rund8.c b/src/emu/x64rund8.c
index fd5ccf66..44413c10 100644
--- a/src/emu/x64rund8.c
+++ b/src/emu/x64rund8.c
@@ -12,7 +12,6 @@
 #include "debug.h"

 #include "box64stack.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

@@ -199,4 +198,4 @@ uintptr_t RunD8(x64emu_t *emu, rex_t rex, uintptr_t addr, uintptr_t offs)
         }

     fesetround(oldround);

     return addr;

-}
\ No newline at end of file
+}

diff --git a/src/emu/x64rund9.c b/src/emu/x64rund9.c
index c7b8d308..a4f6cc2b 100644
--- a/src/emu/x64rund9.c
+++ b/src/emu/x64rund9.c
@@ -12,7 +12,6 @@
 #include "debug.h"

 #include "box64stack.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

@@ -347,4 +346,4 @@ uintptr_t RunD9(x64emu_t *emu, rex_t rex, uintptr_t addr, uintptr_t offs)
                 return 0;

         }

     return addr;

-}
\ No newline at end of file
+}

diff --git a/src/emu/x64runda.c b/src/emu/x64runda.c
index 056937e7..f8a1b70e 100644
--- a/src/emu/x64runda.c
+++ b/src/emu/x64runda.c
@@ -12,7 +12,6 @@
 #include "debug.h"

 #include "box64stack.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

@@ -136,4 +135,4 @@ uintptr_t RunDA(x64emu_t *emu, rex_t rex, uintptr_t addr)
         fesetround(oldround);

     }

    return addr;

-}
\ No newline at end of file
+}

diff --git a/src/emu/x64rundb.c b/src/emu/x64rundb.c
index b6ba0ff1..5e12fa6d 100644
--- a/src/emu/x64rundb.c
+++ b/src/emu/x64rundb.c
@@ -12,7 +12,6 @@
 #include "debug.h"

 #include "box64stack.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

diff --git a/src/emu/x64rundc.c b/src/emu/x64rundc.c
index c9ffe738..00775698 100644
--- a/src/emu/x64rundc.c
+++ b/src/emu/x64rundc.c
@@ -11,7 +11,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x64rundd.c b/src/emu/x64rundd.c
index 5aa23395..d7e6f748 100644
--- a/src/emu/x64rundd.c
+++ b/src/emu/x64rundd.c
@@ -11,7 +11,6 @@
 #include "debug.h"

 #include "box64stack.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

@@ -161,4 +160,4 @@ uintptr_t RunDD(x64emu_t *emu, rex_t rex, uintptr_t addr)
                 return 0;

         }

    return addr;

-}
\ No newline at end of file
+}

diff --git a/src/emu/x64runde.c b/src/emu/x64runde.c
index 8b082aa5..782edcc7 100644
--- a/src/emu/x64runde.c
+++ b/src/emu/x64runde.c
@@ -12,7 +12,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
@@ -163,4 +162,4 @@ uintptr_t RunDE(x64emu_t *emu, rex_t rex, uintptr_t addr)
         }
     fesetround(oldround);
     return addr;
-}
\ No newline at end of file
+}
diff --git a/src/emu/x64rundf.c b/src/emu/x64rundf.c
index dfedb293..dbf48007 100644
--- a/src/emu/x64rundf.c
+++ b/src/emu/x64rundf.c
@@ -11,7 +11,6 @@
 #include "debug.h"

 #include "box64stack.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

diff --git a/src/emu/x64runf0.c b/src/emu/x64runf0.c
index 22f19566..2764db5c 100644
--- a/src/emu/x64runf0.c
+++ b/src/emu/x64runf0.c
@@ -11,7 +11,6 @@
 #include "debug.h"

 #include "box64stack.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

diff --git a/src/emu/x64runf20f.c b/src/emu/x64runf20f.c
index 32c2b050..1886543b 100644
--- a/src/emu/x64runf20f.c
+++ b/src/emu/x64runf20f.c
@@ -12,7 +12,6 @@
 #include "debug.h"

 #include "box64stack.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

diff --git a/src/emu/x64runf30f.c b/src/emu/x64runf30f.c
index ce69411d..7332032f 100644
--- a/src/emu/x64runf30f.c
+++ b/src/emu/x64runf30f.c
@@ -12,7 +12,6 @@
 #include "debug.h"

 #include "box64stack.h"

 #include "x64emu.h"

-#include "x64run.h"

 #include "x64emu_private.h"

 #include "x64run_private.h"

 #include "x64primop.h"

diff --git a/src/emu/x64syscall.c b/src/emu/x64syscall.c
index f3d80b03..f7d6a6d7 100644
--- a/src/emu/x64syscall.c
+++ b/src/emu/x64syscall.c
@@ -26,7 +26,7 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
+#include "box64cpu.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 //#include "x64primop.h"
diff --git a/src/emu/x64test.c b/src/emu/x64test.c
index 84f2e503..4ac4eeff 100644
--- a/src/emu/x64test.c
+++ b/src/emu/x64test.c
@@ -12,7 +12,7 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
+#include "x64test.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x64primop.h"
diff --git a/src/emu/x86int3.c b/src/emu/x86int3.c
index 24887f37..f3b232c6 100755
--- a/src/emu/x86int3.c
+++ b/src/emu/x86int3.c
@@ -15,7 +15,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64run_private.h"
 #include "x87emu_private.h"
diff --git a/src/emu/x86syscall.c b/src/emu/x86syscall.c
index 0ab60e4f..6b0625ac 100755
--- a/src/emu/x86syscall.c
+++ b/src/emu/x86syscall.c
@@ -26,7 +26,6 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "x64emu_private.h"
 #include "x64trace.h"
 #include "myalign.h"
diff --git a/src/emu/x86syscall_32.c b/src/emu/x86syscall_32.c
index b8c4e1cb..b4ed24d2 100644
--- a/src/emu/x86syscall_32.c
+++ b/src/emu/x86syscall_32.c
@@ -28,7 +28,7 @@
 #include "debug.h"
 #include "box64stack.h"
 #include "x64emu.h"
-#include "x64run.h"
+#include "box64cpu.h"
 #include "x64emu_private.h"
 #include "x64trace.h"
 #include "myalign32.h"
diff --git a/src/include/box64cpu.h b/src/include/box64cpu.h
new file mode 100644
index 00000000..72df2c69
--- /dev/null
+++ b/src/include/box64cpu.h
@@ -0,0 +1,12 @@
+#ifndef __BOX64CPU_H_
+#define __BOX64CPU_H_
+
+typedef struct x64emu_s x64emu_t;
+
+int Run(x64emu_t *emu, int step);
+void EmuCall(x64emu_t* emu, uintptr_t addr);
+void StopEmu(x64emu_t* emu, const char* reason, int is32bits);
+void DynaRun(x64emu_t *emu);
+void DynaCall(x64emu_t* emu, uintptr_t addr);
+
+#endif // __BOX64CPU_H_
diff --git a/src/include/box64cpu_util.h b/src/include/box64cpu_util.h
new file mode 100644
index 00000000..9f774a19
--- /dev/null
+++ b/src/include/box64cpu_util.h
@@ -0,0 +1,111 @@
+#ifndef __BOX64CPU_UTIL_H_
+#define __BOX64CPU_UTIL_H_
+
+#include <stdint.h>
+#include "emu/x64emu_private.h"
+#include "box64context.h"
+#include "regs.h"
+
+static inline uint8_t Peek(x64emu_t *emu, int offset)
+{
+    return *(uint8_t*)(R_RIP + offset);
+}
+
+#ifdef TEST_INTERPRETER
+#define Push16(E, V)  do{E->regs[_SP].q[0] -=2; test->memsize = 2; *(uint16_t*)test->mem = (V); test->memaddr = E->regs[_SP].q[0];}while(0)
+#define Push32(E, V)  do{E->regs[_SP].q[0] -=4; test->memsize = 4; *(uint32_t*)test->mem = (V); test->memaddr = E->regs[_SP].q[0];}while(0)
+#define Push64(E, V)  do{E->regs[_SP].q[0] -=8; test->memsize = 8; *(uint64_t*)test->mem = (V); test->memaddr = E->regs[_SP].q[0];}while(0)
+#else
+static inline void Push16(x64emu_t *emu, uint16_t v)
+{
+    R_RSP -= 2;
+    *((uint16_t*)R_RSP) = v;
+}
+
+static inline void Push_32(x64emu_t *emu, uint32_t v)
+{
+    R_ESP -= 4;
+    *((uint32_t*)(uintptr_t)R_ESP) = v;
+}
+
+static inline void Push32(x64emu_t *emu, uint32_t v)
+{
+    R_RSP -= 4;
+    *((uint32_t*)R_RSP) = v;
+}
+
+static inline void Push64(x64emu_t *emu, uint64_t v)
+{
+    R_RSP -= 8;
+    *((uint64_t*)R_RSP) = v;
+}
+#endif
+
+static inline uint16_t Pop16(x64emu_t *emu)
+{
+    uint16_t* st = (uint16_t*)R_RSP;
+    R_RSP += 2;
+    return *st;
+}
+
+static inline uint32_t Pop_32(x64emu_t *emu)
+{
+    uint32_t* st = (uint32_t*)(uintptr_t)R_RSP;
+    R_ESP += 4;
+    return *st;
+}
+
+static inline uint32_t Pop32(x64emu_t *emu)
+{
+    uint32_t* st = (uint32_t*)R_RSP;
+    R_RSP += 4;
+    return *st;
+}
+
+static inline uint64_t Pop64(x64emu_t *emu)
+{
+    uint64_t* st = (uint64_t*)R_RSP;
+    R_RSP += 8;
+    return *st;
+}
+
+static inline void PushExit(x64emu_t* emu)
+{
+    R_RSP -= 8;
+    *((uint64_t*)R_RSP) = my_context->exit_bridge;
+}
+
+#ifdef BOX32
+static inline void PushExit_32(x64emu_t* emu)
+{
+    R_ESP -= 4;
+    *((ptr_t*)(uintptr_t)R_ESP) = my_context->exit_bridge;
+}
+#endif
+
+uint32_t GetEAX(x64emu_t *emu);
+uint64_t GetRAX(x64emu_t *emu);
+void SetEAX(x64emu_t *emu, uint32_t v);
+void SetEBX(x64emu_t *emu, uint32_t v);
+void SetECX(x64emu_t *emu, uint32_t v);
+void SetEDX(x64emu_t *emu, uint32_t v);
+void SetEDI(x64emu_t *emu, uint32_t v);
+void SetESI(x64emu_t *emu, uint32_t v);
+void SetEBP(x64emu_t *emu, uint32_t v);
+void SetESP(x64emu_t *emu, uint32_t v);
+void SetEIP(x64emu_t *emu, uint32_t v);
+void SetRAX(x64emu_t *emu, uint64_t v);
+void SetRBX(x64emu_t *emu, uint64_t v);
+void SetRCX(x64emu_t *emu, uint64_t v);
+void SetRDX(x64emu_t *emu, uint64_t v);
+void SetRDI(x64emu_t *emu, uint64_t v);
+void SetRSI(x64emu_t *emu, uint64_t v);
+void SetRBP(x64emu_t *emu, uint64_t v);
+void SetRSP(x64emu_t *emu, uint64_t v);
+void SetRIP(x64emu_t *emu, uint64_t v);
+void SetFS(x64emu_t *emu, uint16_t v);
+uint16_t GetFS(x64emu_t *emu);
+uint64_t GetRSP(x64emu_t *emu);
+uint64_t GetRBP(x64emu_t *emu);
+
+#endif // __BOX64CPU_UTIL_H_
diff --git a/src/include/dynarec.h b/src/include/dynarec.h
deleted file mode 100644
index 39360841..00000000
--- a/src/include/dynarec.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __DYNAREC_H_
-#define __DYNAREC_H_
-
-typedef struct x64emu_s x64emu_t;
-
-void DynaCall(x64emu_t* emu, uintptr_t addr); // try to use DynaRec... Fallback to EmuCall if no dynarec available
-
-#endif // __DYNAREC_H_
diff --git a/src/include/x64emu.h b/src/include/x64emu.h
index 8b6fa4cb..e06620af 100644
--- a/src/include/x64emu.h
+++ b/src/include/x64emu.h
@@ -16,36 +16,10 @@ void SetTraceEmu(uintptr_t trace_start, uintptr_t trace_end);
 
 box64context_t* GetEmuContext(x64emu_t* emu);
 
-uint32_t GetEAX(x64emu_t *emu);
-uint64_t GetRAX(x64emu_t *emu);
-void SetEAX(x64emu_t *emu, uint32_t v);
-void SetEBX(x64emu_t *emu, uint32_t v);
-void SetECX(x64emu_t *emu, uint32_t v);
-void SetEDX(x64emu_t *emu, uint32_t v);
-void SetEDI(x64emu_t *emu, uint32_t v);
-void SetESI(x64emu_t *emu, uint32_t v);
-void SetEBP(x64emu_t *emu, uint32_t v);
-void SetESP(x64emu_t *emu, uint32_t v);
-void SetEIP(x64emu_t *emu, uint32_t v);
-void SetRAX(x64emu_t *emu, uint64_t v);
-void SetRBX(x64emu_t *emu, uint64_t v);
-void SetRCX(x64emu_t *emu, uint64_t v);
-void SetRDX(x64emu_t *emu, uint64_t v);
-void SetRDI(x64emu_t *emu, uint64_t v);
-void SetRSI(x64emu_t *emu, uint64_t v);
-void SetRBP(x64emu_t *emu, uint64_t v);
-void SetRSP(x64emu_t *emu, uint64_t v);
-void SetRIP(x64emu_t *emu, uint64_t v);
-void SetFS(x64emu_t *emu, uint16_t v);
-uint16_t GetFS(x64emu_t *emu);
-uint64_t GetRSP(x64emu_t *emu);
-uint64_t GetRBP(x64emu_t *emu);
 void ResetFlags(x64emu_t *emu);
 void ResetSegmentsCache(x64emu_t *emu);
 const char* DumpCPURegs(x64emu_t* emu, uintptr_t ip, int is32bits);
 
-void StopEmu(x64emu_t* emu, const char* reason, int is32bits);
-void EmuCall(x64emu_t* emu, uintptr_t addr);
 void AddCleanup(x64emu_t *emu, void *p);
 void AddCleanup1Arg(x64emu_t *emu, void *p, void* a, elfheader_t* h);
 void CallCleanup(x64emu_t *emu, elfheader_t* h);
@@ -63,4 +37,4 @@ void D2LD(void* d, void* ld);   // double (64bits) -> long double (64bits)
 int printFunctionAddr(uintptr_t nextaddr, const char* text); // 0 if nothing was found
 const char* getAddrFunctionName(uintptr_t addr);
 
-#endif //__X86EMU_H_
\ No newline at end of file
+#endif //__X86EMU_H_
diff --git a/src/include/x64run.h b/src/include/x64run.h
deleted file mode 100644
index c89e0786..00000000
--- a/src/include/x64run.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef __X64RUN_H_
-#define __X64RUN_H_
-#include <stdint.h>
-
-typedef struct x64emu_s x64emu_t;
-typedef struct x64test_s x64test_t;
-int Run(x64emu_t *emu, int step); // 0 if run was successfull, 1 if error in x86 world
-int RunTest(x64test_t *test);
-void DynaRun(x64emu_t *emu);
-
-#endif //__X64RUN_H_
diff --git a/src/include/x64test.h b/src/include/x64test.h
index 48e2a935..be417ce4 100644
--- a/src/include/x64test.h
+++ b/src/include/x64test.h
@@ -1,6 +1,9 @@
 #ifndef __X64TEST_H_
 #define __X64TEST_H_
 
+typedef struct x64test_s x64test_t;
+int RunTest(x64test_t* test);
+
 void x64test_step(x64emu_t* ref, uintptr_t ip);
 void x64test_check(x64emu_t* ref, uintptr_t ip);
 
diff --git a/src/libtools/sdl1rwops.c b/src/libtools/sdl1rwops.c
index baf6897b..b9ccbd3b 100644
--- a/src/libtools/sdl1rwops.c
+++ b/src/libtools/sdl1rwops.c
@@ -11,7 +11,6 @@
 #include "sdl1align32.h"
 #endif
 #include "box64context.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "emu/x64emu_private.h"
 #include "librarian/library_private.h"
diff --git a/src/libtools/sdl2rwops.c b/src/libtools/sdl2rwops.c
index 41d7b2e8..350ade31 100644
--- a/src/libtools/sdl2rwops.c
+++ b/src/libtools/sdl2rwops.c
@@ -11,7 +11,6 @@
 #include "sdl2align32.h"
 #endif
 #include "box64context.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "emu/x64emu_private.h"
 #include "librarian/library_private.h"
diff --git a/src/libtools/signal32.c b/src/libtools/signal32.c
index 9a47263a..b8f8b37d 100644
--- a/src/libtools/signal32.c
+++ b/src/libtools/signal32.c
@@ -25,9 +25,8 @@
 #include "emu/x64run_private.h"
 #include "signals.h"
 #include "box64stack.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "callback.h"
-#include "x64run.h"
 #include "elfloader.h"
 #include "threads.h"
 #include "emu/x87emu_private.h"
diff --git a/src/libtools/signals.c b/src/libtools/signals.c
index f2ed092f..5190515e 100644
--- a/src/libtools/signals.c
+++ b/src/libtools/signals.c
@@ -25,9 +25,8 @@
 #include "emu/x64run_private.h"
 #include "signals.h"
 #include "box64stack.h"
-#include "dynarec.h"
+#include "box64cpu.h"
 #include "callback.h"
-#include "x64run.h"
 #include "elfloader.h"
 #include "threads.h"
 #include "emu/x87emu_private.h"
diff --git a/src/libtools/threads.c b/src/libtools/threads.c
index 40ec2c62..2454f929 100644
--- a/src/libtools/threads.c
+++ b/src/libtools/threads.c
@@ -15,15 +15,16 @@
 #include "box64context.h"
 #include "threads.h"
 #include "emu/x64emu_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
+#include "box64cpu.h"
+#include "box64cpu.h"
+#include "box64cpu_util.h"
 #include "callback.h"
 #include "custommem.h"
 #include "khash.h"
 #include "emu/x64run_private.h"
 #include "x64trace.h"
-#include "dynarec.h"
 #include "bridge.h"
 #include "myalign.h"
 #ifdef DYNAREC
diff --git a/src/libtools/threads32.c b/src/libtools/threads32.c
index f1db7a35..87187b24 100755
--- a/src/libtools/threads32.c
+++ b/src/libtools/threads32.c
@@ -16,15 +16,15 @@
 #include "threads.h"
 #include "emu/x64emu_private.h"
 #include "tools/bridge_private.h"
-#include "x64run.h"
 #include "x64emu.h"
 #include "box64stack.h"
+#include "box64cpu.h"
+#include "box64cpu_util.h"
 #include "callback.h"
 #include "custommem.h"
 #include "khash.h"
 #include "emu/x64run_private.h"
 #include "x64trace.h"
-#include "dynarec.h"
 #include "bridge.h"
 #ifdef DYNAREC
 #include "dynablock.h"
diff --git a/src/tools/box64stack.c b/src/tools/box64stack.c
index 8b5249d9..ce8888e5 100644
--- a/src/tools/box64stack.c
+++ b/src/tools/box64stack.c
@@ -6,6 +6,7 @@
 
 #include "box64stack.h"
 #include "box64context.h"
+#include "box64cpu_util.h"
 #include "elfloader.h"
 #include "debug.h"
 #include "emu/x64emu_private.h"
diff --git a/src/tools/callback.c b/src/tools/callback.c
index 4cdcc754..f7e914b4 100644
--- a/src/tools/callback.c
+++ b/src/tools/callback.c
@@ -6,12 +6,12 @@
 
 #include "debug.h"
 #include "x64emu.h"
-#include "x64run.h"
 #include "emu/x64emu_private.h"
 #include "emu/x64run_private.h"
 #include "box64context.h"
 #include "box64stack.h"
-#include "dynarec.h"
+#include "box64cpu.h"
+#include "box64cpu_util.h"
 #ifdef BOX32
 #include "box32.h"
 #endif
@@ -439,4 +439,4 @@ uint64_t RunFunctionWindows(uintptr_t fnc, int nargs, ...)
     uint64_t ret = R_RAX;
 
     return ret;
-}
\ No newline at end of file
+}
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c
index cd20c7d4..9685831c 100644
--- a/src/wrapped/wrappedlibc.c
+++ b/src/wrapped/wrappedlibc.c
@@ -49,6 +49,7 @@
 
 #include "box64stack.h"
 #include "x64emu.h"
+#include "box64cpu.h"
 #include "debug.h"
 #include "wrapper.h"
 #include "bridge.h"
diff --git a/src/wrapped32/wrappedlibc.c b/src/wrapped32/wrappedlibc.c
index a1b0d67d..2065517e 100755
--- a/src/wrapped32/wrappedlibc.c
+++ b/src/wrapped32/wrappedlibc.c
@@ -50,6 +50,7 @@
 
 #include "box64stack.h"
 #include "x64emu.h"
+#include "box64cpu.h"
 #include "debug.h"
 #include "wrapper32.h"
 #include "bridge.h"