about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-08-10 09:50:11 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-08-10 09:50:11 +0200
commit92531929f379543a0705ff250811c778e759ebf1 (patch)
tree79a0e240917584a00d06a43a2e4877648f4ba4c8 /src
parent0256a6332c742c53feef4332f746a53ef80feaaa (diff)
downloadbox64-92531929f379543a0705ff250811c778e759ebf1.tar.gz
box64-92531929f379543a0705ff250811c778e759ebf1.zip
Added 64bits 67 F3 0F 7F opcode ([ARM64_DYNAREC] too)
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_67.c13
-rw-r--r--src/emu/x64run670f.c6
2 files changed, 19 insertions, 0 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_67.c b/src/dynarec/arm64/dynarec_arm64_67.c
index ed701795..a5ab323e 100644
--- a/src/dynarec/arm64/dynarec_arm64_67.c
+++ b/src/dynarec/arm64/dynarec_arm64_67.c
@@ -271,6 +271,19 @@ uintptr_t dynarec64_67(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                                 SMWRITE();

                             }

                             break;

+                        case 2:

+                            INST_NAME("MOVDQU Ex, Gx");

+                            nextop = F8;

+                            GETGX(v0, 0);

+                            if(MODREG) {

+                                v1 = sse_get_reg_empty(dyn, ninst, x1, nextop&7);

+                                VMOVQ(v1, v0);

+                            } else {

+                                addr = geted32(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, &unscaled, 0xfff<<4, 15, rex, NULL, 0, 0);

+                                VST128(v0, ed, fixedaddress);

+                                SMWRITE();

+                            }

+                            break;

                         default:

                             DEFAULT;

                     }

diff --git a/src/emu/x64run670f.c b/src/emu/x64run670f.c
index 0b3f1493..4df0d823 100644
--- a/src/emu/x64run670f.c
+++ b/src/emu/x64run670f.c
@@ -125,6 +125,12 @@ uintptr_t Run670F(x64emu_t *emu, rex_t rex, int rep, uintptr_t addr)
                     GETGM;
                     EM->q = GM->q;
                     break;
+                case 2: /* MOVDQU Ex, Gx */
+                    nextop = F8;
+                    GETEX32(0);
+                    GETGX;
+                    memcpy(EX, GX, 16);
+                    break;
                 default:
                     return 0;
             }