about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-03-16 20:10:16 +0000
committerptitSeb <sebastien.chev@gmail.com>2023-03-16 20:10:16 +0000
commitb63dcabca4195fece96f469383c6c3baefae2b9b (patch)
tree29db10b3f8748e817d1a11660a58bcb1c5153a84 /src
parentcc9191382f73841b8577cb4811c9ed85466ce8b0 (diff)
downloadbox64-b63dcabca4195fece96f469383c6c3baefae2b9b.tar.gz
box64-b63dcabca4195fece96f469383c6c3baefae2b9b.zip
[RV64_DYNAREC] Added some C9 LEAVE opcode (after test01, now test02 fully runs on Dynarec)
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/rv64/dynarec_rv64_00.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_00.c b/src/dynarec/rv64/dynarec_rv64_00.c
index 293f054f..90025fb4 100644
--- a/src/dynarec/rv64/dynarec_rv64_00.c
+++ b/src/dynarec/rv64/dynarec_rv64_00.c
@@ -463,6 +463,13 @@ uintptr_t dynarec64_00(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni
                 SMWRITELOCK(lock);
             }
             break;
+
+        case 0xC9:
+            INST_NAME("LEAVE");
+            MV(xRSP, xRBP);
+            POP1(xRBP);
+            break;
+
         case 0xCC:
             SETFLAGS(X_ALL, SF_SET);    // Hack, set all flags (to an unknown state...)
             if(PK(0)=='S' && PK(1)=='C') {