- Timestamp:
- Oct 17, 2024 12:31:32 PM (4 months ago)
- svn:sync-xref-src-repo-rev:
- 165264
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompFuncs.h
r106443 r106445 7390 7390 : iemNativeVarRegisterAcquire(pReNative, idxVarValue, &off); 7391 7391 #endif 7392 IEMNATIVEEMITTLBSTATE const TlbState(pReNative, &off, idxVarGCPtrMem, iSegReg, a_ cbMem, offDisp);7392 IEMNATIVEEMITTLBSTATE const TlbState(pReNative, &off, idxVarGCPtrMem, iSegReg, a_fFlat, a_cbMem, offDisp); 7393 7393 7394 7394 #ifdef IEMNATIVE_WITH_SIMD_REG_ALLOCATOR … … 8522 8522 if (idxRegEfl != UINT8_MAX) 8523 8523 { 8524 # ifdef ARCH_AMD648524 # ifdef ARCH_AMD64 8525 8525 off = iemNativeEmitLoadGprFromGpr32(pReNative, off, TlbState.idxReg1, idxRegEfl); 8526 8526 off = iemNativeEmitAndGpr32ByImm(pReNative, off, TlbState.idxReg1, 8527 8527 UINT32_C(0xffff0000) & ~X86_EFL_RAZ_MASK); 8528 # else8528 # else 8529 8529 off = iemNativeEmitGpr32EqGprAndImmEx(iemNativeInstrBufEnsure(pReNative, off, 3), 8530 8530 off, TlbState.idxReg1, idxRegEfl, 8531 8531 UINT32_C(0xffff0000) & ~X86_EFL_RAZ_MASK); 8532 # endif8532 # endif 8533 8533 iemNativeRegFreeTmp(pReNative, idxRegEfl); 8534 8534 } … … 9341 9341 ? iemNativeVarRegisterSetAndAcquire(pReNative, idxVarMem, IEMNATIVE_CALL_RET_GREG, &off) 9342 9342 : iemNativeVarRegisterAcquire(pReNative, idxVarMem, &off); 9343 IEMNATIVEEMITTLBSTATE const TlbState(pReNative, &off, idxVarGCPtrMem, iSegReg, a_ cbMem);9343 IEMNATIVEEMITTLBSTATE const TlbState(pReNative, &off, idxVarGCPtrMem, iSegReg, a_fFlat, a_cbMem); 9344 9344 uint32_t const idxLabelTlbLookup = !TlbState.fSkip 9345 9345 ? iemNativeLabelCreate(pReNative, kIemNativeLabelType_TlbLookup, UINT32_MAX, uTlbSeqNo) -
trunk/src/VBox/VMM/include/IEMN8veRecompilerTlbLookup.h
r106443 r106445 95 95 96 96 IEMNATIVEEMITTLBSTATE(PIEMRECOMPILERSTATE a_pReNative, uint32_t *a_poff, uint8_t a_idxVarGCPtrMem, 97 uint8_t a_iSegReg, uint8_t a_cbMem, uint8_t a_offDisp = 0)97 uint8_t const a_iSegReg, bool const a_fFlat, uint8_t const a_cbMem, uint8_t const a_offDisp = 0) 98 98 #ifdef IEMNATIVE_WITH_TLB_LOOKUP 99 99 /* 32-bit and 64-bit wraparound will require special handling, so skip these for absolute addresses. */ … … 123 123 IEMNATIVE_CALL_ARG2_GREG) 124 124 : idxRegPtrHlp) 125 , idxRegSegBase(a_ iSegReg == UINT8_MAX || fSkip125 , idxRegSegBase(a_fFlat || a_iSegReg == UINT8_MAX || fSkip 126 126 ? UINT8_MAX 127 127 : iemNativeRegAllocTmpForGuestReg(a_pReNative, a_poff, IEMNATIVEGSTREG_SEG_BASE(a_iSegReg))) 128 , idxRegSegLimit( (a_iSegReg == UINT8_MAX || (a_pReNative->fExec & IEM_F_MODE_CPUMODE_MASK) == IEMMODE_64BIT)|| fSkip128 , idxRegSegLimit(a_fFlat || a_iSegReg == UINT8_MAX || (a_pReNative->fExec & IEM_F_MODE_CPUMODE_MASK) == IEMMODE_64BIT || fSkip 129 129 ? UINT8_MAX 130 130 : iemNativeRegAllocTmpForGuestReg(a_pReNative, a_poff, IEMNATIVEGSTREG_SEG_LIMIT(a_iSegReg))) 131 , idxRegSegAttrib( (a_iSegReg == UINT8_MAX || (a_pReNative->fExec & IEM_F_MODE_CPUMODE_MASK) == IEMMODE_64BIT)|| fSkip131 , idxRegSegAttrib(a_fFlat || a_iSegReg == UINT8_MAX || (a_pReNative->fExec & IEM_F_MODE_CPUMODE_MASK) == IEMMODE_64BIT || fSkip 132 132 ? UINT8_MAX 133 133 : iemNativeRegAllocTmpForGuestReg(a_pReNative, a_poff, IEMNATIVEGSTREG_SEG_ATTRIB(a_iSegReg))) … … 148 148 149 149 { 150 RT_NOREF(a_cbMem, a_offDisp); 150 Assert(a_fFlat ? a_iSegReg == UINT8_MAX : a_iSegReg != UINT8_MAX); 151 RT_NOREF(a_offDisp); 151 152 } 152 153
Note:
See TracChangeset
for help on using the changeset viewer.