VirtualBox

Changeset 61898 in vbox for trunk


Ignore:
Timestamp:
Jun 27, 2016 1:36:46 PM (9 years ago)
Author:
vboxsync
Message:

iemRegAddToRipAndClearRF: optimizations (64-bit code only). Save a byte sign extending enmCpuMode to 64-bit. Combine the adding and masking, avoid saving intermediate results.

File:
1 edited

Legend:

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

    r61897 r61898  
    52915291    AssertCompile(IEMMODE_16BIT == 0 && IEMMODE_32BIT == 1 && IEMMODE_64BIT == 2);
    52925292    static uint64_t const s_aRipMasks[] = { UINT64_C(0xffff), UINT64_C(0xffffffff), UINT64_MAX };
    5293     Assert(pCtx->rip <= s_aRipMasks[pIemCpu->enmCpuMode]);
    5294     pCtx->rip += cbInstr;
    5295     pCtx->rip &= s_aRipMasks[pIemCpu->enmCpuMode];
     5293    Assert(pCtx->rip <= s_aRipMasks[(unsigned)pIemCpu->enmCpuMode]);
     5294    pCtx->rip = (pCtx->rip + cbInstr) & s_aRipMasks[(unsigned)pIemCpu->enmCpuMode];
    52965295#else
    52975296    switch (pIemCpu->enmCpuMode)
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