VirtualBox

Changeset 66848 in vbox for trunk/src


Ignore:
Timestamp:
May 9, 2017 1:04:57 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
115309
Message:

VMM: use RT_LO/HI_U32 at certain places

Location:
trunk/src/VBox/VMM
Files:
7 edited

Legend:

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

    r66581 r66848  
    13171317
    13181318    /* Same behaviour in 32 & 64 bits mode */
    1319     pRegFrame->rax = (uint32_t)uTicks;
    1320     pRegFrame->rdx = (uTicks >> 32ULL);
     1319    pRegFrame->rax = RT_LO_U32(uTicks);
     1320    pRegFrame->rdx = RT_HI_U32(uTicks);
    13211321#ifdef VBOX_COMPARE_IEM_AND_EM
    13221322    g_fIgnoreRaxRdx = true;
     
    13531353
    13541354    /* Same behaviour in 32 & 64 bits mode */
    1355     pCtx->rax = (uint32_t)uTicks;
    1356     pCtx->rdx = (uTicks >> 32ULL);
     1355    pCtx->rax = RT_LO_U32(uTicks);
     1356    pCtx->rdx = RT_HI_U32(uTicks);
    13571357#ifdef VBOX_COMPARE_IEM_AND_EM
    13581358    g_fIgnoreRaxRdx = true;
     
    15801580        return VERR_EM_INTERPRETER;
    15811581    }
    1582     pRegFrame->rax = (uint32_t) uValue;
    1583     pRegFrame->rdx = (uint32_t)(uValue >> 32);
     1582    pRegFrame->rax = RT_LO_U32(uValue);
     1583    pRegFrame->rdx = RT_HI_U32(uValue);
    15841584    LogFlow(("EMInterpretRdmsr %s (%x) -> %RX64\n", emMSRtoString(pRegFrame->ecx), pRegFrame->ecx, uValue));
    15851585    return VINF_SUCCESS;
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h

    r66686 r66848  
    57795779     */
    57805780    uint64_t uTicks = TMCpuTickGet(pVCpu);
    5781     pCtx->rax = (uint32_t)uTicks;
    5782     pCtx->rdx = uTicks >> 32;
     5781    pCtx->rax = RT_LO_U32(uTicks);
     5782    pCtx->rdx = RT_HI_U32(uTicks);
    57835783#ifdef IEM_VERIFICATION_MODE_FULL
    57845784    pVCpu->iem.s.fIgnoreRaxRdx = true;
     
    58275827
    58285828        uint64_t uTicks = TMCpuTickGet(pVCpu);
    5829         pCtx->rax = (uint32_t)uTicks;
    5830         pCtx->rdx = uTicks >> 32;
     5829        pCtx->rax = RT_LO_U32(uTicks);
     5830        pCtx->rdx = RT_HI_U32(uTicks);
    58315831#ifdef IEM_VERIFICATION_MODE_FULL
    58325832        pVCpu->iem.s.fIgnoreRaxRdx = true;
  • trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp

    r66759 r66848  
    984984{
    985985    uint32_t aParam[8];
    986     aParam[0] = (uint32_t)(HCPhysVmcbHost);             /* Param 1: HCPhysVmcbHost - Lo. */
    987     aParam[1] = (uint32_t)(HCPhysVmcbHost >> 32);       /* Param 1: HCPhysVmcbHost - Hi. */
    988     aParam[2] = (uint32_t)(HCPhysVmcb);                 /* Param 2: HCPhysVmcb - Lo. */
    989     aParam[3] = (uint32_t)(HCPhysVmcb >> 32);           /* Param 2: HCPhysVmcb - Hi. */
     986    aParam[0] = RT_LO_U32(HCPhysVmcbHost);              /* Param 1: HCPhysVmcbHost - Lo. */
     987    aParam[1] = RT_HI_U32(HCPhysVmcbHost);              /* Param 1: HCPhysVmcbHost - Hi. */
     988    aParam[2] = RT_LO_U32(HCPhysVmcb);                  /* Param 2: HCPhysVmcb - Lo. */
     989    aParam[3] = RT_HI_U32(HCPhysVmcb);                  /* Param 2: HCPhysVmcb - Hi. */
    990990    aParam[4] = VM_RC_ADDR(pVM, pVM);
    991991    aParam[5] = 0;
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r66790 r66848  
    53995399
    54005400    uint32_t aParam[10];
    5401     aParam[0] = (uint32_t)(HCPhysCpuPage);                              /* Param 1: VMXON physical address - Lo. */
    5402     aParam[1] = (uint32_t)(HCPhysCpuPage >> 32);                        /* Param 1: VMXON physical address - Hi. */
    5403     aParam[2] = (uint32_t)(pVCpu->hm.s.vmx.HCPhysVmcs);                 /* Param 2: VMCS physical address - Lo. */
    5404     aParam[3] = (uint32_t)(pVCpu->hm.s.vmx.HCPhysVmcs >> 32);           /* Param 2: VMCS physical address - Hi. */
     5401    aParam[0] = RT_LO_U32(HCPhysCpuPage);                               /* Param 1: VMXON physical address - Lo. */
     5402    aParam[1] = RT_HI_U32(HCPhysCpuPage);                               /* Param 1: VMXON physical address - Hi. */
     5403    aParam[2] = RT_LO_U32(pVCpu->hm.s.vmx.HCPhysVmcs);                  /* Param 2: VMCS physical address - Lo. */
     5404    aParam[3] = RT_HI_U32(pVCpu->hm.s.vmx.HCPhysVmcs);                  /* Param 2: VMCS physical address - Hi. */
    54055405    aParam[4] = VM_RC_ADDR(pVM, &pVM->aCpus[pVCpu->idCpu].hm.s.vmx.VMCSCache);
    54065406    aParam[5] = 0;
     
    55835583        case VMX_VMCS64_HOST_PERF_GLOBAL_CTRL_FULL:
    55845584        {
    5585             rc  = VMXWriteVmcs32(idxField, u64Val);
    5586             rc |= VMXWriteVmcs32(idxField + 1, (uint32_t)(u64Val >> 32));
     5585            rc  = VMXWriteVmcs32(idxField,     RT_LO_U32(u64Val));
     5586            rc |= VMXWriteVmcs32(idxField + 1, RT_HI_U32(u64Val));
    55875587            break;
    55885588        }
     
    56095609        case VMX_VMCS_GUEST_SYSENTER_EIP:
    56105610        {
    5611             if (!(u64Val >> 32))
     5611            if (!(RT_HI_U32(u64Val)))
    56125612            {
    56135613                /* If this field is 64-bit, VT-x will zero out the top bits. */
    5614                 rc = VMXWriteVmcs32(idxField, (uint32_t)u64Val);
     5614                rc = VMXWriteVmcs32(idxField, RT_LO_U32(u64Val));
    56155615            }
    56165616            else
  • trunk/src/VBox/VMM/VMMR3/VMM.cpp

    r66757 r66848  
    626626        CPUMSetHyperESP(pVCpu, pVCpu->vmm.s.pbEMTStackBottomRC); /* Clear the stack. */
    627627        uint64_t u64TS = RTTimeProgramStartNanoTS();
    628         CPUMPushHyper(pVCpu, (uint32_t)(u64TS >> 32));    /* Param 4: The program startup TS - Hi. */
    629         CPUMPushHyper(pVCpu, (uint32_t)u64TS);            /* Param 4: The program startup TS - Lo. */
     628        CPUMPushHyper(pVCpu, RT_HI_U32(u64TS));           /* Param 4: The program startup TS - Hi. */
     629        CPUMPushHyper(pVCpu, RT_LO_U32(u64TS));           /* Param 4: The program startup TS - Lo. */
    630630        CPUMPushHyper(pVCpu, vmmGetBuildType());          /* Param 3: Version argument. */
    631631        CPUMPushHyper(pVCpu, VMMGetSvnRev());             /* Param 2: Version argument. */
  • trunk/src/VBox/VMM/VMMR3/VMMTests.cpp

    r63560 r66848  
    113113                                     "    MVO(%#010llx, \"MSR\", UINT64_C(%#018llx)),\n", paResults[i].uMsr, paResults[i].uValue);
    114114                    RTPrintf("%#010llx = %#010x`%08x\n", paResults[i].uMsr,
    115                              (uint32_t)(paResults[i].uValue >> 32), (uint32_t)paResults[i].uValue);
     115                             RT_HI_U32(paResults[i].uValue), RT_LO_U32(paResults[i].uValue));
    116116                }
    117117                cMsrsFound++;
  • trunk/src/VBox/VMM/VMMRC/TRPMRCHandlers.cpp

    r65650 r66848  
    10531053
    10541054    uint64_t uTicks = TMCpuTickGet(pVCpu);
    1055     pRegFrame->eax = uTicks;
    1056     pRegFrame->edx = uTicks >> 32;
     1055    pRegFrame->eax = RT_LO_U32(uTicks);
     1056    pRegFrame->edx = RT_HI_U32(uTicks);
    10571057    pRegFrame->eip += 2;
    10581058    TRPM_EXIT_DBG_HOOK(0xd);
Note: See TracChangeset for help on using the changeset viewer.

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