diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-01-04 11:03:46 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-01-04 11:03:46 +0100 |
| commit | ab99ae6951ff84fdf33d40480f8a61b36dd46020 (patch) | |
| tree | c35c209cbd3bf8d97260fc5bc01413ea23e78375 | |
| parent | a609452cfda881aa53e591728d7b63adab20b777 (diff) | |
| download | box64-ab99ae6951ff84fdf33d40480f8a61b36dd46020.tar.gz box64-ab99ae6951ff84fdf33d40480f8a61b36dd46020.zip | |
[ARM64_DYNAREC] Fixed CALLRET optim when unsync occur, should help stability
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_helper.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_helper.c b/src/dynarec/arm64/dynarec_arm64_helper.c index c9fd9b3f..af0c595e 100644 --- a/src/dynarec/arm64/dynarec_arm64_helper.c +++ b/src/dynarec/arm64/dynarec_arm64_helper.c @@ -624,7 +624,7 @@ void ret_to_epilog(dynarec_arm_t* dyn, int ninst, rex_t rex) CBNZx(x6, 2*4); BLR(x2); // not the correct return address, regular jump, but purge the stack first, it's unsync now... - SUBx_U12(xSP, xSavedSP, 0); + SUBx_U12(xSP, xSavedSP, 16); } uintptr_t tbl = getJumpTable64(); NOTEST(x2); @@ -667,7 +667,7 @@ void retn_to_epilog(dynarec_arm_t* dyn, int ninst, rex_t rex, int n) CBNZx(x6, 2*4); BLR(x2); // not the correct return address, regular jump - SUBx_U12(xSP, xSavedSP, 0); + SUBx_U12(xSP, xSavedSP, 16); } uintptr_t tbl = getJumpTable64(); NOTEST(x2); |