diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/dynarec_arm64_f20f.c | 12 |
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; |