VirtualBox

Changeset 100109 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Jun 7, 2023 8:21:40 PM (21 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
157802
Message:

VMM/IEM: Make it compile and link again with VBOX_WITH_IEM_RECOMPILER=1. bugref:10369

Location:
trunk/src/VBox/VMM/VMMAll
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp

    r100052 r100109  
    98419841
    98429842
    9843 #ifdef VBOX_WITH_NESTED_HWVIRT_VMX_EPT
     9843#if defined(VBOX_WITH_NESTED_HWVIRT_VMX_EPT) || defined(VBOX_WITH_IEM_RECOMPILER) /* HACK ALERT: Linking trick. */
    98449844/**
    98459845 * Implements 'INVEPT'.
     
    98479847IEM_CIMPL_DEF_3(iemCImpl_invept, uint8_t, iEffSeg, RTGCPTR, GCPtrInveptDesc, uint64_t, uInveptType)
    98489848{
     9849# ifdef VBOX_WITH_NESTED_HWVIRT_VMX_EPT
    98499850    return iemVmxInvept(pVCpu, cbInstr, iEffSeg, GCPtrInveptDesc, uInveptType, NULL /* pExitInfo */);
     9851# else
     9852    RT_NOREF(pVCpu, cbInstr, iEffSeg, GCPtrInveptDesc, uInveptType);
     9853    AssertFailedReturn(VERR_IEM_ASPECT_NOT_IMPLEMENTED);
     9854# endif
    98509855}
    98519856#endif
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThreadedRecompiler.cpp

    r100072 r100109  
    268268 */
    269269
    270 static VBOXSTRICTRC iemThreadedCompile(PVMCCV pVM, PVMCPUCC pVCpu)
    271 {
    272     RT_NOREF(pVM, pVCpu, pTb);
     270static VBOXSTRICTRC iemThreadedCompile(PVMCC pVM, PVMCPUCC pVCpu)
     271{
     272    RT_NOREF(pVM, pVCpu);
    273273    return VERR_NOT_IMPLEMENTED;
    274274}
    275275
    276276
    277 static VBOXSTRICTRC iemThreadedCompileLongJumped(PVMCCV pVM, PVMCPUCC pVCpu, VBOXSTRICTRC rcStrict)
     277static VBOXSTRICTRC iemThreadedCompileLongJumped(PVMCC pVM, PVMCPUCC pVCpu, VBOXSTRICTRC rcStrict)
    278278{
    279279    RT_NOREF(pVM, pVCpu);
     
    282282
    283283
    284 static PIEMTB iemThreadedTbLookup(PVMCCV pVM, PVMCPUCC pVCpu, RTGCPHYS GCPhysPC, uint64_t uPc)
     284static PIEMTB iemThreadedTbLookup(PVMCC pVM, PVMCPUCC pVCpu, RTGCPHYS GCPhysPC, uint64_t uPc)
    285285{
    286286    RT_NOREF(pVM, pVCpu, GCPhysPC, uPc);
     
    289289
    290290
    291 static VBOXSTRICTRC iemThreadedTbExec(PVMCCV pVM, PVMCPUCC pVCpu, PIEMTB pTb)
     291static VBOXSTRICTRC iemThreadedTbExec(PVMCC pVM, PVMCPUCC pVCpu, PIEMTB pTb)
    292292{
    293293    RT_NOREF(pVM, pVCpu, pTb);
     
    309309    pVCpu->iem.s.cbInstrBufTotal  = 0;
    310310
     311    RT_NOREF(uPc, pPhys);
     312    return 0;
    311313}
    312314
     
    315317DECL_INLINE_THROW(uint64_t) iemGetPcWithPhysAndCode(PVMCPUCC pVCpu, PRTGCPHYS pPhys)
    316318{
    317     Assert(pVCpu->cpum.GstCtx.cs.u64Base == 0 || pVCpu->iem.s.enmCpuMode != IEMMODE_64BIT);
     319    Assert(pVCpu->cpum.GstCtx.cs.u64Base == 0 || !IEM_IS_64BIT_CODE(pVCpu));
    318320    uint64_t const uPc = pVCpu->cpum.GstCtx.rip + pVCpu->cpum.GstCtx.cs.u64Base;
    319321    if (pVCpu->iem.s.pbInstrBuf)
     
    361363            {
    362364                /* Translate PC to physical address, we'll need this for both lookup and compilation. */
    363                 RTGCPHYS       GCPhysPC;
    364                 uint64_t const uPC = iemGetPcWithPhysAndCode(pVCpu, &GCPhysPC);
    365 
    366                 pTb = iemThreadedTbLookup(pVM, pVCpu, GCPhysPC, uPc);
     365                RTGCPHYS       GCPhysPc;
     366                uint64_t const uPc = iemGetPcWithPhysAndCode(pVCpu, &GCPhysPc);
     367
     368                pTb = iemThreadedTbLookup(pVM, pVCpu, GCPhysPc, uPc);
    367369                if (pTb)
    368370                    rcStrict = iemThreadedTbExec(pVM, pVCpu, pTb);
    369371                else
    370                     rcStrict = iemThreadedCompile(pVM, pVCpu, GCPhysPC, uPc);
     372                    rcStrict = iemThreadedCompile(pVM, pVCpu /*, GCPhysPc, uPc*/);
    371373                if (rcStrict == VINF_SUCCESS)
    372374                { /* likely */ }
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette