about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-09-26 11:29:45 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-09-26 11:29:45 +0200
commitf2d1a8bc709f809f1280a606c01a2e4ed88c82cc (patch)
treef81a97fcb5015067f3eb6f7d7e56636d9a066902
parentb6bc7922b335fafb801ddf5238fd0c3e42084c52 (diff)
downloadbox64-f2d1a8bc709f809f1280a606c01a2e4ed88c82cc.tar.gz
box64-f2d1a8bc709f809f1280a606c01a2e4ed88c82cc.zip
[DYNAREC] Somme fix for 66 83 opcodes
-rwxr-xr-xsrc/dynarec/dynarec_arm64_66.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/dynarec/dynarec_arm64_66.c b/src/dynarec/dynarec_arm64_66.c
index 0be8cfc9..1715d845 100755
--- a/src/dynarec/dynarec_arm64_66.c
+++ b/src/dynarec/dynarec_arm64_66.c
@@ -172,9 +172,9 @@ uintptr_t dynarec64_66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
             INST_NAME("SBB AX, Iw");

             READFLAGS(X_CF);

             SETFLAGS(X_ALL, SF_SET_PENDING);

-            i16 = F16;

+            i16 = F16S;

             UXTHw(x1, xRAX);

-            MOV32w(x2, i16);

+            MOVZw(x2, i16);

             emit_sbb16(dyn, ninst, x1, x2, x3, x4);

             BFIx(xRAX, x1, 0, 16);

             break;

@@ -341,7 +341,7 @@ uintptr_t dynarec64_66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                     SETFLAGS(X_ALL, SF_SET_PENDING);

                     GETEW(x1, (opcode==0x81)?2:1);

                     if(opcode==0x81) i16 = F16S; else i16 = F8S;

-                    MOV32w(x5, i16);

+                    MOVZw(x5, i16);

                     emit_add16(dyn, ninst, ed, x5, x2, x4);

                     EWBACK;

                     break;

@@ -350,7 +350,7 @@ uintptr_t dynarec64_66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                     SETFLAGS(X_ALL, SF_SET_PENDING);

                     GETEW(x1, (opcode==0x81)?2:1);

                     if(opcode==0x81) i16 = F16S; else i16 = F8S;

-                    MOV32w(x5, i16);

+                    MOVZw(x5, i16);

                     emit_or16(dyn, ninst, x1, x5, x2, x4);

                     EWBACK;

                     break;

@@ -360,7 +360,7 @@ uintptr_t dynarec64_66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                     SETFLAGS(X_ALL, SF_SET_PENDING);

                     GETEW(x1, (opcode==0x81)?2:1);

                     if(opcode==0x81) i16 = F16S; else i16 = F8S;

-                    MOV32w(x5, i16);

+                    MOVZw(x5, i16);

                     emit_adc16(dyn, ninst, x1, x5, x2, x4);

                     EWBACK;

                     break;

@@ -370,7 +370,7 @@ uintptr_t dynarec64_66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                     SETFLAGS(X_ALL, SF_SET_PENDING);

                     GETEW(x1, (opcode==0x81)?2:1);

                     if(opcode==0x81) i16 = F16S; else i16 = F8S;

-                    MOV32w(x5, i16);

+                    MOVZw(x5, i16);

                     emit_sbb16(dyn, ninst, x1, x5, x2, x4);

                     EWBACK;

                     break;

@@ -379,7 +379,7 @@ uintptr_t dynarec64_66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                     SETFLAGS(X_ALL, SF_SET_PENDING);

                     GETEW(x1, (opcode==0x81)?2:1);

                     if(opcode==0x81) i16 = F16S; else i16 = F8S;

-                    MOV32w(x5, i16);

+                    MOVZw(x5, i16);

                     emit_and16(dyn, ninst, x1, x5, x2, x4);

                     EWBACK;

                     break;

@@ -388,7 +388,7 @@ uintptr_t dynarec64_66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                     SETFLAGS(X_ALL, SF_SET_PENDING);

                     GETEW(x1, (opcode==0x81)?2:1);

                     if(opcode==0x81) i16 = F16S; else i16 = F8S;

-                    MOV32w(x5, i16);

+                    MOVZw(x5, i16);

                     emit_sub16(dyn, ninst, x1, x5, x2, x4);

                     EWBACK;

                     break;

@@ -397,7 +397,7 @@ uintptr_t dynarec64_66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                     SETFLAGS(X_ALL, SF_SET_PENDING);

                     GETEW(x1, (opcode==0x81)?2:1);

                     if(opcode==0x81) i16 = F16S; else i16 = F8S;

-                    MOV32w(x5, i16);

+                    MOVZw(x5, i16);

                     emit_xor16(dyn, ninst, x1, x5, x2, x4);

                     EWBACK;

                     break;

@@ -407,7 +407,7 @@ uintptr_t dynarec64_66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                     GETEW(x1, (opcode==0x81)?2:1);

                     if(opcode==0x81) i16 = F16S; else i16 = F8S;

                     if(i16) {

-                        MOV32w(x2, i16);

+                        MOVZw(x2, i16);

                         emit_cmp16(dyn, ninst, x1, x2, x3, x4, x5);

                     } else

                         emit_cmp16_0(dyn, ninst, x1, x3, x4);