about summary refs log tree commit diff stats
path: root/src/dynarec
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-04-10 18:14:50 +0800
committerGitHub <noreply@github.com>2025-04-10 12:14:50 +0200
commitf9f082ee53ae0ab8e12b0c1bf1de339af8b92282 (patch)
treeb040c5f88bf691cc67f7fc1bd9c8b4914ea4758b /src/dynarec
parent66bb1aeb89d7ee64cad83ab12208b221ce5e9731 (diff)
downloadbox64-f9f082ee53ae0ab8e12b0c1bf1de339af8b92282.tar.gz
box64-f9f082ee53ae0ab8e12b0c1bf1de339af8b92282.zip
[WOW64] More work on the PE wow64 build (#2518)
* [WOW64] More work on the PE wow64 build

* added a TODO
Diffstat (limited to 'src/dynarec')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_arch.c2
-rw-r--r--src/dynarec/arm64/dynarec_arm64_arch.h6
-rw-r--r--src/dynarec/arm64/dynarec_arm64_functions.c1
-rw-r--r--src/dynarec/dynarec_native.c11
-rw-r--r--src/dynarec/la64/dynarec_la64_functions.c1
-rw-r--r--src/dynarec/rv64/dynarec_rv64_functions.c1
6 files changed, 10 insertions, 12 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_arch.c b/src/dynarec/arm64/dynarec_arm64_arch.c
index 45093acd..3ff8d073 100644
--- a/src/dynarec/arm64/dynarec_arm64_arch.c
+++ b/src/dynarec/arm64/dynarec_arm64_arch.c
@@ -262,6 +262,7 @@ int getX64AddressInst(dynablock_t* db, uintptr_t x64pc); // define is signal.c
 // NZCV V
 #define NZCV_V      28
 
+#ifndef _WIN32 // TODO: Implemented this for Win32
 void adjust_arch(dynablock_t* db, x64emu_t* emu, ucontext_t* p, uintptr_t x64pc)
 {
     if(!db->arch_size || !db->arch)
@@ -392,6 +393,7 @@ void adjust_arch(dynablock_t* db, x64emu_t* emu, ucontext_t* p, uintptr_t x64pc)
     }
     dynarec_log_prefix(0, LOG_INFO, "\n");
 }
+#endif
 
 int arch_unaligned(dynablock_t* db, uintptr_t x64pc)
 {
diff --git a/src/dynarec/arm64/dynarec_arm64_arch.h b/src/dynarec/arm64/dynarec_arm64_arch.h
index 4463df6c..ccdd2121 100644
--- a/src/dynarec/arm64/dynarec_arm64_arch.h
+++ b/src/dynarec/arm64/dynarec_arm64_arch.h
@@ -2,7 +2,6 @@
 #define __DYNAREC_ARM_ARCH_H__
 
 #include <stddef.h>
-#include <ucontext.h>
 
 #include "x64emu.h"
 #include "box64context.h"
@@ -13,8 +12,13 @@
 size_t get_size_arch(dynarec_arm_t* dyn);
 //populate the array
 void* populate_arch(dynarec_arm_t* dyn, void* p, size_t sz);
+#ifndef _WIN32
+#include <ucontext.h>
 //adjust flags and more
 void adjust_arch(dynablock_t* db, x64emu_t* emu, ucontext_t* p, uintptr_t x64pc);
+#else
+#define adjust_arch(db, emu, p, x64pc)
+#endif
 // get if instruction can be regenerated for unaligned access
 int arch_unaligned(dynablock_t* db, uintptr_t x64pc);
 #endif // __DYNAREC_ARM_ARCH_H__
diff --git a/src/dynarec/arm64/dynarec_arm64_functions.c b/src/dynarec/arm64/dynarec_arm64_functions.c
index 72c4a05e..9a514ad1 100644
--- a/src/dynarec/arm64/dynarec_arm64_functions.c
+++ b/src/dynarec/arm64/dynarec_arm64_functions.c
@@ -25,6 +25,7 @@
 #include "custommem.h"
 #include "bridge.h"
 #include "gdbjit.h"
+#include "perfmap.h"
 
 // Get a FPU scratch reg
 int fpu_get_scratch(dynarec_arm_t* dyn, int ninst)
diff --git a/src/dynarec/dynarec_native.c b/src/dynarec/dynarec_native.c
index df6ab348..197a163e 100644
--- a/src/dynarec/dynarec_native.c
+++ b/src/dynarec/dynarec_native.c
@@ -18,7 +18,6 @@
 #include "x64trace.h"
 #include "dynablock.h"
 #include "dynablock_private.h"
-#include "elfloader.h"
 
 #include "dynarec_native.h"
 #include "dynarec_arch.h"
@@ -933,13 +932,3 @@ void* FillBlock64(dynablock_t* block, uintptr_t addr, int alternate, int is32bit
     //block->done = 1;
     return (void*)block;
 }
-
-void writePerfMap(uintptr_t func_addr, uintptr_t code_addr, size_t code_size, const char* inst_name)
-{
-    char pbuf[128];
-    uint64_t sz = 0;
-    uintptr_t start = 0;
-    const char* symbname = FindNearestSymbolName(FindElfAddress(my_context, func_addr), (void*)func_addr, &start, &sz);
-    snprintf(pbuf, sizeof(pbuf), "0x%lx %ld %s:%s\n", code_addr, code_size, symbname, inst_name);
-    write(BOX64ENV(dynarec_perf_map_fd), pbuf, strlen(pbuf));
-}
diff --git a/src/dynarec/la64/dynarec_la64_functions.c b/src/dynarec/la64/dynarec_la64_functions.c
index c24e4f67..dfd95a12 100644
--- a/src/dynarec/la64/dynarec_la64_functions.c
+++ b/src/dynarec/la64/dynarec_la64_functions.c
@@ -25,6 +25,7 @@
 #include "custommem.h"
 #include "bridge.h"
 #include "gdbjit.h"
+#include "perfmap.h"
 #include "elfloader.h"
 
 #define XMM0 0
diff --git a/src/dynarec/rv64/dynarec_rv64_functions.c b/src/dynarec/rv64/dynarec_rv64_functions.c
index 9e8ed92b..8e289d5d 100644
--- a/src/dynarec/rv64/dynarec_rv64_functions.c
+++ b/src/dynarec/rv64/dynarec_rv64_functions.c
@@ -27,6 +27,7 @@
 #include "bridge.h"
 #include "rv64_lock.h"
 #include "gdbjit.h"
+#include "perfmap.h"
 
 #define XMM0 0
 #define X870 XMM0 + 16