about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-06-08 15:18:34 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-06-08 15:18:34 +0200
commit987d0db806908fe1af99197ae11fc4f399a8030c (patch)
tree071b683824583c96fb4115f59779af4d0f6facee /src
parent97530e4095af2786fac3258952c71ab3b98ce4ad (diff)
downloadbox64-987d0db806908fe1af99197ae11fc4f399a8030c.tar.gz
box64-987d0db806908fe1af99197ae11fc4f399a8030c.zip
[INTERPRETER] Fixed AVX.66.0F 50 opcode not handling vex.l
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64runavx660f.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/emu/x64runavx660f.c b/src/emu/x64runavx660f.c
index ba09a4dd..1844e1f3 100644
--- a/src/emu/x64runavx660f.c
+++ b/src/emu/x64runavx660f.c
@@ -209,6 +209,11 @@ uintptr_t RunAVX_660F(x64emu_t *emu, vex_t vex, uintptr_t addr, int *step)
             GD->q[0] = 0;
             for(int i=0; i<2; ++i)
                 GD->dword[0] |= ((EX->q[i]>>63)&1)<<i;
+            if(vex.l) {
+                GETEY;
+                for(int i=0; i<2; ++i)
+                    GD->dword[0] |= ((EY->q[i]>>63)&1)<<(i+2);
+            }
             break;
         case 0x51:                      /* VSQRTPD Gx, Ex */
             nextop = F8;