598,607c598,616
< }
< 0x0E: decode LEGACY_DECODEVAL {
< // no prefix
< 0x0: decode OPCODE_OP_BOTTOM3 {
< 0x0: pshufw_Pq_Qq_Ib();
< //0x1: group13_pshimw();
< 0x1: decode MODRM_REG {
< 0x2: decode LEGACY_OP {
< 0x0: psrlw_PRq_Ib();
< 0x1: psrlw_VRo_Ib();
---
> 0x0E: decode LEGACY_DECODEVAL {
> // no prefix
> 0x0: decode OPCODE_OP_BOTTOM3 {
> 0x0: WarnUnimpl::pshufw_Pq_Qq_Ib();
> //0x1: group13_pshimw();
> 0x1: decode MODRM_REG {
> 0x2: decode LEGACY_OP {
> 0x0: PSRLW(PRq,Ib);
> 0x1: PSRLW(VRo,Ib);
> }
> 0x4: decode LEGACY_OP {
> 0x0: PSRAW(PRq,Ib);
> 0x1: PSRAW(VRo,Ib);
> }
> 0x6: decode LEGACY_OP {
> 0x0: PSLLW(PRq,Ib);
> 0x1: PSLLW(VRo,Ib);
> }
> default: UD2();
609,611c618,632
< 0x4: decode LEGACY_OP {
< 0x0: psraw_PRq_Ib();
< 0x1: psraw_VRo_Ib();
---
> //0x2: group14_pshimd();
> 0x2: decode MODRM_REG {
> 0x2: decode LEGACY_OP {
> 0x0: PSRLD(PRq,Ib);
> 0x1: PSRLD(VRo,Ib);
> }
> 0x4: decode LEGACY_OP {
> 0x0: PSRAD(PRq,Ib);
> 0x1: PSRAD(VRo,Ib);
> }
> 0x6: decode LEGACY_OP {
> 0x0: PSLLD(PRq,Ib);
> 0x1: PSLLD(VRo,Ib);
> }
> default: UD2();
613,615c634,652
< 0x6: decode LEGACY_OP {
< 0x0: psllw_PRq_Ib();
< 0x1: psllw_VRo_Ib();
---
> //0x3: group15_pshimq();
> 0x3: decode MODRM_REG {
> 0x2: decode LEGACY_OP {
> 0x0: PSRLQ(PRq,Ib);
> 0x1: PSRLQ(VRo,Ib);
> }
> 0x3: decode LEGACY_OP {
> 0x0: UD2();
> 0x1: WarnUnimpl::psrldq_VRo_Ib();
> }
> 0x6: decode LEGACY_OP {
> 0x0: PSLLQ(PRq,Ib);
> 0x1: PSLLQ(VRo,Ib);
> }
> 0x7: decode LEGACY_OP {
> 0x0: UD2();
> 0x1: WarnUnimpl::pslldq_VRo_Ib();
> }
> default: Inst::UD2();
617c654,657
< default: Inst::UD2();
---
> 0x4: Inst::PCMPEQB(Pq,Qq);
> 0x5: Inst::PCMPEQW(Pq,Qq);
> 0x6: Inst::PCMPEQD(Pq,Qq);
> 0x7: WarnUnimpl::emms();
619,633c659,662
< //0x2: group14_pshimd();
< 0x2: decode MODRM_REG {
< 0x2: decode LEGACY_OP {
< 0x0: psrld_PRq_Ib();
< 0x1: psrld_VRo_Ib();
< }
< 0x4: decode LEGACY_OP {
< 0x0: psrad_PRq_Ib();
< 0x1: psrad_VRo_Ib();
< }
< 0x6: decode LEGACY_OP {
< 0x0: pslld_PRq_Ib();
< 0x1: pslld_VRo_Ib();
< }
< default: Inst::UD2();
---
> // repe (0xF3)
> 0x4: decode OPCODE_OP_BOTTOM3 {
> 0x0: WarnUnimpl::pshufhw_Vo_Wo_Ib();
> default: UD2();
635,639c664,681
< //0x3: group15_pshimq();
< 0x3: decode MODRM_REG {
< 0x2: decode LEGACY_OP {
< 0x0: psrlq_PRq_Ib();
< 0x1: psrlq_VRo_Ib();
---
> // operand size (0x66)
> 0x1: decode OPCODE_OP_BOTTOM3 {
> 0x0: WarnUnimpl::pshufd_Vo_Wo_Ib();
> //0x1: group13_pshimw();
> 0x1: decode MODRM_REG {
> 0x2: decode LEGACY_OP {
> 0x0: PSRLW(PRq,Ib);
> 0x1: PSRLW(VRo,Ib);
> }
> 0x4: decode LEGACY_OP {
> 0x0: PSRAW(PRq,Ib);
> 0x1: PSRAW(VRo,Ib);
> }
> 0x6: decode LEGACY_OP {
> 0x0: PSLLW(PRq,Ib);
> 0x1: PSLLW(VRo,Ib);
> }
> default: Inst::UD2();
641,643c683,697
< 0x3: decode LEGACY_OP {
< 0x0: Inst::UD2();
< 0x1: psrldq_VRo_Ib();
---
> //0x2: group14_pshimd();
> 0x2: decode MODRM_REG {
> 0x2: decode LEGACY_OP {
> 0x0: PSRLD(PRq,Ib);
> 0x1: PSRLD(VRo,Ib);
> }
> 0x4: decode LEGACY_OP {
> 0x0: PSRAD(PRq,Ib);
> 0x1: PSRAD(VRo,Ib);
> }
> 0x6: decode LEGACY_OP {
> 0x0: PSLLD(PRq,Ib);
> 0x1: PSLLD(VRo,Ib);
> }
> default: UD2();
645,647c699,717
< 0x6: decode LEGACY_OP {
< 0x0: psllq_PRq_Ib();
< 0x1: psllq_VRo_Ib();
---
> //0x3: group15_pshimq();
> 0x3: decode MODRM_REG {
> 0x2: decode LEGACY_OP {
> 0x0: PSRLQ(PRq,Ib);
> 0x1: PSRLQ(VRo,Ib);
> }
> 0x3: decode LEGACY_OP {
> 0x0: UD2();
> 0x1: WarnUnimpl::psrldq_VRo_Ib();
> }
> 0x6: decode LEGACY_OP {
> 0x0: PSLLQ(PRq,Ib);
> 0x1: PSLLQ(VRo,Ib);
> }
> 0x7: decode LEGACY_OP {
> 0x0: UD2();
> 0x1: WarnUnimpl::pslldq_VRo_Ib();
> }
> default: UD2();
649,653c719,722
< 0x7: decode LEGACY_OP {
< 0x0: Inst::UD2();
< 0x1: pslldq_VRo_Ib();
< }
< default: Inst::UD2();
---
> 0x4: PCMPEQB(Vo,Wo);
> 0x5: PCMPEQW(Vo,Wo);
> 0x6: PCMPEQD(Vo,Wo);
> default: UD2();
655,658c724,729
< 0x4: Inst::PCMPEQB(Pq,Qq);
< 0x5: Inst::PCMPEQW(Pq,Qq);
< 0x6: Inst::PCMPEQD(Pq,Qq);
< 0x7: emms();
---
> // repne (0xF2)
> 0x8: decode OPCODE_OP_BOTTOM3 {
> 0x0: WarnUnimpl::pshuflw_Vo_Wo_Ib();
> default: UD2();
> }
> default: UD2();
660,682c731,738
< // repe (0xF3)
< 0x4: decode OPCODE_OP_BOTTOM3 {
< 0x0: pshufhw_Vo_Wo_Ib();
< default: Inst::UD2();
< }
< // operand size (0x66)
< 0x1: decode OPCODE_OP_BOTTOM3 {
< 0x0: pshufd_Vo_Wo_Ib();
< //0x1: group13_pshimw();
< 0x1: decode MODRM_REG {
< 0x2: decode LEGACY_OP {
< 0x0: psrlw_PRq_Ib();
< 0x1: psrlw_VRo_Ib();
< }
< 0x4: decode LEGACY_OP {
< 0x0: psraw_PRq_Ib();
< 0x1: psraw_VRo_Ib();
< }
< 0x6: decode LEGACY_OP {
< 0x0: psllw_PRq_Ib();
< 0x1: psllw_VRo_Ib();
< }
< default: Inst::UD2();
---
> 0x0F: decode LEGACY_DECODEVAL {
> // no prefix
> 0x0: decode OPCODE_OP_BOTTOM3 {
> 0x0: WarnUnimpl::vmread_Ed_or_Eq_Gd_or_Gq();
> 0x1: WarnUnimpl::vmwrite_Gd_or_Gq_Ed_or_Eq();
> 0x6: MOVD(Edp,Pdp);
> 0x7: MOVQ(Qq,Pq);
> default: UD2();
684,698c740,744
< //0x2: group14_pshimd();
< 0x2: decode MODRM_REG {
< 0x2: decode LEGACY_OP {
< 0x0: psrld_PRq_Ib();
< 0x1: psrld_VRo_Ib();
< }
< 0x4: decode LEGACY_OP {
< 0x0: psrad_PRq_Ib();
< 0x1: psrad_VRo_Ib();
< }
< 0x6: decode LEGACY_OP {
< 0x0: pslld_PRq_Ib();
< 0x1: pslld_VRo_Ib();
< }
< default: Inst::UD2();
---
> // repe (0xF3)
> 0x4: decode OPCODE_OP_BOTTOM3 {
> 0x6: MOVQ(Vq,Wq);
> 0x7: WarnUnimpl::movdqu_Wo_Vo();
> default: UD2();
700,718c746,752
< //0x3: group15_pshimq();
< 0x3: decode MODRM_REG {
< 0x2: decode LEGACY_OP {
< 0x0: psrlq_PRq_Ib();
< 0x1: psrlq_VRo_Ib();
< }
< 0x3: decode LEGACY_OP {
< 0x0: Inst::UD2();
< 0x1: psrldq_VRo_Ib();
< }
< 0x6: decode LEGACY_OP {
< 0x0: psllq_PRq_Ib();
< 0x1: psllq_VRo_Ib();
< }
< 0x7: decode LEGACY_OP {
< 0x0: Inst::UD2();
< 0x1: pslldq_VRo_Ib();
< }
< default: Inst::UD2();
---
> // operand size (0x66)
> 0x1: decode OPCODE_OP_BOTTOM3 {
> 0x4: WarnUnimpl::haddpd_Vo_Wo();
> 0x5: WarnUnimpl::hsubpd_Vo_Wo();
> 0x6: WarnUnimpl::movd_Ed_Vd();
> 0x7: WarnUnimpl::movdqa_Wo_Vo();
> default: UD2();
720,723c754,760
< 0x4: Inst::PCMPEQB(Vo,Wo);
< 0x5: Inst::PCMPEQW(Vo,Wo);
< 0x6: Inst::PCMPEQD(Vo,Wo);
< default: Inst::UD2();
---
> // repne (0xF2)
> 0x8: decode OPCODE_OP_BOTTOM3 {
> 0x4: WarnUnimpl::haddps_Vo_Wo();
> 0x5: WarnUnimpl::hsubps_Vo_Wo();
> default: UD2();
> }
> default: UD2();
725,763d761
< // repne (0xF2)
< 0x8: decode OPCODE_OP_BOTTOM3 {
< 0x0: pshuflw_Vo_Wo_Ib();
< default: Inst::UD2();
< }
< default: Inst::UD2();
< }
< 0x0F: decode LEGACY_DECODEVAL {
< // no prefix
< 0x0: decode OPCODE_OP_BOTTOM3 {
< 0x0: vmread_Ed_or_Eq_Gd_or_Gq();
< 0x1: vmwrite_Gd_or_Gq_Ed_or_Eq();
< 0x6: Inst::MOVD(Edp,Pdp);
< 0x7: Inst::MOVQ(Qq,Pq);
< default: Inst::UD2();
< }
< // repe (0xF3)
< 0x4: decode OPCODE_OP_BOTTOM3 {
< 0x6: Inst::MOVQ(Vq,Wq);
< 0x7: movdqu_Wo_Vo();
< default: Inst::UD2();
< }
< // operand size (0x66)
< 0x1: decode OPCODE_OP_BOTTOM3 {
< 0x4: haddpd_Vo_Wo();
< 0x5: hsubpd_Vo_Wo();
< 0x6: movd_Ed_Vd();
< 0x7: movdqa_Wo_Vo();
< default: Inst::UD2();
< }
< // repne (0xF2)
< 0x8: decode OPCODE_OP_BOTTOM3 {
< 0x4: haddps_Vo_Wo();
< 0x5: hsubps_Vo_Wo();
< default: Inst::UD2();
< }
< default: Inst::UD2();
< }
< format Inst {
947,949c945,947
< 0x1: psrlw_Pq_Qq();
< 0x2: psrld_Pq_Qq();
< 0x3: psrlq_Pq_Qq();
---
> 0x1: Inst::PSRLW(Pq,Qq);
> 0x2: Inst::PSRLD(Pq,Qq);
> 0x3: Inst::PSRLQ(Pq,Qq);
963,965c961,963
< 0x1: psrlw_Vo_Wo();
< 0x2: psrld_Vo_Wo();
< 0x3: psrlq_Vo_Wo();
---
> 0x1: Inst::PSRLW(Vo,Wo);
> 0x2: Inst::PSRLD(Vo,Wo);
> 0x3: Inst::PSRLQ(Vo,Wo);
1010,1011c1008,1009
< 0x1: psraw_Pq_Qq();
< 0x2: psrad_Pq_Qq();
---
> 0x1: Inst::PSRAW(Pq,Qq);
> 0x2: Inst::PSRAD(Pq,Qq);
1026,1027c1024,1025
< 0x1: psraw_Vo_Wo();
< 0x2: psrad_Vo_Wo();
---
> 0x1: Inst::PSRAW(Vo,Wo);
> 0x2: Inst::PSRAD(Vo,Wo);
1071,1073c1069,1071
< 0x1: psllw_Pq_Qq();
< 0x2: pslld_Pq_Qq();
< 0x3: psllq_Pq_Qq();
---
> 0x1: Inst::PSLLW(Pq,Qq);
> 0x2: Inst::PSLLD(Pq,Qq);
> 0x3: Inst::PSLLQ(Pq,Qq);
1082,1084c1080,1082
< 0x1: psllw_Vo_Wo();
< 0x2: pslld_Vo_Wo();
< 0x3: psllq_Vo_Wo();
---
> 0x1: Inst::PSLLW(Vo,Wo);
> 0x2: Inst::PSLLD(Vo,Wo);
> 0x3: Inst::PSLLQ(Vo,Wo);