diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-06-08 15:18:34 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-06-08 15:18:34 +0200 |
| commit | 987d0db806908fe1af99197ae11fc4f399a8030c (patch) | |
| tree | 071b683824583c96fb4115f59779af4d0f6facee /src | |
| parent | 97530e4095af2786fac3258952c71ab3b98ce4ad (diff) | |
| download | box64-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.c | 5 |
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; |