Changeset 102409 in vbox for trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompiler.cpp
- Timestamp:
- Nov 30, 2023 11:57:01 PM (14 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompiler.cpp
r102397 r102409 7987 7987 (uintptr_t)iemNativeHlpMemFlatStoreDataU64, pCallEntry->idxInstr) 7988 7988 7989 7990 7991 #define IEM_MC_STORE_MEM_U8_CONST(a_iSeg, a_GCPtrMem, a_u8ConstValue) \ 7992 off = iemNativeEmitMemStoreConstDataCommon(pReNative, off, a_u8ConstValue, a_iSeg, a_GCPtrMem, sizeof(uint8_t), \ 7993 (uintptr_t)iemNativeHlpMemStoreDataU8, pCallEntry->idxInstr) 7994 7995 #define IEM_MC_STORE_MEM_U16_CONST(a_iSeg, a_GCPtrMem, a_u16ConstValue) \ 7996 off = iemNativeEmitMemStoreConstDataCommon(pReNative, off, a_u16ConstValue, a_iSeg, a_GCPtrMem, sizeof(uint16_t), \ 7997 (uintptr_t)iemNativeHlpMemStoreDataU16, pCallEntry->idxInstr) 7998 7999 #define IEM_MC_STORE_MEM_U32_CONST(a_iSeg, a_GCPtrMem, a_u32ConstValue) \ 8000 off = iemNativeEmitMemStoreConstDataCommon(pReNative, off, a_u32ConstValue, a_iSeg, a_GCPtrMem, sizeof(uint32_t), \ 8001 (uintptr_t)iemNativeHlpMemStoreDataU32, pCallEntry->idxInstr) 8002 8003 #define IEM_MC_STORE_MEM_U64_CONST(a_iSeg, a_GCPtrMem, a_u64ConstValue) \ 8004 off = iemNativeEmitMemStoreConstDataCommon(pReNative, off, a_u64ConstValue, a_iSeg, a_GCPtrMem, sizeof(uint64_t), \ 8005 (uintptr_t)iemNativeHlpMemStoreDataU64, pCallEntry->idxInstr) 8006 8007 8008 #define IEM_MC_STORE_MEM_FLAT_U8_CONST(a_GCPtrMem, a_u8ConstValue) \ 8009 off = iemNativeEmitMemStoreConstDataCommon(pReNative, off, a_u8ConstValue, UINT8_MAX, a_GCPtrMem, sizeof(uint8_t), \ 8010 (uintptr_t)iemNativeHlpMemFlatStoreDataU8, pCallEntry->idxInstr) 8011 8012 #define IEM_MC_STORE_MEM_FLAT_U16_CONST(a_GCPtrMem, a_u16ConstValue) \ 8013 off = iemNativeEmitMemStoreConstDataCommon(pReNative, off, a_u16ConstValue, UINT8_MAX, a_GCPtrMem, sizeof(uint16_t), \ 8014 (uintptr_t)iemNativeHlpMemFlatStoreDataU16, pCallEntry->idxInstr) 8015 8016 #define IEM_MC_STORE_MEM_FLAT_U32_CONST(a_GCPtrMem, a_u32ConstValue) \ 8017 off = iemNativeEmitMemStoreConstDataCommon(pReNative, off, a_u32ConstValue, UINT8_MAX, a_GCPtrMem, sizeof(uint32_t), \ 8018 (uintptr_t)iemNativeHlpMemFlatStoreDataU32, pCallEntry->idxInstr) 8019 8020 #define IEM_MC_STORE_MEM_FLAT_U64_CONST(_GCPtrMem, a_u64ConstValue) \ 8021 off = iemNativeEmitMemStoreConstDataCommon(pReNative, off, a_u64ConstValue, UINT8_MAX, a_GCPtrMem, sizeof(uint64_t), \ 8022 (uintptr_t)iemNativeHlpMemFlatStoreDataU64, pCallEntry->idxInstr) 8023 8024 /** Emits code for IEM_MC_STORE_MEM_U8/16/32/64_CONST and 8025 * IEM_MC_STORE_MEM_FLAT_U8/16/32/64_CONST (with iSegReg = UINT8_MAX). */ 8026 DECL_INLINE_THROW(uint32_t) 8027 iemNativeEmitMemStoreConstDataCommon(PIEMRECOMPILERSTATE pReNative, uint32_t off, uint64_t uValueConst, uint8_t iSegReg, 8028 uint8_t idxVarGCPtrMem, uint8_t cbMem, uintptr_t pfnFunction, uint8_t idxInstr) 8029 { 8030 /* 8031 * Create a temporary const variable and call iemNativeEmitMemFetchStoreDataCommon 8032 * to do the grunt work. 8033 */ 8034 uint8_t const idxVarConstValue = iemNativeVarAllocConst(pReNative, cbMem, uValueConst); 8035 off = iemNativeEmitMemFetchStoreDataCommon(pReNative, off, idxVarConstValue, iSegReg, idxVarGCPtrMem, cbMem, 8036 false /*fFetch*/, pfnFunction, idxInstr); 8037 iemNativeVarFreeLocal(pReNative, idxVarConstValue); 8038 return off; 8039 } 7989 8040 7990 8041
Note:
See TracChangeset
for help on using the changeset viewer.