diff options
| author | Leslie Zhai <zhaixiang@loongson.cn> | 2025-01-03 21:33:45 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-03 14:33:45 +0100 |
| commit | 4065e61ec5fce97d1be4f1e0657037061742d25e (patch) | |
| tree | 1c4eb30ee30af9877947a7f44000858e5e36e476 /src/dynarec | |
| parent | da6b799a10d34f00fb51164a6d108fd7c8fd81af (diff) | |
| download | box64-4065e61ec5fce97d1be4f1e0657037061742d25e.tar.gz box64-4065e61ec5fce97d1be4f1e0657037061742d25e.zip | |
[DYNAREC] Appended instruction name to symbol (#2228)
Diffstat (limited to 'src/dynarec')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_functions.c | 2 | ||||
| -rw-r--r-- | src/dynarec/dynarec_native.c | 4 | ||||
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_functions.c | 2 | ||||
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_functions.c | 2 |
4 files changed, 5 insertions, 5 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_functions.c b/src/dynarec/arm64/dynarec_arm64_functions.c index 506a65e0..28673221 100644 --- a/src/dynarec/arm64/dynarec_arm64_functions.c +++ b/src/dynarec/arm64/dynarec_arm64_functions.c @@ -850,7 +850,7 @@ void inst_name_pass3(dynarec_native_t* dyn, int ninst, const char* name, rex_t r dyn->gdbjit_block = GdbJITBlockAddLine(dyn->gdbjit_block, (dyn->native_start + dyn->insts[ninst].address), inst_name); } if (box64_dynarec_perf_map && box64_dynarec_perf_map_fd != -1) { - writePerfMap(dyn->insts[ninst].x64.addr, dyn->native_start + dyn->insts[ninst].address, dyn->insts[ninst].size / 4); + writePerfMap(dyn->insts[ninst].x64.addr, dyn->native_start + dyn->insts[ninst].address, dyn->insts[ninst].size / 4, name); } } diff --git a/src/dynarec/dynarec_native.c b/src/dynarec/dynarec_native.c index 42b557ed..4ffd1048 100644 --- a/src/dynarec/dynarec_native.c +++ b/src/dynarec/dynarec_native.c @@ -853,12 +853,12 @@ void* FillBlock64(dynablock_t* block, uintptr_t addr, int alternate, int is32bit return (void*)block; } -void writePerfMap(uintptr_t func_addr, uintptr_t code_addr, size_t code_size) +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\n", code_addr, code_size, symbname); + snprintf(pbuf, sizeof(pbuf), "0x%lx %ld %s:%s\n", code_addr, code_size, symbname, inst_name); write(box64_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 cf3c43d4..5d8b2c77 100644 --- a/src/dynarec/la64/dynarec_la64_functions.c +++ b/src/dynarec/la64/dynarec_la64_functions.c @@ -399,7 +399,7 @@ void inst_name_pass3(dynarec_native_t* dyn, int ninst, const char* name, rex_t r dyn->gdbjit_block = GdbJITBlockAddLine(dyn->gdbjit_block, (dyn->native_start + dyn->insts[ninst].address), inst_name); } if (box64_dynarec_perf_map && box64_dynarec_perf_map_fd != -1) { - writePerfMap(dyn->insts[ninst].x64.addr, dyn->native_start + dyn->insts[ninst].address, dyn->insts[ninst].size / 4); + writePerfMap(dyn->insts[ninst].x64.addr, dyn->native_start + dyn->insts[ninst].address, dyn->insts[ninst].size / 4, name); } } diff --git a/src/dynarec/rv64/dynarec_rv64_functions.c b/src/dynarec/rv64/dynarec_rv64_functions.c index 08dec929..34dbeb47 100644 --- a/src/dynarec/rv64/dynarec_rv64_functions.c +++ b/src/dynarec/rv64/dynarec_rv64_functions.c @@ -773,7 +773,7 @@ void inst_name_pass3(dynarec_native_t* dyn, int ninst, const char* name, rex_t r dyn->gdbjit_block = GdbJITBlockAddLine(dyn->gdbjit_block, (dyn->native_start + dyn->insts[ninst].address), inst_name); } if (box64_dynarec_perf_map && box64_dynarec_perf_map_fd != -1) { - writePerfMap(dyn->insts[ninst].x64.addr, dyn->native_start + dyn->insts[ninst].address, dyn->insts[ninst].size / 4); + writePerfMap(dyn->insts[ninst].x64.addr, dyn->native_start + dyn->insts[ninst].address, dyn->insts[ninst].size / 4, name); } } |