Changeset 103787 in vbox
- Timestamp:
- Mar 11, 2024 5:47:32 PM (9 months ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstPython.py
r103784 r103787 3094 3094 'IEM_MC_FETCH_XREG_PAIR_U128_AND_EAX_EDX_U32_SX_U64': (McBlock.parseMcGeneric, False, False, False, ), 3095 3095 'IEM_MC_FETCH_XREG_PAIR_XMM': (McBlock.parseMcGeneric, False, False, False, ), 3096 'IEM_MC_FETCH_YREG_2ND_U64': (McBlock.parseMcGeneric, False, False, False, ),3097 3096 'IEM_MC_FETCH_YREG_U128': (McBlock.parseMcGeneric, False, False, False, ), 3098 3097 'IEM_MC_FETCH_YREG_U256': (McBlock.parseMcGeneric, False, False, False, ), -
trunk/src/VBox/VMM/VMMAll/IEMAllInstVexMap1.cpp.h
r103696 r103787 958 958 IEM_MC_ACTUALIZE_AVX_STATE_FOR_READ(); 959 959 960 IEM_MC_FETCH_YREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm) );960 IEM_MC_FETCH_YREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iQWord*/); 961 961 IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc); 962 962 … … 1322 1322 IEM_MC_ACTUALIZE_AVX_STATE_FOR_READ(); 1323 1323 1324 IEM_MC_FETCH_YREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm) );1324 IEM_MC_FETCH_YREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iQWord*/); 1325 1325 IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc); 1326 1326 … … 1369 1369 IEM_MC_ACTUALIZE_AVX_STATE_FOR_READ(); 1370 1370 1371 IEM_MC_FETCH_YREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm) );1371 IEM_MC_FETCH_YREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iQWord*/); 1372 1372 IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc); 1373 1373 … … 1676 1676 IEM_MC_ACTUALIZE_AVX_STATE_FOR_READ(); 1677 1677 1678 IEM_MC_FETCH_YREG_ 2ND_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm));1678 IEM_MC_FETCH_YREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), 1 /*a_iQWord*/); 1679 1679 IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc); 1680 1680 … … 1722 1722 IEM_MC_ACTUALIZE_AVX_STATE_FOR_READ(); 1723 1723 1724 IEM_MC_FETCH_YREG_ 2ND_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm));1724 IEM_MC_FETCH_YREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), 1 /*a_iQWord*/); 1725 1725 IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc); 1726 1726 … … 4065 4065 IEM_MC_ACTUALIZE_AVX_STATE_FOR_READ(); 4066 4066 4067 IEM_MC_FETCH_YREG_U64(u64Tmp, IEM_GET_MODRM_REG(pVCpu, bRm) );4067 IEM_MC_FETCH_YREG_U64(u64Tmp, IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iQWord*/); 4068 4068 IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_RM(pVCpu, bRm), u64Tmp); 4069 4069 … … 4083 4083 IEM_MC_ACTUALIZE_AVX_STATE_FOR_READ(); 4084 4084 4085 IEM_MC_FETCH_YREG_U64(u64Tmp, IEM_GET_MODRM_REG(pVCpu, bRm) );4085 IEM_MC_FETCH_YREG_U64(u64Tmp, IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iQWord*/); 4086 4086 IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, u64Tmp); 4087 4087 … … 4941 4941 IEM_MC_ACTUALIZE_AVX_STATE_FOR_READ(); 4942 4942 4943 IEM_MC_FETCH_YREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm) );4943 IEM_MC_FETCH_YREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iQWord*/); 4944 4944 IEM_MC_STORE_MEM_U64(pVCpu->iem.s.iEffSeg, GCPtrEffSrc, uSrc); 4945 4945 -
trunk/src/VBox/VMM/VMMAll/IEMAllN8veLiveness.cpp
r103778 r103787 711 711 712 712 #define IEM_MC_FETCH_YREG_U32(a_u32Dst, a_iYRegSrc) NOP() 713 #define IEM_MC_FETCH_YREG_U64(a_u64Dst, a_iYRegSrc) NOP() 714 #define IEM_MC_FETCH_YREG_2ND_U64(a_u64Dst, a_iYRegSrc) NOP() 713 #define IEM_MC_FETCH_YREG_U64(a_u64Dst, a_iYRegSrc, a_iQWord) NOP() 715 714 #define IEM_MC_FETCH_YREG_U128(a_u128Dst, a_iYRegSrc) NOP() 716 715 #define IEM_MC_FETCH_YREG_U256(a_u256Dst, a_iYRegSrc) NOP() -
trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompiler.cpp
r103784 r103787 15299 15299 15300 15300 15301 #define IEM_MC_FETCH_YREG_U64(a_u64Dst, a_iYRegSrc ) \15302 off = iemNativeEmitSimdFetchYregU64(pReNative, off, a_u64Dst, a_iYRegSrc, 0)15301 #define IEM_MC_FETCH_YREG_U64(a_u64Dst, a_iYRegSrc, a_iQWord) \ 15302 off = iemNativeEmitSimdFetchYregU64(pReNative, off, a_u64Dst, a_iYRegSrc, a_iQWord) 15303 15303 15304 15304 /** Emits code for IEM_MC_FETCH_YREG_U64. */ -
trunk/src/VBox/VMM/VMMAll/IEMAllThrdPython.py
r103778 r103787 1809 1809 'IEM_MC_FETCH_YREG_U128': '__yreg128', 1810 1810 'IEM_MC_FETCH_YREG_U64': '__yreg64', 1811 'IEM_MC_FETCH_YREG_2ND_U64': '__yreg64',1812 1811 'IEM_MC_FETCH_YREG_U32': '__yreg32', 1813 1812 'IEM_MC_STORE_YREG_U128': '__yreg128', -
trunk/src/VBox/VMM/include/IEMMc.h
r103778 r103787 611 611 (a_u32Dst) = pVCpu->cpum.GstCtx.XState.x87.aXMM[iYRegSrcTmp].au32[0]; \ 612 612 } while (0) 613 #define IEM_MC_FETCH_YREG_U64(a_u64Dst, a_iYRegSrc ) \613 #define IEM_MC_FETCH_YREG_U64(a_u64Dst, a_iYRegSrc, a_iQWord) \ 614 614 do { uintptr_t const iYRegSrcTmp = (a_iYRegSrc); \ 615 (a_u64Dst) = pVCpu->cpum.GstCtx.XState.x87.aXMM[iYRegSrcTmp].au64[0]; \ 616 } while (0) 617 #define IEM_MC_FETCH_YREG_2ND_U64(a_u64Dst, a_iYRegSrc) \ 618 do { uintptr_t const iYRegSrcTmp = (a_iYRegSrc); \ 619 (a_u64Dst) = pVCpu->cpum.GstCtx.XState.x87.aXMM[iYRegSrcTmp].au64[1]; \ 615 (a_u64Dst) = pVCpu->cpum.GstCtx.XState.x87.aXMM[iYRegSrcTmp].au64[(a_iQWord)]; \ 620 616 } while (0) 621 617 #define IEM_MC_FETCH_YREG_U128(a_u128Dst, a_iYRegSrc) \ -
trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp
r103778 r103787 838 838 #define IEM_MC_FETCH_YREG_U256(a_u256Value, a_iYRegSrc) do { CHK_YREG_IDX(a_iYRegSrc); CHK_VAR(a_u256Value); (a_u256Value).au64[0] = (a_u256Value).au64[1] = (a_u256Value).au64[2] = (a_u256Value).au64[3] = 0; CHK_TYPE(RTUINT256U, a_u256Value); (void)fAvxRead; (void)fMcBegin; } while (0) 839 839 #define IEM_MC_FETCH_YREG_U128(a_u128Value, a_iYRegSrc) do { CHK_YREG_IDX(a_iYRegSrc); CHK_VAR(a_u128Value); (a_u128Value).au64[0] = (a_u128Value).au64[1] = 0; CHK_TYPE(RTUINT128U, a_u128Value); (void)fAvxRead; (void)fMcBegin; } while (0) 840 #define IEM_MC_FETCH_YREG_U64(a_u64Value, a_iYRegSrc) do { CHK_YREG_IDX(a_iYRegSrc); CHK_VAR(a_u64Value); (a_u64Value) = UINT64_MAX; CHK_TYPE(uint64_t, a_u64Value); (void)fAvxRead; (void)fMcBegin; } while (0) 841 #define IEM_MC_FETCH_YREG_2ND_U64(a_u64Value, a_iYRegSrc) do { CHK_YREG_IDX(a_iYRegSrc); CHK_VAR(a_u64Value); (a_u64Value) = UINT64_MAX; CHK_TYPE(uint64_t, a_u64Value); (void)fAvxRead; (void)fMcBegin; } while (0) 840 #define IEM_MC_FETCH_YREG_U64(a_u64Value, a_iYRegSrc, a_iQWord) do { CHK_YREG_IDX(a_iYRegSrc); CHK_VAR(a_u64Value); (a_u64Value) = UINT64_MAX; CHK_TYPE(uint64_t, a_u64Value); (void)fAvxRead; (void)fMcBegin; } while (0) 842 841 #define IEM_MC_FETCH_YREG_U32(a_u32Value, a_iYRegSrc) do { CHK_YREG_IDX(a_iYRegSrc); CHK_VAR(a_u32Value); (a_u32Value) = UINT32_MAX; CHK_TYPE(uint32_t, a_u32Value); (void)fAvxRead; (void)fMcBegin; } while (0) 843 842 #define IEM_MC_STORE_YREG_U128(a_iYRegDst, a_iDQword, a_u128Value) do { CHK_YREG_IDX(a_iYRegDst); CHK_VAR(a_u128Value); CHK_TYPE(RTUINT128U, a_u128Value); (void)fAvxWrite; (void)fMcBegin; } while (0)
Note:
See TracChangeset
for help on using the changeset viewer.