diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-03-16 16:21:38 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-03-16 16:21:38 +0100 |
| commit | ab289f8392233dd832fdea353e8264a58853472f (patch) | |
| tree | 6acb10412b3ee9b9342994dc27d689671b9c345f /src | |
| parent | fa4584555d8d6bdc1ae7e16eff5bb40ffc07d124 (diff) | |
| download | box64-ab289f8392233dd832fdea353e8264a58853472f.tar.gz box64-ab289f8392233dd832fdea353e8264a58853472f.zip | |
[ARM64_DYNAREC] Some small cleanup
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/arm64/dynarec_arm64_00.c | 3 | ||||
| -rwxr-xr-x | src/dynarec/arm64/dynarec_arm64_pass2.h | 2 | ||||
| -rwxr-xr-x | src/dynarec/arm64/dynarec_arm64_pass3.h | 12 |
3 files changed, 11 insertions, 6 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_00.c b/src/dynarec/arm64/dynarec_arm64_00.c index e56f3572..583d734a 100755 --- a/src/dynarec/arm64/dynarec_arm64_00.c +++ b/src/dynarec/arm64/dynarec_arm64_00.c @@ -2281,6 +2281,9 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin LDRx_U12(x4, x4, 0); } STPx_S7_preindex(x4, x2, xSP, -16); + } else { + *ok = 0; + *need_epilog = 0; } if(addr+i32==0) { // self modifying code maybe? so use indirect address fetching TABLE64(x4, addr-4); diff --git a/src/dynarec/arm64/dynarec_arm64_pass2.h b/src/dynarec/arm64/dynarec_arm64_pass2.h index 0b063d7d..57a37572 100755 --- a/src/dynarec/arm64/dynarec_arm64_pass2.h +++ b/src/dynarec/arm64/dynarec_arm64_pass2.h @@ -6,7 +6,7 @@ } #define MESSAGE(A, ...) -#define EMIT(A) dyn->insts[ninst].size+=4; dyn->native_size+=4 +#define EMIT(A) do{dyn->insts[ninst].size+=4; dyn->native_size+=4;}while(0) #define NEW_INST \ if(ninst) { \ dyn->insts[ninst].address = (dyn->insts[ninst-1].address+dyn->insts[ninst-1].size); \ diff --git a/src/dynarec/arm64/dynarec_arm64_pass3.h b/src/dynarec/arm64/dynarec_arm64_pass3.h index 72f580f1..0f285a60 100755 --- a/src/dynarec/arm64/dynarec_arm64_pass3.h +++ b/src/dynarec/arm64/dynarec_arm64_pass3.h @@ -3,11 +3,13 @@ if(ninst) \ addInst(dyn->instsize, &dyn->insts_size, dyn->insts[ninst].x64.size, dyn->insts[ninst].size/4); \ addInst(dyn->instsize, &dyn->insts_size, 0, 0); -#define EMIT(A) \ - if(box64_dynarec_dump) {dynarec_log(LOG_NONE, "\t%08x\t%s\n", (uint32_t)(A), arm64_print(A, (uintptr_t)dyn->block));} \ - *(uint32_t*)(dyn->block) = (uint32_t)(A); \ - dyn->block += 4; dyn->native_size += 4; \ - dyn->insts[ninst].size2 += 4 +#define EMIT(A) \ + do{ \ + if(box64_dynarec_dump) {dynarec_log(LOG_NONE, "\t%08x\t%s\n", (uint32_t)(A), arm64_print(A, (uintptr_t)dyn->block));} \ + *(uint32_t*)(dyn->block) = (uint32_t)(A); \ + dyn->block += 4; dyn->native_size += 4; \ + dyn->insts[ninst].size2 += 4; \ + }while(0) #define MESSAGE(A, ...) if(box64_dynarec_dump) dynarec_log(LOG_NONE, __VA_ARGS__) #define NEW_INST \ |