Changeset 103256 in vbox for trunk/src/VBox/VMM/VMMAll/IEMAllInstVexMap2.cpp.h
- Timestamp:
- Feb 7, 2024 3:07:09 PM (13 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstVexMap2.cpp.h
r103212 r103256 547 547 548 548 /** Body for the vpmov{s,z}x* instructions. */ 549 #define IEMOP_BODY_VPMOV_S_Z(a_Instr, a_SrcWidth ) \549 #define IEMOP_BODY_VPMOV_S_Z(a_Instr, a_SrcWidth, a_VexLengthMemFetch) \ 550 550 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); \ 551 551 if (IEM_IS_MODRM_REG_MODE(bRm)) \ … … 606 606 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); \ 607 607 IEM_MC_PREPARE_AVX_USAGE(); \ 608 IEM_MC_FETCH_MEM_U128(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \608 a_VexLengthMemFetch(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \ 609 609 IEM_MC_CALL_VOID_AIMPL_2(IEM_SELECT_HOST_OR_FALLBACK(fAvx2, iemAImpl_ ## a_Instr ## _u256, \ 610 610 iemAImpl_ ## a_Instr ## _u256_fallback), \ … … 641 641 /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */ 642 642 IEMOP_MNEMONIC2(VEX_RM, VPMOVSXBW, vpmovsxbw, Vx, Wq, DISOPTYPE_HARMLESS, 0); 643 IEMOP_BODY_VPMOV_S_Z(vpmovsxbw, 64 );643 IEMOP_BODY_VPMOV_S_Z(vpmovsxbw, 64, IEM_MC_FETCH_MEM_U128_NO_AC); 644 644 } 645 645 … … 650 650 /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */ 651 651 IEMOP_MNEMONIC2(VEX_RM, VPMOVSXBD, vpmovsxbd, Vx, Wq, DISOPTYPE_HARMLESS, 0); 652 IEMOP_BODY_VPMOV_S_Z(vpmovsxbd, 32 );652 IEMOP_BODY_VPMOV_S_Z(vpmovsxbd, 32, IEM_MC_FETCH_MEM_U128); 653 653 } 654 654 … … 659 659 /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */ 660 660 IEMOP_MNEMONIC2(VEX_RM, VPMOVSXBQ, vpmovsxbq, Vx, Wq, DISOPTYPE_HARMLESS, 0); 661 IEMOP_BODY_VPMOV_S_Z(vpmovsxbq, 16 );661 IEMOP_BODY_VPMOV_S_Z(vpmovsxbq, 16, IEM_MC_FETCH_MEM_U128); 662 662 } 663 663 … … 668 668 /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */ 669 669 IEMOP_MNEMONIC2(VEX_RM, VPMOVSXWD, vpmovsxwd, Vx, Wq, DISOPTYPE_HARMLESS, 0); 670 IEMOP_BODY_VPMOV_S_Z(vpmovsxwd, 64 );670 IEMOP_BODY_VPMOV_S_Z(vpmovsxwd, 64, IEM_MC_FETCH_MEM_U128_NO_AC); 671 671 } 672 672 … … 677 677 /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */ 678 678 IEMOP_MNEMONIC2(VEX_RM, VPMOVSXWQ, vpmovsxwq, Vx, Wq, DISOPTYPE_HARMLESS, 0); 679 IEMOP_BODY_VPMOV_S_Z(vpmovsxwq, 32 );679 IEMOP_BODY_VPMOV_S_Z(vpmovsxwq, 32, IEM_MC_FETCH_MEM_U128); 680 680 } 681 681 … … 686 686 /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */ 687 687 IEMOP_MNEMONIC2(VEX_RM, VPMOVSXDQ, vpmovsxdq, Vx, Wq, DISOPTYPE_HARMLESS, 0); 688 IEMOP_BODY_VPMOV_S_Z(vpmovsxdq, 64 );688 IEMOP_BODY_VPMOV_S_Z(vpmovsxdq, 64, IEM_MC_FETCH_MEM_U128_NO_AC); 689 689 } 690 690 … … 820 820 /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */ 821 821 IEMOP_MNEMONIC2(VEX_RM, VPMOVZXBW, vpmovzxbw, Vx, Wq, DISOPTYPE_HARMLESS, 0); 822 IEMOP_BODY_VPMOV_S_Z(vpmovzxbw, 64 );822 IEMOP_BODY_VPMOV_S_Z(vpmovzxbw, 64, IEM_MC_FETCH_MEM_U128_NO_AC); 823 823 } 824 824 … … 829 829 /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */ 830 830 IEMOP_MNEMONIC2(VEX_RM, VPMOVZXBD, vpmovzxbd, Vx, Wq, DISOPTYPE_HARMLESS, 0); 831 IEMOP_BODY_VPMOV_S_Z(vpmovzxbd, 32 );831 IEMOP_BODY_VPMOV_S_Z(vpmovzxbd, 32, IEM_MC_FETCH_MEM_U128); 832 832 } 833 833 … … 838 838 /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */ 839 839 IEMOP_MNEMONIC2(VEX_RM, VPMOVZXBQ, vpmovzxbq, Vx, Wq, DISOPTYPE_HARMLESS, 0); 840 IEMOP_BODY_VPMOV_S_Z(vpmovzxbq, 16 );840 IEMOP_BODY_VPMOV_S_Z(vpmovzxbq, 16, IEM_MC_FETCH_MEM_U128); 841 841 } 842 842 … … 847 847 /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */ 848 848 IEMOP_MNEMONIC2(VEX_RM, VPMOVZXWD, vpmovzxwd, Vx, Wq, DISOPTYPE_HARMLESS, 0); 849 IEMOP_BODY_VPMOV_S_Z(vpmovzxwd, 64 );849 IEMOP_BODY_VPMOV_S_Z(vpmovzxwd, 64, IEM_MC_FETCH_MEM_U128_NO_AC); 850 850 } 851 851 … … 856 856 /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */ 857 857 IEMOP_MNEMONIC2(VEX_RM, VPMOVZXWQ, vpmovzxwq, Vx, Wq, DISOPTYPE_HARMLESS, 0); 858 IEMOP_BODY_VPMOV_S_Z(vpmovzxwq, 32 );858 IEMOP_BODY_VPMOV_S_Z(vpmovzxwq, 32, IEM_MC_FETCH_MEM_U128); 859 859 } 860 860 … … 865 865 /** @todo r=aeichner Review code, the naming of this function and the parameter type specifiers. */ 866 866 IEMOP_MNEMONIC2(VEX_RM, VPMOVZXDQ, vpmovzxdq, Vx, Wq, DISOPTYPE_HARMLESS, 0); 867 IEMOP_BODY_VPMOV_S_Z(vpmovzxdq, 64 );867 IEMOP_BODY_VPMOV_S_Z(vpmovzxdq, 64, IEM_MC_FETCH_MEM_U128_NO_AC); 868 868 } 869 869
Note:
See TracChangeset
for help on using the changeset viewer.