Changeset 102397 in vbox
- Timestamp:
- Nov 30, 2023 1:53:54 PM (16 months ago)
- svn:sync-xref-src-repo-rev:
- 160538
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstOneByte.cpp.h
r102349 r102397 8518 8518 uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm); 8519 8519 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 8520 IEM_MC_STORE_MEM_U8 (pVCpu->iem.s.iEffSeg, GCPtrEffDst, u8Imm);8520 IEM_MC_STORE_MEM_U8_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u8Imm); 8521 8521 IEM_MC_ADVANCE_RIP_AND_FINISH(); 8522 8522 IEM_MC_END(); … … 8581 8581 uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm); 8582 8582 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 8583 IEM_MC_STORE_MEM_U16 (pVCpu->iem.s.iEffSeg, GCPtrEffDst, u16Imm);8583 IEM_MC_STORE_MEM_U16_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u16Imm); 8584 8584 IEM_MC_ADVANCE_RIP_AND_FINISH(); 8585 8585 IEM_MC_END(); … … 8592 8592 uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm); 8593 8593 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 8594 IEM_MC_STORE_MEM_U32 (pVCpu->iem.s.iEffSeg, GCPtrEffDst, u32Imm);8594 IEM_MC_STORE_MEM_U32_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u32Imm); 8595 8595 IEM_MC_ADVANCE_RIP_AND_FINISH(); 8596 8596 IEM_MC_END(); … … 8603 8603 uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm); 8604 8604 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 8605 IEM_MC_STORE_MEM_U64 (pVCpu->iem.s.iEffSeg, GCPtrEffDst, u64Imm);8605 IEM_MC_STORE_MEM_U64_CONST(pVCpu->iem.s.iEffSeg, GCPtrEffDst, u64Imm); 8606 8606 IEM_MC_ADVANCE_RIP_AND_FINISH(); 8607 8607 IEM_MC_END(); -
trunk/src/VBox/VMM/VMMAll/IEMAllInstPython.py
r102394 r102397 3144 3144 'IEM_MC_STORE_MEM_U128': (McBlock.parseMcGeneric, True, False, ), 3145 3145 'IEM_MC_STORE_MEM_U128_ALIGN_SSE': (McBlock.parseMcGeneric, True, False, ), 3146 'IEM_MC_STORE_MEM_U16': (McBlock.parseMcGeneric, True, False,),3146 'IEM_MC_STORE_MEM_U16': (McBlock.parseMcGeneric, True, True, ), 3147 3147 'IEM_MC_STORE_MEM_U16_CONST': (McBlock.parseMcGeneric, True, False, ), 3148 3148 'IEM_MC_STORE_MEM_U256': (McBlock.parseMcGeneric, True, False, ), 3149 3149 'IEM_MC_STORE_MEM_U256_ALIGN_AVX': (McBlock.parseMcGeneric, True, False, ), 3150 'IEM_MC_STORE_MEM_U32': (McBlock.parseMcGeneric, True, False,),3150 'IEM_MC_STORE_MEM_U32': (McBlock.parseMcGeneric, True, True, ), 3151 3151 'IEM_MC_STORE_MEM_U32_CONST': (McBlock.parseMcGeneric, True, False, ), 3152 'IEM_MC_STORE_MEM_U64': (McBlock.parseMcGeneric, True, False,),3152 'IEM_MC_STORE_MEM_U64': (McBlock.parseMcGeneric, True, True, ), 3153 3153 'IEM_MC_STORE_MEM_U64_CONST': (McBlock.parseMcGeneric, True, False, ), 3154 'IEM_MC_STORE_MEM_U8': (McBlock.parseMcGeneric, True, False,),3154 'IEM_MC_STORE_MEM_U8': (McBlock.parseMcGeneric, True, True, ), 3155 3155 'IEM_MC_STORE_MEM_U8_CONST': (McBlock.parseMcGeneric, True, False, ), 3156 3156 'IEM_MC_STORE_MREG_U32_ZX_U64': (McBlock.parseMcGeneric, True, False, ), -
trunk/src/VBox/VMM/VMMAll/IEMAllN8vePython.py
r102351 r102397 156 156 'IEM_MC_STORE_MEM_FLAT_U128_ALIGN_SSE': (None, True, False, ), 157 157 'IEM_MC_STORE_MEM_FLAT_U128': (None, True, False, ), 158 'IEM_MC_STORE_MEM_FLAT_U16': (None, True, False, ), 158 'IEM_MC_STORE_MEM_FLAT_U16': (None, True, True, ), 159 'IEM_MC_STORE_MEM_FLAT_U16_CONST': (None, True, False, ), 159 160 'IEM_MC_STORE_MEM_FLAT_U256_ALIGN_AVX': (None, True, False, ), 160 161 'IEM_MC_STORE_MEM_FLAT_U256': (None, True, False, ), 161 'IEM_MC_STORE_MEM_FLAT_U32': (None, True, False, ), 162 'IEM_MC_STORE_MEM_FLAT_U64': (None, True, False, ), 162 'IEM_MC_STORE_MEM_FLAT_U32': (None, True, True, ), 163 'IEM_MC_STORE_MEM_FLAT_U32_CONST': (None, True, False, ), 164 'IEM_MC_STORE_MEM_FLAT_U64': (None, True, True, ), 165 'IEM_MC_STORE_MEM_FLAT_U64_CONST': (None, True, False, ), 166 'IEM_MC_STORE_MEM_FLAT_U8': (None, True, True, ), 163 167 'IEM_MC_STORE_MEM_FLAT_U8_CONST': (None, True, False, ), 164 'IEM_MC_STORE_MEM_FLAT_U8': (None, True, False, ),165 168 166 169 # Flat Stack: -
trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompiler.cpp
r102395 r102397 7958 7958 (uintptr_t)iemNativeHlpMemStoreDataU8, pCallEntry->idxInstr) 7959 7959 7960 #define IEM_MC_STORE_MEM_U16(a_iSeg, a_GCPtrMem, a_u16 Dst) \7960 #define IEM_MC_STORE_MEM_U16(a_iSeg, a_GCPtrMem, a_u16Value) \ 7961 7961 off = iemNativeEmitMemFetchStoreDataCommon(pReNative, off, a_u16Value, a_iSeg, a_GCPtrMem, sizeof(uint16_t), false /*fFetch*/, \ 7962 7962 (uintptr_t)iemNativeHlpMemStoreDataU16, pCallEntry->idxInstr) … … 7972 7972 7973 7973 #define IEM_MC_STORE_MEM_FLAT_U8(a_GCPtrMem, a_u8Value) \ 7974 off = iemNativeEmitMemFetchStoreDataCommon(pReNative, off, a_u8Value, a_iSeg, a_GCPtrMem, sizeof(uint8_t), false /*fFetch*/, \7974 off = iemNativeEmitMemFetchStoreDataCommon(pReNative, off, a_u8Value, UINT8_MAX, a_GCPtrMem, sizeof(uint8_t), false /*fFetch*/, \ 7975 7975 (uintptr_t)iemNativeHlpMemFlatStoreDataU8, pCallEntry->idxInstr) 7976 7976 7977 7977 #define IEM_MC_STORE_MEM_FLAT_U16(a_GCPtrMem, a_u16Value) \ 7978 off = iemNativeEmitMemFetchStoreDataCommon(pReNative, off, a_u16Value, a_iSeg, a_GCPtrMem, sizeof(uint16_t), false /*fFetch*/, \7978 off = iemNativeEmitMemFetchStoreDataCommon(pReNative, off, a_u16Value, UINT8_MAX, a_GCPtrMem, sizeof(uint16_t), false /*fFetch*/, \ 7979 7979 (uintptr_t)iemNativeHlpMemFlatStoreDataU16, pCallEntry->idxInstr) 7980 7980 7981 7981 #define IEM_MC_STORE_MEM_FLAT_U32(a_GCPtrMem, a_u32Value) \ 7982 off = iemNativeEmitMemFetchStoreDataCommon(pReNative, off, a_u32Value, a_iSeg, a_GCPtrMem, sizeof(uint32_t), false /*fFetch*/, \7982 off = iemNativeEmitMemFetchStoreDataCommon(pReNative, off, a_u32Value, UINT8_MAX, a_GCPtrMem, sizeof(uint32_t), false /*fFetch*/, \ 7983 7983 (uintptr_t)iemNativeHlpMemFlatStoreDataU32, pCallEntry->idxInstr) 7984 7984 7985 7985 #define IEM_MC_STORE_MEM_FLAT_U64(a_GCPtrMem, a_u64Value) \ 7986 off = iemNativeEmitMemFetchStoreDataCommon(pReNative, off, a_u64Value, a_iSeg, a_GCPtrMem, sizeof(uint64_t), false /*fFetch*/, \7986 off = iemNativeEmitMemFetchStoreDataCommon(pReNative, off, a_u64Value, UINT8_MAX, a_GCPtrMem, sizeof(uint64_t), false /*fFetch*/, \ 7987 7987 (uintptr_t)iemNativeHlpMemFlatStoreDataU64, pCallEntry->idxInstr) 7988 7988 -
trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp
r102035 r102397 901 901 do { CHK_XREG_IDX(a_iXReg1); (void)fSseRead; CHK_SEG_IDX(a_iSeg2); CHK_GCPTR(a_GCPtrMem2); CHK_VAR(a_GCPtrMem2); CHK_VAR(a_Dst); CHK_TYPE(IEMPCMPESTRXSRC, a_Dst); (void)fMcBegin; } while (0) 902 902 903 #define IEM_MC_STORE_MEM_U8(a_iSeg, a_GCPtrMem, a_u8Value) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_TYPE(uint8_t, a_u8Value); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0)904 #define IEM_MC_STORE_MEM_U16(a_iSeg, a_GCPtrMem, a_u16Value) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_TYPE(uint16_t, a_u16Value); 905 #define IEM_MC_STORE_MEM_U32(a_iSeg, a_GCPtrMem, a_u32Value) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_TYPE(uint32_t, a_u32Value); 906 #define IEM_MC_STORE_MEM_U64(a_iSeg, a_GCPtrMem, a_u64Value) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_TYPE(uint64_t, a_u64Value); 907 #define IEM_MC_STORE_MEM_U8_CONST(a_iSeg, a_GCPtrMem, a_u8C) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_CONST(uint8_t, a_u8C);(void)fMcBegin; } while (0)908 #define IEM_MC_STORE_MEM_U16_CONST(a_iSeg, a_GCPtrMem, a_u16C) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_CONST(uint16_t, a_u16C);(void)fMcBegin; } while (0)909 #define IEM_MC_STORE_MEM_U32_CONST(a_iSeg, a_GCPtrMem, a_u32C) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_CONST(uint32_t, a_u32C);(void)fMcBegin; } while (0)910 #define IEM_MC_STORE_MEM_U64_CONST(a_iSeg, a_GCPtrMem, a_u64C) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_CONST(uint64_t, a_u64C);(void)fMcBegin; } while (0)903 #define IEM_MC_STORE_MEM_U8(a_iSeg, a_GCPtrMem, a_u8Value) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_TYPE(uint8_t, a_u8Value); CHK_VAR(a_u8Value); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0) 904 #define IEM_MC_STORE_MEM_U16(a_iSeg, a_GCPtrMem, a_u16Value) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_TYPE(uint16_t, a_u16Value); CHK_VAR(a_u16Value); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0) 905 #define IEM_MC_STORE_MEM_U32(a_iSeg, a_GCPtrMem, a_u32Value) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_TYPE(uint32_t, a_u32Value); CHK_VAR(a_u32Value); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0) 906 #define IEM_MC_STORE_MEM_U64(a_iSeg, a_GCPtrMem, a_u64Value) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); CHK_TYPE(uint64_t, a_u64Value); CHK_VAR(a_u64Value); CHK_SEG_IDX(a_iSeg); (void)fMcBegin; } while (0) 907 #define IEM_MC_STORE_MEM_U8_CONST(a_iSeg, a_GCPtrMem, a_u8C) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); uint8_t const uTmp = (a_u8C); RT_NOREF(uTmp); (void)fMcBegin; } while (0) 908 #define IEM_MC_STORE_MEM_U16_CONST(a_iSeg, a_GCPtrMem, a_u16C) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); uint16_t const uTmp = (a_u16C); RT_NOREF(uTmp); (void)fMcBegin; } while (0) 909 #define IEM_MC_STORE_MEM_U32_CONST(a_iSeg, a_GCPtrMem, a_u32C) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); uint32_t const uTmp = (a_u32C); RT_NOREF(uTmp); (void)fMcBegin; } while (0) 910 #define IEM_MC_STORE_MEM_U64_CONST(a_iSeg, a_GCPtrMem, a_u64C) do { CHK_SEG_IDX(a_iSeg); CHK_GCPTR(a_GCPtrMem); CHK_VAR(a_GCPtrMem); uint64_t const uTmp = (a_u64C); RT_NOREF(uTmp); (void)fMcBegin; } while (0) 911 911 #define IEM_MC_STORE_MEM_I8_CONST_BY_REF( a_pi8Dst, a_i8C) do { CHK_VAR(a_pi8Dst); CHK_TYPE(int8_t *, a_pi8Dst); CHK_CONST(int8_t, a_i8C); (void)fMcBegin; } while (0) 912 912 #define IEM_MC_STORE_MEM_I16_CONST_BY_REF(a_pi16Dst, a_i16C) do { CHK_VAR(a_pi16Dst); CHK_TYPE(int16_t *, a_pi16Dst); CHK_CONST(int16_t, a_i16C); (void)fMcBegin; } while (0)
Note:
See TracChangeset
for help on using the changeset viewer.