about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/dynarec/dynarec_arm64_f20f.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/dynarec/dynarec_arm64_f20f.c b/src/dynarec/dynarec_arm64_f20f.c
index 8f458e3d..ea149dc2 100755
--- a/src/dynarec/dynarec_arm64_f20f.c
+++ b/src/dynarec/dynarec_arm64_f20f.c
@@ -40,6 +40,10 @@
 #define GETGX_empty(a)  gd = ((nextop&0x38)>>3)+(rex.r<<3); \

                         a = sse_get_reg_empty(dyn, ninst, x1, gd)

 

+#define GETGM(a)                        \

+    gd = ((nextop&0x38)>>3);            \

+    a = mmx_get_reg(dyn, ninst, x1, gd)

+

 uintptr_t dynarec64_F20F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int ninst, rex_t rex, int* ok, int* need_epilog)

 {

     (void)ip; (void)need_epilog;

@@ -321,6 +325,14 @@ uintptr_t dynarec64_F20F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
             VFMLAQS(v0, v1, q0);

             break;

 

+        case 0xD6:

+            INST_NAME("MOVDQ2Q Gm, Ex");

+            nextop = F8;

+            GETGM(v0);

+            GETEX(v1, 0);

+            VMOV(v0, v1);

+            break;

+

         case 0xE6:

             INST_NAME("CVTPD2DQ Gx, Ex");

             nextop = F8;