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/arm64/dynarec_arm64_00.c4
-rw-r--r--src/dynarec/arm64/dynarec_arm64_emit_shift.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_00.c b/src/dynarec/arm64/dynarec_arm64_00.c
index 837cc8da..99686b1c 100644
--- a/src/dynarec/arm64/dynarec_arm64_00.c
+++ b/src/dynarec/arm64/dynarec_arm64_00.c
@@ -1798,7 +1798,7 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                     INST_NAME("SAR Eb, Ib");
                     if(geted_ib(dyn, addr, ninst, nextop)&0x1f) {
                         SETFLAGS(X_ALL, SF_SET_PENDING);
-                        GETEB(x1, 1);
+                        GETSEB(x1, 1);
                         u8 = (F8)&0x1f;
                         emit_sar8c(dyn, ninst, ed, u8, x3, x4);
                         EBBACK;
@@ -2129,7 +2129,7 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                 case 7:
                     INST_NAME("SAR Eb, 1");
                     SETFLAGS(X_ALL, SF_SET_PENDING);    // some flags are left undefined
-                    GETEB(x1, 0);
+                    GETSEB(x1, 0);
                     emit_sar8c(dyn, ninst, ed, 1, x3, x4);
                     EBBACK;
                     break;
diff --git a/src/dynarec/arm64/dynarec_arm64_emit_shift.c b/src/dynarec/arm64/dynarec_arm64_emit_shift.c
index b625604d..e9a1e88c 100644
--- a/src/dynarec/arm64/dynarec_arm64_emit_shift.c
+++ b/src/dynarec/arm64/dynarec_arm64_emit_shift.c
@@ -454,7 +454,7 @@ void emit_sar8c(dynarec_arm_t* dyn, int ninst, int s1, uint32_t c, int s3, int s
         SET_DFNONE(s4);
     }
     IFX(X_CF) {
-        ASRx(s3, s1, c-1);
+        ASRw(s3, s1, c-1);
         BFIw(xFlags, s3, 0, 1);
     }
     ASRw(s1, s1, c);