diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-04-10 18:14:50 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-10 12:14:50 +0200 |
| commit | f9f082ee53ae0ab8e12b0c1bf1de339af8b92282 (patch) | |
| tree | b040c5f88bf691cc67f7fc1bd9c8b4914ea4758b /src/dynarec | |
| parent | 66bb1aeb89d7ee64cad83ab12208b221ce5e9731 (diff) | |
| download | box64-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.c | 2 | ||||
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_arch.h | 6 | ||||
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_functions.c | 1 | ||||
| -rw-r--r-- | src/dynarec/dynarec_native.c | 11 | ||||
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_functions.c | 1 | ||||
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_functions.c | 1 |
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 |