about summary refs log tree commit diff stats
path: root/src/dynarec
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-06-11 13:22:05 +0200
committerptitSeb <sebastien.chev@gmail.com>2022-06-11 13:22:05 +0200
commitf012e02b3541c8c2c5389b8fc97f618cded58572 (patch)
tree440ddb6c6ce92378abfa05f63c29ff161cf92500 /src/dynarec
parent1ffbb7bf6bc566f8d17548f766454c6b36786114 (diff)
downloadbox64-f012e02b3541c8c2c5389b8fc97f618cded58572.tar.gz
box64-f012e02b3541c8c2c5389b8fc97f618cded58572.zip
Added 67 C7 opcode ([DYNAREC] too) (for #323)
Diffstat (limited to 'src/dynarec')
-rwxr-xr-xsrc/dynarec/arm64/dynarec_arm64_67.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_67.c b/src/dynarec/arm64/dynarec_arm64_67.c
index 34138e82..0b513909 100755
--- a/src/dynarec/arm64/dynarec_arm64_67.c
+++ b/src/dynarec/arm64/dynarec_arm64_67.c
@@ -223,7 +223,23 @@ uintptr_t dynarec64_67(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                     break;

             }

             break;

-            

+

+        case 0xC7:

+            INST_NAME("MOV Ed, Id");

+            nextop=F8;

+            if(MODREG) {   // reg <= i32

+                i64 = F32S;

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

+                MOV64xw(ed, i64);

+            } else {                    // mem <= i32

+                addr = geted32(dyn, addr, ninst, nextop, &ed, x2, &fixedaddress, 0xfff<<(2+rex.w), (1<<(2+rex.w))-1, rex, 0, 4);

+                i64 = F32S;

+                MOV64xw(x3, i64);

+                STRxw_U12(x3, ed, fixedaddress);

+            }

+            break;

+

+

         #define GO(NO, YES)                                             \

             BARRIER(BARRIER_MAYBE);                                     \

             JUMP(addr+i8, 1);                                           \