about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-11-26 12:37:08 +0100
committerptitSeb <sebastien.chev@gmail.com>2022-11-26 12:37:08 +0100
commita43186d137bb06f0bbdc4da4560dcee5023974eb (patch)
tree681c6595e51fd95efb8b44ad798d2781e3230cf8 /src
parent554f4889bc3937d29893bb873429e01fd10953a1 (diff)
downloadbox64-a43186d137bb06f0bbdc4da4560dcee5023974eb.tar.gz
box64-a43186d137bb06f0bbdc4da4560dcee5023974eb.zip
[DYNAREC] Fixed 66 64 0F 2E/2F opcodes
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_6664.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_6664.c b/src/dynarec/arm64/dynarec_arm64_6664.c
index 1485c86b..56697b22 100644
--- a/src/dynarec/arm64/dynarec_arm64_6664.c
+++ b/src/dynarec/arm64/dynarec_arm64_6664.c
@@ -53,7 +53,6 @@ uintptr_t dynarec64_6664(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
         case 0x0F:
             opcode = F8;
             switch(opcode) {
-                /*  //Something is wrong, and this gives a SIGILL
                 case 0x2E:
                     // no special check...
                 case 0x2F:
@@ -61,8 +60,9 @@ uintptr_t dynarec64_6664(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
                     SETFLAGS(X_ALL, SF_SET);
                     nextop = F8;
                     GETG;
+                    v0 = sse_get_reg(dyn, ninst, x1, gd, 0);
                     if(MODREG) {
-                        v0 = sse_get_reg(dyn, ninst, x1, (nextop&7) + (rex.b<<3), 0);
+                        v1 = sse_get_reg(dyn, ninst, x1, (nextop&7) + (rex.b<<3), 0);
                     } else {
                         grab_segdata(dyn, addr, ninst, x4, _FS);
                         addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, 0, 0, rex, NULL, 0, 0);
@@ -72,7 +72,6 @@ uintptr_t dynarec64_6664(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
                     FCMPD(v0, v1);
                     FCOMI(x1, x2);
                     break;
-                */
             case 0xD6:
                 INST_NAME("MOVQ Ex, Gx");
                 nextop = F8;