Changeset 97447 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Nov 8, 2022 9:07:09 AM (2 years ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f3a.cpp.h
r97361 r97447 277 277 IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT_EX(IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSsse3); 278 278 IEM_MC_PREPARE_FPU_USAGE(); 279 IEM_MC_FPU_TO_MMX_MODE(); 279 280 IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm)); 280 281 IEM_MC_FETCH_MREG_U64(uSrc, IEM_GET_MODRM_RM_8(bRm)); … … 282 283 pDst, uSrc, bImmArg); 283 284 IEM_MC_MODIFIED_MREG_BY_REF(pDst); 284 IEM_MC_FPU_TO_MMX_MODE();285 285 IEM_MC_ADVANCE_RIP_AND_FINISH(); 286 286 IEM_MC_END(); … … 304 304 305 305 IEM_MC_PREPARE_FPU_USAGE(); 306 IEM_MC_FPU_TO_MMX_MODE(); 306 307 IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm)); 307 308 IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_palignr_u64, iemAImpl_palignr_u64_fallback), 308 309 pDst, uSrc, bImmArg); 309 310 IEM_MC_MODIFIED_MREG_BY_REF(pDst); 310 IEM_MC_FPU_TO_MMX_MODE();311 311 312 312 IEM_MC_ADVANCE_RIP_AND_FINISH(); -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r97441 r97447 3634 3634 IEM_MC_ARG(uint64_t, u64Src, 2); 3635 3635 IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT(); 3636 IEM_MC_MAYBE_RAISE_FPU_XCPT(); 3636 3637 IEM_MC_PREPARE_FPU_USAGE(); 3637 3638 IEM_MC_FPU_TO_MMX_MODE(); … … 3639 3640 IEM_MC_REF_MXCSR(pfMxcsr); 3640 3641 IEM_MC_FETCH_XREG_XMM(Dst, IEM_GET_MODRM_REG(pVCpu, bRm)); /* Need it because the high quadword remains unchanged. */ 3641 IEM_MC_FETCH_MREG_U64(u64Src, IEM_GET_MODRM_RM (pVCpu,bRm));3642 IEM_MC_FETCH_MREG_U64(u64Src, IEM_GET_MODRM_RM_8(bRm)); 3642 3643 3643 3644 IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_cvtpi2ps_u128, pfMxcsr, pDst, u64Src); … … 3666 3667 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 3667 3668 IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT(); 3669 IEM_MC_MAYBE_RAISE_FPU_XCPT(); 3668 3670 IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 3669 3671 … … 3703 3705 IEM_MC_ARG(uint64_t, u64Src, 2); 3704 3706 IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT(); 3707 IEM_MC_MAYBE_RAISE_FPU_XCPT(); 3705 3708 IEM_MC_PREPARE_FPU_USAGE(); 3706 3709 IEM_MC_FPU_TO_MMX_MODE(); 3707 3710 3708 3711 IEM_MC_REF_MXCSR(pfMxcsr); 3709 IEM_MC_FETCH_MREG_U64(u64Src, IEM_GET_MODRM_RM (pVCpu,bRm));3712 IEM_MC_FETCH_MREG_U64(u64Src, IEM_GET_MODRM_RM_8(bRm)); 3710 3713 3711 3714 IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_cvtpi2pd_u128, pfMxcsr, pDst, u64Src); … … 3734 3737 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 3735 3738 IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT(); 3739 IEM_MC_MAYBE_RAISE_FPU_XCPT(); 3736 3740 IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 3737 3741 … … 4112 4116 IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT(); 4113 4117 IEM_MC_ELSE() 4114 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG (pVCpu,bRm), u64Dst);4118 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst); 4115 4119 IEM_MC_ENDIF(); 4116 4120 … … 4143 4147 IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT(); 4144 4148 IEM_MC_ELSE() 4145 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG (pVCpu,bRm), u64Dst);4149 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst); 4146 4150 IEM_MC_ENDIF(); 4147 4151 … … 4180 4184 IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT(); 4181 4185 IEM_MC_ELSE() 4182 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG (pVCpu,bRm), u64Dst);4186 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst); 4183 4187 IEM_MC_ENDIF(); 4184 4188 … … 4213 4217 IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT(); 4214 4218 IEM_MC_ELSE() 4215 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG (pVCpu,bRm), u64Dst);4219 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst); 4216 4220 IEM_MC_ENDIF(); 4217 4221 … … 4500 4504 IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT(); 4501 4505 IEM_MC_ELSE() 4502 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG (pVCpu,bRm), u64Dst);4506 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst); 4503 4507 IEM_MC_ENDIF(); 4504 4508 … … 4531 4535 IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT(); 4532 4536 IEM_MC_ELSE() 4533 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG (pVCpu,bRm), u64Dst);4537 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst); 4534 4538 IEM_MC_ENDIF(); 4535 4539 … … 4568 4572 IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT(); 4569 4573 IEM_MC_ELSE() 4570 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG (pVCpu,bRm), u64Dst);4574 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst); 4571 4575 IEM_MC_ENDIF(); 4572 4576 … … 4601 4605 IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT(); 4602 4606 IEM_MC_ELSE() 4603 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG (pVCpu,bRm), u64Dst);4607 IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst); 4604 4608 IEM_MC_ENDIF(); 4605 4609 … … 5505 5509 IEM_MC_REF_XREG_U128_CONST(puSrc, IEM_GET_MODRM_RM(pVCpu, bRm)); 5506 5510 IEM_MC_CALL_VOID_AIMPL_2(iemAImpl_movmskpd_u128, pu8Dst, puSrc); 5507 IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG (pVCpu,bRm), u8Dst);5511 IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG_8(bRm), u8Dst); 5508 5512 IEM_MC_ADVANCE_RIP_AND_FINISH(); 5509 5513 IEM_MC_END(); … … 6236 6240 if (IEM_IS_MODRM_REG_MODE(bRm)) 6237 6241 { 6238 /* MMX, greg */6242 /* MMX, greg32 */ 6239 6243 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 6240 6244 IEM_MC_BEGIN(0, 1); 6241 IEM_MC_LOCAL(uint 64_t, u64Tmp);6245 IEM_MC_LOCAL(uint32_t, u32Tmp); 6242 6246 6243 6247 IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT(); … … 6245 6249 IEM_MC_FPU_TO_MMX_MODE(); 6246 6250 6247 IEM_MC_FETCH_GREG_U32 _ZX_U64(u64Tmp, IEM_GET_MODRM_RM(pVCpu, bRm));6248 IEM_MC_STORE_MREG_U 64(IEM_GET_MODRM_REG_8(bRm), u64Tmp);6251 IEM_MC_FETCH_GREG_U32(u32Tmp, IEM_GET_MODRM_RM(pVCpu, bRm)); 6252 IEM_MC_STORE_MREG_U32_ZX_U64(IEM_GET_MODRM_REG_8(bRm), u32Tmp); 6249 6253 6250 6254 IEM_MC_ADVANCE_RIP_AND_FINISH(); … … 6253 6257 else 6254 6258 { 6255 /* MMX, [mem ] */6259 /* MMX, [mem32] */ 6256 6260 IEM_MC_BEGIN(0, 2); 6257 6261 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); … … 7516 7520 { 7517 7521 /* 7518 * Register, register.7522 * XMM128, XMM64. 7519 7523 */ 7520 7524 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); … … 7534 7538 { 7535 7539 /* 7536 * Memory, register.7540 * XMM128, [mem64]. 7537 7541 */ 7538 7542 IEM_MC_BEGIN(0, 2); … … 7564 7568 { 7565 7569 /* 7566 * Register, register.7570 * MMX, MMX. 7567 7571 */ 7568 7572 /** @todo testcase: REX.B / REX.R and MMX register indexing. Ignored? */ … … 7584 7588 { 7585 7589 /* 7586 * Memory, Register.7590 * [mem64], MMX. 7587 7591 */ 7588 7592 IEM_MC_BEGIN(0, 2); … … 7612 7616 { 7613 7617 /* 7614 * Register, register.7618 * XMM, XMM. 7615 7619 */ 7616 7620 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); … … 7626 7630 { 7627 7631 /* 7628 * Register, memory.7632 * [mem128], XMM. 7629 7633 */ 7630 7634 IEM_MC_BEGIN(0, 2); … … 7653 7657 { 7654 7658 /* 7655 * Register, register.7659 * XMM, XMM. 7656 7660 */ 7657 7661 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); … … 7667 7671 { 7668 7672 /* 7669 * Register, memory.7673 * [mem128], XMM. 7670 7674 */ 7671 7675 IEM_MC_BEGIN(0, 2); … … 11362 11366 { 11363 11367 /* 11364 * Register, register.11368 * XMM, XMM. 11365 11369 */ 11366 11370 uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm); … … 11391 11395 { 11392 11396 /* 11393 * Register, memory.11397 * XMM, [mem128]. 11394 11398 */ 11395 11399 IEM_MC_BEGIN(4, 3); … … 11433 11437 { 11434 11438 /* 11435 * Register, register.11439 * XMM, XMM. 11436 11440 */ 11437 11441 uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm); … … 11462 11466 { 11463 11467 /* 11464 * Register, memory.11468 * XMM, [mem128]. 11465 11469 */ 11466 11470 IEM_MC_BEGIN(4, 3); … … 11504 11508 { 11505 11509 /* 11506 * Register, register.11510 * XMM32, XMM32. 11507 11511 */ 11508 11512 uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm); … … 11524 11528 IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT(); 11525 11529 IEM_MC_ELSE() 11526 IEM_MC_STORE_XREG_XMM (IEM_GET_MODRM_REG(pVCpu, bRm), Dst);11530 IEM_MC_STORE_XREG_XMM_U32(IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iDword*/, Dst); 11527 11531 IEM_MC_ENDIF(); 11528 11532 … … 11533 11537 { 11534 11538 /* 11535 * Register, memory.11539 * XMM32, [mem32]. 11536 11540 */ 11537 11541 IEM_MC_BEGIN(4, 3); … … 11575 11579 { 11576 11580 /* 11577 * Register, register.11581 * XMM64, XMM64. 11578 11582 */ 11579 11583 uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm); … … 11595 11599 IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT(); 11596 11600 IEM_MC_ELSE() 11597 IEM_MC_STORE_XREG_XMM (IEM_GET_MODRM_REG(pVCpu, bRm), Dst);11601 IEM_MC_STORE_XREG_XMM_U64(IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iQword*/, Dst); 11598 11602 IEM_MC_ENDIF(); 11599 11603 … … 11604 11608 { 11605 11609 /* 11606 * Register, memory.11610 * XMM64, [mem64]. 11607 11611 */ 11608 11612 IEM_MC_BEGIN(4, 3); … … 11619 11623 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 11620 11624 IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT(); 11621 IEM_MC_FETCH_MEM_XMM_U 32(Src.uSrc2, 0 /*a_iDword */, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);11625 IEM_MC_FETCH_MEM_XMM_U64(Src.uSrc2, 0 /*a_iQword */, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 11622 11626 11623 11627 IEM_MC_PREPARE_SSE_USAGE(); … … 11628 11632 IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT(); 11629 11633 IEM_MC_ELSE() 11630 IEM_MC_STORE_XREG_XMM_U 32(IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iDword*/, Dst);11634 IEM_MC_STORE_XREG_XMM_U64(IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iQword*/, Dst); 11631 11635 IEM_MC_ENDIF(); 11632 11636 … … 11701 11705 FNIEMOP_DEF(iemOp_pinsrw_Pq_RyMw_Ib) 11702 11706 { 11703 IEMOP_MNEMONIC3(RMI, PINSRW, pinsrw, Pq, Ey, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_ SSE, 0);11707 IEMOP_MNEMONIC3(RMI, PINSRW, pinsrw, Pq, Ey, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, 0); 11704 11708 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 11705 11709 if (IEM_IS_MODRM_REG_MODE(bRm)) … … 11716 11720 IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT_CHECK_SSE_OR_MMXEXT(); 11717 11721 IEM_MC_PREPARE_FPU_USAGE(); 11718 IEM_MC_REF_MREG_U64(pu64Dst, IEM_GET_MODRM_REG(pVCpu, bRm)); 11722 IEM_MC_FPU_TO_MMX_MODE(); 11723 IEM_MC_REF_MREG_U64(pu64Dst, IEM_GET_MODRM_REG_8(bRm)); 11719 11724 IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_RM(pVCpu, bRm)); 11720 11725 IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_pinsrw_u64, pu64Dst, u16Src, bEvilArg); 11721 11726 IEM_MC_MODIFIED_MREG_BY_REF(pu64Dst); 11722 IEM_MC_FPU_TO_MMX_MODE();11723 11727 IEM_MC_ADVANCE_RIP_AND_FINISH(); 11724 11728 IEM_MC_END(); … … 11740 11744 IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT_CHECK_SSE_OR_MMXEXT(); 11741 11745 IEM_MC_PREPARE_FPU_USAGE(); 11746 IEM_MC_FPU_TO_MMX_MODE(); 11742 11747 11743 11748 IEM_MC_FETCH_MEM_U16(u16Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 11744 IEM_MC_REF_MREG_U64(pu64Dst, IEM_GET_MODRM_REG (pVCpu,bRm));11749 IEM_MC_REF_MREG_U64(pu64Dst, IEM_GET_MODRM_REG_8(bRm)); 11745 11750 IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_pinsrw_u64, pu64Dst, u16Src, bEvilArg); 11746 11751 IEM_MC_MODIFIED_MREG_BY_REF(pu64Dst); 11747 IEM_MC_FPU_TO_MMX_MODE();11748 11752 IEM_MC_ADVANCE_RIP_AND_FINISH(); 11749 11753 IEM_MC_END(); … … 11770 11774 IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT(); 11771 11775 IEM_MC_PREPARE_SSE_USAGE(); 11776 IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_RM(pVCpu, bRm)); 11772 11777 IEM_MC_REF_XREG_U128(puDst, IEM_GET_MODRM_REG(pVCpu, bRm)); 11773 IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_RM(pVCpu, bRm));11774 11778 IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_pinsrw_u128, puDst, u16Src, bEvilArg); 11775 11779 IEM_MC_ADVANCE_RIP_AND_FINISH(); … … 11809 11813 FNIEMOP_DEF(iemOp_pextrw_Gd_Nq_Ib) 11810 11814 { 11811 /*IEMOP_MNEMONIC3(RMI_REG, PEXTRW, pextrw, Gd, Nq, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_ SSE, 0);*/ /** @todo */11815 /*IEMOP_MNEMONIC3(RMI_REG, PEXTRW, pextrw, Gd, Nq, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, 0);*/ /** @todo */ 11812 11816 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 11813 11817 if (IEM_IS_MODRM_REG_MODE(bRm)) … … 11825 11829 IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT_CHECK_SSE_OR_MMXEXT(); 11826 11830 IEM_MC_PREPARE_FPU_USAGE(); 11827 IEM_MC_FETCH_MREG_U64(u64Src, IEM_GET_MODRM_RM(pVCpu, bRm)); 11831 IEM_MC_FPU_TO_MMX_MODE(); 11832 IEM_MC_FETCH_MREG_U64(u64Src, IEM_GET_MODRM_RM_8(bRm)); 11828 11833 IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_pextrw_u64, pu16Dst, u64Src, bEvilArg); 11829 11834 IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u16Dst); 11830 IEM_MC_FPU_TO_MMX_MODE();11831 11835 IEM_MC_ADVANCE_RIP_AND_FINISH(); 11832 11836 IEM_MC_END(); … … 12491 12495 FNIEMOP_DEF(iemOp_addsubpd_Vpd_Wpd) 12492 12496 { 12493 IEMOP_MNEMONIC2(RM, ADDSUBPD, addsubpd, Vpd, Wpd, DISOPTYPE_HARMLESS , 0);12497 IEMOP_MNEMONIC2(RM, ADDSUBPD, addsubpd, Vpd, Wpd, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, 0); 12494 12498 return FNIEMOP_CALL_1(iemOpCommonSse3Fp_FullFull_To_Full, iemAImpl_addsubpd_u128); 12495 12499 } … … 12502 12506 FNIEMOP_DEF(iemOp_addsubps_Vps_Wps) 12503 12507 { 12504 IEMOP_MNEMONIC2(RM, ADDSUBPS, addsubps, Vps, Wps, DISOPTYPE_HARMLESS , 0);12508 IEMOP_MNEMONIC2(RM, ADDSUBPS, addsubps, Vps, Wps, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, 0); 12505 12509 return FNIEMOP_CALL_1(iemOpCommonSse3Fp_FullFull_To_Full, iemAImpl_addsubps_u128); 12506 12510 } … … 12511 12515 FNIEMOP_DEF(iemOp_psrlw_Pq_Qq) 12512 12516 { 12513 IEMOP_MNEMONIC2(RM, PSRLW, psrlw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_ SSE, 0);12517 IEMOP_MNEMONIC2(RM, PSRLW, psrlw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, 0); 12514 12518 return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_psrlw_u64); 12515 12519 } … … 12567 12571 FNIEMOP_DEF(iemOp_paddq_Pq_Qq) 12568 12572 { 12569 IEMOP_MNEMONIC2(RM, PADDQ, paddq, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12573 IEMOP_MNEMONIC2(RM, PADDQ, paddq, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 12570 12574 return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex, iemAImpl_paddq_u64, IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2); 12571 12575 } … … 12575 12579 FNIEMOP_DEF(iemOp_paddq_Vx_Wx) 12576 12580 { 12577 IEMOP_MNEMONIC2(RM, PADDQ, paddq, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12581 IEMOP_MNEMONIC2(RM, PADDQ, paddq, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 12578 12582 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddq_u128); 12579 12583 } … … 12586 12590 FNIEMOP_DEF(iemOp_pmullw_Pq_Qq) 12587 12591 { 12588 IEMOP_MNEMONIC2(RM, PMULLW, pmullw, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12592 IEMOP_MNEMONIC2(RM, PMULLW, pmullw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 12589 12593 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pmullw_u64); 12590 12594 } … … 12593 12597 FNIEMOP_DEF(iemOp_pmullw_Vx_Wx) 12594 12598 { 12595 IEMOP_MNEMONIC2(RM, PMULLW, pmullw, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12599 IEMOP_MNEMONIC2(RM, PMULLW, pmullw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 12596 12600 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pmullw_u128); 12597 12601 } … … 12819 12823 FNIEMOP_DEF(iemOp_psubusb_Pq_Qq) 12820 12824 { 12821 IEMOP_MNEMONIC2(RM, PSUBUSB, psubusb, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12825 IEMOP_MNEMONIC2(RM, PSUBUSB, psubusb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 12822 12826 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubusb_u64); 12823 12827 } … … 12827 12831 FNIEMOP_DEF(iemOp_psubusb_Vx_Wx) 12828 12832 { 12829 IEMOP_MNEMONIC2(RM, PSUBUSB, psubusb, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12833 IEMOP_MNEMONIC2(RM, PSUBUSB, psubusb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 12830 12834 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubusb_u128); 12831 12835 } … … 12838 12842 FNIEMOP_DEF(iemOp_psubusw_Pq_Qq) 12839 12843 { 12840 IEMOP_MNEMONIC2(RM, PSUBUSW, psubusw, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12844 IEMOP_MNEMONIC2(RM, PSUBUSW, psubusw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 12841 12845 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubusw_u64); 12842 12846 } … … 12846 12850 FNIEMOP_DEF(iemOp_psubusw_Vx_Wx) 12847 12851 { 12848 IEMOP_MNEMONIC2(RM, PSUBUSW, psubusw, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12852 IEMOP_MNEMONIC2(RM, PSUBUSW, psubusw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 12849 12853 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubusw_u128); 12850 12854 } … … 12875 12879 FNIEMOP_DEF(iemOp_pand_Pq_Qq) 12876 12880 { 12877 IEMOP_MNEMONIC2(RM, PAND, pand, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12881 IEMOP_MNEMONIC2(RM, PAND, pand, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 12878 12882 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pand_u64); 12879 12883 } … … 12883 12887 FNIEMOP_DEF(iemOp_pand_Vx_Wx) 12884 12888 { 12885 IEMOP_MNEMONIC2(RM, PAND, pand, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12889 IEMOP_MNEMONIC2(RM, PAND, pand, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 12886 12890 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pand_u128); 12887 12891 } … … 12894 12898 FNIEMOP_DEF(iemOp_paddusb_Pq_Qq) 12895 12899 { 12896 IEMOP_MNEMONIC2(RM, PADDUSB, paddusb, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12900 IEMOP_MNEMONIC2(RM, PADDUSB, paddusb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 12897 12901 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddusb_u64); 12898 12902 } … … 12902 12906 FNIEMOP_DEF(iemOp_paddusb_Vx_Wx) 12903 12907 { 12904 IEMOP_MNEMONIC2(RM, PADDUSB, paddusb, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12908 IEMOP_MNEMONIC2(RM, PADDUSB, paddusb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 12905 12909 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddusb_u128); 12906 12910 } … … 12913 12917 FNIEMOP_DEF(iemOp_paddusw_Pq_Qq) 12914 12918 { 12915 IEMOP_MNEMONIC2(RM, PADDUSW, paddusw, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12919 IEMOP_MNEMONIC2(RM, PADDUSW, paddusw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 12916 12920 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddusw_u64); 12917 12921 } … … 12921 12925 FNIEMOP_DEF(iemOp_paddusw_Vx_Wx) 12922 12926 { 12923 IEMOP_MNEMONIC2(RM, PADDUSW, paddusw, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12927 IEMOP_MNEMONIC2(RM, PADDUSW, paddusw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 12924 12928 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddusw_u128); 12925 12929 } … … 12932 12936 FNIEMOP_DEF(iemOp_pmaxub_Pq_Qq) 12933 12937 { 12934 IEMOP_MNEMONIC2(RM, PMAXUB, pmaxub, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12938 IEMOP_MNEMONIC2(RM, PMAXUB, pmaxub, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 12935 12939 return FNIEMOP_CALL_1(iemOpCommonMmxSse_FullFull_To_Full, iemAImpl_pmaxub_u64); 12936 12940 } … … 12940 12944 FNIEMOP_DEF(iemOp_pmaxub_Vx_Wx) 12941 12945 { 12942 IEMOP_MNEMONIC2(RM, PMAXUB, pmaxub, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12946 IEMOP_MNEMONIC2(RM, PMAXUB, pmaxub, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 12943 12947 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pmaxub_u128); 12944 12948 } … … 12951 12955 FNIEMOP_DEF(iemOp_pandn_Pq_Qq) 12952 12956 { 12953 IEMOP_MNEMONIC2(RM, PANDN, pandn, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12957 IEMOP_MNEMONIC2(RM, PANDN, pandn, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 12954 12958 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pandn_u64); 12955 12959 } … … 12959 12963 FNIEMOP_DEF(iemOp_pandn_Vx_Wx) 12960 12964 { 12961 IEMOP_MNEMONIC2(RM, PANDN, pandn, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12965 IEMOP_MNEMONIC2(RM, PANDN, pandn, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 12962 12966 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pandn_u128); 12963 12967 } … … 12970 12974 FNIEMOP_DEF(iemOp_pavgb_Pq_Qq) 12971 12975 { 12972 IEMOP_MNEMONIC2(RM, PAVGB, pavgb, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);12976 IEMOP_MNEMONIC2(RM, PAVGB, pavgb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 12973 12977 return FNIEMOP_CALL_1(iemOpCommonMmxSseOpt_FullFull_To_Full, iemAImpl_pavgb_u64); 12974 12978 } … … 13027 13031 FNIEMOP_DEF(iemOp_pavgw_Pq_Qq) 13028 13032 { 13029 IEMOP_MNEMONIC2(RM, PAVGW, pavgw, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13033 IEMOP_MNEMONIC2(RM, PAVGW, pavgw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13030 13034 return FNIEMOP_CALL_1(iemOpCommonMmxSseOpt_FullFull_To_Full, iemAImpl_pavgw_u64); 13031 13035 } … … 13046 13050 FNIEMOP_DEF(iemOp_pmulhuw_Pq_Qq) 13047 13051 { 13048 IEMOP_MNEMONIC2(RM, PMULHUW, pmulhuw, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13052 IEMOP_MNEMONIC2(RM, PMULHUW, pmulhuw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13049 13053 return FNIEMOP_CALL_1(iemOpCommonMmxSseOpt_FullFull_To_Full, iemAImpl_pmulhuw_u64); 13050 13054 } … … 13054 13058 FNIEMOP_DEF(iemOp_pmulhuw_Vx_Wx) 13055 13059 { 13056 IEMOP_MNEMONIC2(RM, PMULHUW, pmulhuw, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13060 IEMOP_MNEMONIC2(RM, PMULHUW, pmulhuw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13057 13061 return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pmulhuw_u128); 13058 13062 } … … 13065 13069 FNIEMOP_DEF(iemOp_pmulhw_Pq_Qq) 13066 13070 { 13067 IEMOP_MNEMONIC2(RM, PMULHW, pmulhw, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13071 IEMOP_MNEMONIC2(RM, PMULHW, pmulhw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13068 13072 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pmulhw_u64); 13069 13073 } … … 13073 13077 FNIEMOP_DEF(iemOp_pmulhw_Vx_Wx) 13074 13078 { 13075 IEMOP_MNEMONIC2(RM, PMULHW, pmulhw, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13079 IEMOP_MNEMONIC2(RM, PMULHW, pmulhw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13076 13080 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pmulhw_u128); 13077 13081 } … … 13208 13212 FNIEMOP_DEF(iemOp_psubsb_Pq_Qq) 13209 13213 { 13210 IEMOP_MNEMONIC2(RM, PSUBSB, psubsb, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13214 IEMOP_MNEMONIC2(RM, PSUBSB, psubsb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13211 13215 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubsb_u64); 13212 13216 } … … 13216 13220 FNIEMOP_DEF(iemOp_psubsb_Vx_Wx) 13217 13221 { 13218 IEMOP_MNEMONIC2(RM, PSUBSB, psubsb, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13222 IEMOP_MNEMONIC2(RM, PSUBSB, psubsb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13219 13223 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubsb_u128); 13220 13224 } … … 13227 13231 FNIEMOP_DEF(iemOp_psubsw_Pq_Qq) 13228 13232 { 13229 IEMOP_MNEMONIC2(RM, PSUBSW, psubsw, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13233 IEMOP_MNEMONIC2(RM, PSUBSW, psubsw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13230 13234 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubsw_u64); 13231 13235 } … … 13235 13239 FNIEMOP_DEF(iemOp_psubsw_Vx_Wx) 13236 13240 { 13237 IEMOP_MNEMONIC2(RM, PSUBSW, psubsw, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13241 IEMOP_MNEMONIC2(RM, PSUBSW, psubsw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13238 13242 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubsw_u128); 13239 13243 } … … 13247 13251 FNIEMOP_DEF(iemOp_pminsw_Pq_Qq) 13248 13252 { 13249 IEMOP_MNEMONIC2(RM, PMINSW, pminsw, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13253 IEMOP_MNEMONIC2(RM, PMINSW, pminsw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13250 13254 return FNIEMOP_CALL_1(iemOpCommonMmxSse_FullFull_To_Full, iemAImpl_pminsw_u64); 13251 13255 } … … 13255 13259 FNIEMOP_DEF(iemOp_pminsw_Vx_Wx) 13256 13260 { 13257 IEMOP_MNEMONIC2(RM, PMINSW, pminsw, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13261 IEMOP_MNEMONIC2(RM, PMINSW, pminsw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13258 13262 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pminsw_u128); 13259 13263 } … … 13267 13271 FNIEMOP_DEF(iemOp_por_Pq_Qq) 13268 13272 { 13269 IEMOP_MNEMONIC2(RM, POR, por, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13273 IEMOP_MNEMONIC2(RM, POR, por, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13270 13274 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_por_u64); 13271 13275 } … … 13275 13279 FNIEMOP_DEF(iemOp_por_Vx_Wx) 13276 13280 { 13277 IEMOP_MNEMONIC2(RM, POR, por, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13281 IEMOP_MNEMONIC2(RM, POR, por, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13278 13282 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_por_u128); 13279 13283 } … … 13286 13290 FNIEMOP_DEF(iemOp_paddsb_Pq_Qq) 13287 13291 { 13288 IEMOP_MNEMONIC2(RM, PADDSB, paddsb, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13292 IEMOP_MNEMONIC2(RM, PADDSB, paddsb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13289 13293 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddsb_u64); 13290 13294 } … … 13294 13298 FNIEMOP_DEF(iemOp_paddsb_Vx_Wx) 13295 13299 { 13296 IEMOP_MNEMONIC2(RM, PADDSB, paddsb, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13300 IEMOP_MNEMONIC2(RM, PADDSB, paddsb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13297 13301 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddsb_u128); 13298 13302 } … … 13305 13309 FNIEMOP_DEF(iemOp_paddsw_Pq_Qq) 13306 13310 { 13307 IEMOP_MNEMONIC2(RM, PADDSW, paddsw, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13311 IEMOP_MNEMONIC2(RM, PADDSW, paddsw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13308 13312 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddsw_u64); 13309 13313 } … … 13313 13317 FNIEMOP_DEF(iemOp_paddsw_Vx_Wx) 13314 13318 { 13315 IEMOP_MNEMONIC2(RM, PADDSW, paddsw, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13319 IEMOP_MNEMONIC2(RM, PADDSW, paddsw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13316 13320 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddsw_u128); 13317 13321 } … … 13325 13329 FNIEMOP_DEF(iemOp_pmaxsw_Pq_Qq) 13326 13330 { 13327 IEMOP_MNEMONIC2(RM, PMAXSW, pmaxsw, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13331 IEMOP_MNEMONIC2(RM, PMAXSW, pmaxsw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13328 13332 return FNIEMOP_CALL_1(iemOpCommonMmxSse_FullFull_To_Full, iemAImpl_pmaxsw_u64); 13329 13333 } … … 13333 13337 FNIEMOP_DEF(iemOp_pmaxsw_Vx_Wx) 13334 13338 { 13335 IEMOP_MNEMONIC2(RM, PMAXSW, pmaxsw, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13339 IEMOP_MNEMONIC2(RM, PMAXSW, pmaxsw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13336 13340 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pmaxsw_u128); 13337 13341 } … … 13345 13349 FNIEMOP_DEF(iemOp_pxor_Pq_Qq) 13346 13350 { 13347 IEMOP_MNEMONIC2(RM, PXOR, pxor, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13351 IEMOP_MNEMONIC2(RM, PXOR, pxor, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13348 13352 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pxor_u64); 13349 13353 } … … 13353 13357 FNIEMOP_DEF(iemOp_pxor_Vx_Wx) 13354 13358 { 13355 IEMOP_MNEMONIC2(RM, PXOR, pxor, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13359 IEMOP_MNEMONIC2(RM, PXOR, pxor, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13356 13360 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pxor_u128); 13357 13361 } … … 13515 13519 FNIEMOP_DEF(iemOp_psubb_Pq_Qq) 13516 13520 { 13517 IEMOP_MNEMONIC2(RM, PSUBB, psubb, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13521 IEMOP_MNEMONIC2(RM, PSUBB, psubb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13518 13522 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubb_u64); 13519 13523 } … … 13523 13527 FNIEMOP_DEF(iemOp_psubb_Vx_Wx) 13524 13528 { 13525 IEMOP_MNEMONIC2(RM, PSUBB, psubb, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13529 IEMOP_MNEMONIC2(RM, PSUBB, psubb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13526 13530 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubb_u128); 13527 13531 } … … 13534 13538 FNIEMOP_DEF(iemOp_psubw_Pq_Qq) 13535 13539 { 13536 IEMOP_MNEMONIC2(RM, PSUBW, psubw, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13540 IEMOP_MNEMONIC2(RM, PSUBW, psubw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13537 13541 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubw_u64); 13538 13542 } … … 13542 13546 FNIEMOP_DEF(iemOp_psubw_Vx_Wx) 13543 13547 { 13544 IEMOP_MNEMONIC2(RM, PSUBW, psubw, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13548 IEMOP_MNEMONIC2(RM, PSUBW, psubw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13545 13549 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubw_u128); 13546 13550 } … … 13553 13557 FNIEMOP_DEF(iemOp_psubd_Pq_Qq) 13554 13558 { 13555 IEMOP_MNEMONIC2(RM, PSUBD, psubd, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13559 IEMOP_MNEMONIC2(RM, PSUBD, psubd, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13556 13560 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubd_u64); 13557 13561 } … … 13561 13565 FNIEMOP_DEF(iemOp_psubd_Vx_Wx) 13562 13566 { 13563 IEMOP_MNEMONIC2(RM, PSUBD, psubd, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13567 IEMOP_MNEMONIC2(RM, PSUBD, psubd, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13564 13568 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubd_u128); 13565 13569 } … … 13572 13576 FNIEMOP_DEF(iemOp_psubq_Pq_Qq) 13573 13577 { 13574 IEMOP_MNEMONIC2(RM, PSUBQ, psubq, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13578 IEMOP_MNEMONIC2(RM, PSUBQ, psubq, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13575 13579 return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex, iemAImpl_psubq_u64, IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2); 13576 13580 } … … 13580 13584 FNIEMOP_DEF(iemOp_psubq_Vx_Wx) 13581 13585 { 13582 IEMOP_MNEMONIC2(RM, PSUBQ, psubq, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13586 IEMOP_MNEMONIC2(RM, PSUBQ, psubq, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13583 13587 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubq_u128); 13584 13588 } … … 13591 13595 FNIEMOP_DEF(iemOp_paddb_Pq_Qq) 13592 13596 { 13593 IEMOP_MNEMONIC2(RM, PADDB, paddb, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13597 IEMOP_MNEMONIC2(RM, PADDB, paddb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13594 13598 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddb_u64); 13595 13599 } … … 13599 13603 FNIEMOP_DEF(iemOp_paddb_Vx_Wx) 13600 13604 { 13601 IEMOP_MNEMONIC2(RM, PADDB, paddb, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13605 IEMOP_MNEMONIC2(RM, PADDB, paddb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13602 13606 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddb_u128); 13603 13607 } … … 13610 13614 FNIEMOP_DEF(iemOp_paddw_Pq_Qq) 13611 13615 { 13612 IEMOP_MNEMONIC2(RM, PADDW, paddw, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13616 IEMOP_MNEMONIC2(RM, PADDW, paddw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13613 13617 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddw_u64); 13614 13618 } … … 13618 13622 FNIEMOP_DEF(iemOp_paddw_Vx_Wx) 13619 13623 { 13620 IEMOP_MNEMONIC2(RM, PADDW, paddw, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13624 IEMOP_MNEMONIC2(RM, PADDW, paddw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13621 13625 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddw_u128); 13622 13626 } … … 13629 13633 FNIEMOP_DEF(iemOp_paddd_Pq_Qq) 13630 13634 { 13631 IEMOP_MNEMONIC2(RM, PADDD, paddd, Pq, Qq, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13635 IEMOP_MNEMONIC2(RM, PADDD, paddd, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES); 13632 13636 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddd_u64); 13633 13637 } … … 13637 13641 FNIEMOP_DEF(iemOp_paddd_Vx_Wx) 13638 13642 { 13639 IEMOP_MNEMONIC2(RM, PADDD, paddd, Vx, Wx, DISOPTYPE_HARMLESS , IEMOPHINT_IGNORES_OP_SIZES);13643 IEMOP_MNEMONIC2(RM, PADDD, paddd, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 13640 13644 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddd_u128); 13641 13645 }
Note:
See TracChangeset
for help on using the changeset viewer.