about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-06-24 13:43:36 +0200
committerptitSeb <sebastien.chev@gmail.com>2023-06-24 13:43:36 +0200
commite8cd8ca8c029fa38713960072a65f11dbcb5cefb (patch)
tree64e3ef1490dcbc0c0b2360a6fa165e57f21f6c40 /src
parent179015a05004740594b509a8b552f914ddb6d64e (diff)
downloadbox64-e8cd8ca8c029fa38713960072a65f11dbcb5cefb.tar.gz
box64-e8cd8ca8c029fa38713960072a65f11dbcb5cefb.zip
[ARM64_DYNAREC] Added 67 66 89 opcode
Diffstat (limited to 'src')
-rwxr-xr-xsrc/dynarec/arm64/dynarec_arm64_67.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_67.c b/src/dynarec/arm64/dynarec_arm64_67.c
index 58a959f1..be397617 100755
--- a/src/dynarec/arm64/dynarec_arm64_67.c
+++ b/src/dynarec/arm64/dynarec_arm64_67.c
@@ -628,6 +628,31 @@ uintptr_t dynarec64_67(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
             }

             break;

 

+        case 0x66:

+            opcode=F8;

+            switch(opcode) {

+

+                case 0x89:

+                    INST_NAME("MOV Ew, Gw");

+                    nextop = F8;

+                    GETGD;  // don't need GETGW here

+                    if(MODREG) {

+                        ed = xRAX+(nextop&7)+(rex.b<<3);

+                        if(ed!=gd) {

+                            BFIx(ed, gd, 0, 16);

+                        }

+                    } else {

+                        addr = geted32(dyn, addr, ninst, nextop, &ed, x2, &fixedaddress, &unscaled, 0xfff<<1, 1, rex, &lock, 0, 0);

+                        STH(gd, ed, fixedaddress);

+                        SMWRITELOCK(lock);

+                    }

+                    break;

+

+                default:

+                    DEFAULT;

+            }

+            break;

+

         case 0x81:

         case 0x83:

             nextop = F8;