Changeset 103834 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Mar 13, 2024 3:32:59 PM (9 months ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstPython.py
r103828 r103834 2997 2997 'IEM_MC_CLEAR_FSW_EX': (McBlock.parseMcGeneric, True, True, False, ), 2998 2998 'IEM_MC_CLEAR_HIGH_GREG_U64': (McBlock.parseMcGeneric, True, True, True, ), 2999 'IEM_MC_CLEAR_XREG_U32_MASK': (McBlock.parseMcGeneric, True, True, False,),2999 'IEM_MC_CLEAR_XREG_U32_MASK': (McBlock.parseMcGeneric, True, True, g_fNativeSimd), 3000 3000 'IEM_MC_CLEAR_YREG_128_UP': (McBlock.parseMcGeneric, True, True, g_fNativeSimd), 3001 3001 'IEM_MC_COMMIT_EFLAGS': (McBlock.parseMcGeneric, True, True, True, ), -
trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompFuncs.h
r103828 r103834 7105 7105 } 7106 7106 7107 7108 #define IEM_MC_CLEAR_XREG_U32_MASK(a_iXReg, a_bMask) \ 7109 off = iemNativeEmitSimdClearXregU32Mask(pReNative, off, a_iXReg, a_bMask) 7110 7111 7112 /** Emits code for IEM_MC_CLEAR_XREG_U32_MASK. */ 7113 DECL_INLINE_THROW(uint32_t) 7114 iemNativeEmitSimdClearXregU32Mask(PIEMRECOMPILERSTATE pReNative, uint32_t off, uint8_t iXReg, uint8_t bImm8Mask) 7115 { 7116 uint8_t const idxSimdRegDst = iemNativeSimdRegAllocTmpForGuestSimdReg(pReNative, &off, IEMNATIVEGSTSIMDREG_SIMD(iXReg), 7117 kIemNativeGstSimdRegLdStSz_Low128, kIemNativeGstRegUse_ForUpdate); 7118 7119 /** @todo r=aeichner For certain bit combinations we could reduce the number of emitted instructions. */ 7120 if (bImm8Mask & RT_BIT(0)) 7121 off = iemNativeEmitSimdZeroVecRegElemU32(pReNative, off, idxSimdRegDst, 0 /*iDWord*/); 7122 if (bImm8Mask & RT_BIT(1)) 7123 off = iemNativeEmitSimdZeroVecRegElemU32(pReNative, off, idxSimdRegDst, 1 /*iDWord*/); 7124 if (bImm8Mask & RT_BIT(2)) 7125 off = iemNativeEmitSimdZeroVecRegElemU32(pReNative, off, idxSimdRegDst, 2 /*iDWord*/); 7126 if (bImm8Mask & RT_BIT(3)) 7127 off = iemNativeEmitSimdZeroVecRegElemU32(pReNative, off, idxSimdRegDst, 3 /*iDWord*/); 7128 IEMNATIVE_SIMD_REG_STATE_SET_DIRTY_LO_U128(pReNative, iXReg); 7129 7130 /* Free but don't flush the destination register. */ 7131 iemNativeSimdRegFreeTmp(pReNative, idxSimdRegDst); 7132 7133 return off; 7134 } 7135 7107 7136 #endif /* IEMNATIVE_WITH_SIMD_REG_ALLOCATOR */ 7108 7137
Note:
See TracChangeset
for help on using the changeset viewer.