diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/arm64/arm64_printer.c | 1 | ||||
| -rwxr-xr-x | src/dynarec/arm64/dynarec_arm64_00.c | 7 | ||||
| -rw-r--r-- | src/dynarec/dynarec_next.h | 6 |
3 files changed, 10 insertions, 4 deletions
diff --git a/src/dynarec/arm64/arm64_printer.c b/src/dynarec/arm64/arm64_printer.c index 5bace025..ead54a61 100755 --- a/src/dynarec/arm64/arm64_printer.c +++ b/src/dynarec/arm64/arm64_printer.c @@ -1523,6 +1523,7 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr) // DMB ISH if(isMask(opcode, "11010101000000110011nnnn10111111", &a)) { snprintf(buff, sizeof(buff), "DMB %s", (Rn==0b1011)?"ISH":"???"); + return buff; } diff --git a/src/dynarec/arm64/dynarec_arm64_00.c b/src/dynarec/arm64/dynarec_arm64_00.c index 5375e78a..3269ac1b 100755 --- a/src/dynarec/arm64/dynarec_arm64_00.c +++ b/src/dynarec/arm64/dynarec_arm64_00.c @@ -585,7 +585,12 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin dyn->doublepush = 1; } } else { - PUSH1z(gd); + if (gd == xRSP) { + MOVz_REG(x1, xRSP); + PUSH1z(x1); + } else { + PUSH1z(gd); + } } } break; diff --git a/src/dynarec/dynarec_next.h b/src/dynarec/dynarec_next.h index 0ad6c18d..dc37aadb 100644 --- a/src/dynarec/dynarec_next.h +++ b/src/dynarec/dynarec_next.h @@ -4,21 +4,21 @@ #ifdef ARM64 void arm64_next(void) EXPORTDYN; void arm64_prolog(x64emu_t* emu, void* addr) EXPORTDYN; -void arm64_epilog() EXPORTDYN; +void arm64_epilog(void) EXPORTDYN; #define native_next arm64_next #define native_prolog arm64_prolog #define native_epilog arm64_epilog #elif defined(LA464) void la464_next(void) EXPORTDYN; void la464_prolog(x64emu_t* emu, void* addr) EXPORTDYN; -void la464_epilog() EXPORTDYN; +void la464_epilog(void) EXPORTDYN; #define native_next la464_next #define native_prolog la464_prolog #define native_epilog la464_epilog #elif defined(RV64) void rv64_next(void) EXPORTDYN; void rv64_prolog(x64emu_t* emu, void* addr) EXPORTDYN; -void rv64_epilog() EXPORTDYN; +void rv64_epilog(void) EXPORTDYN; #define native_next rv64_next #define native_prolog rv64_prolog #define native_epilog rv64_epilog |