diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_00.c | 4 | ||||
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_emit_shift.c | 2 |
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); |