about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/rv64/rv64_epilog.S19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/dynarec/rv64/rv64_epilog.S b/src/dynarec/rv64/rv64_epilog.S
index 610a2483..af04279b 100644
--- a/src/dynarec/rv64/rv64_epilog.S
+++ b/src/dynarec/rv64/rv64_epilog.S
@@ -49,13 +49,20 @@ rv64_epilog:
 
 .global rv64_epilog_fast
 rv64_epilog_fast:
-    //restore all used register
     ld      ra, (sp)  // save ra
     ld      x8, 8(sp) // save fp
-    ld      x16, 16(sp)
-    ld      x17, 24(sp)
-    fld     f8, 32(sp)
-    fld     f9, 40(sp)
-    addi    sp,  sp, (8 * (2+4))
+    ld      x18, 16(sp)
+    ld      x19, 24(sp)
+    ld      x20, 32(sp)
+    ld      x21, 40(sp)
+    ld      x22, 48(sp)
+    ld      x23, 56(sp)
+    ld      x24, 64(sp)
+    ld      x25, 72(sp)
+    ld      x26, 80(sp)
+    ld      x27, 88(sp)
+    fsd     f8, 96(sp)
+    fsd     f9, 104(sp)
+    addi    sp,  sp, (8 * 14)
     //end, return...
     ret