VirtualBox

Changeset 94220 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Mar 14, 2022 12:55:45 PM (3 years ago)
Author:
vboxsync
Message:

VMM/IEM: Adjusted the RCL and RCR intel versions to match the 10980xe behaviour. bugref:9898

File:
1 edited

Legend:

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

    r94195 r94220  
    23412341{ \
    23422342    cShift &= a_cBitsWidth >= 32 ? a_cBitsWidth - 1 : 31; \
     2343    if (a_cBitsWidth < 32 && a_fIntelFlags) \
     2344        cShift %= a_cBitsWidth + 1; \
    23432345    if (cShift) \
    23442346    { \
    2345         if (a_cBitsWidth < 32) \
     2347        if (a_cBitsWidth < 32 && !a_fIntelFlags) \
    23462348            cShift %= a_cBitsWidth + 1; \
    23472349        a_uType const uDst    = *puDst; \
     
    23652367            fEfl |= ((uResult >> (a_cBitsWidth - 1)) ^ fOutCarry) << X86_EFL_OF_BIT; \
    23662368        else                /* Intel 10980XE: According to the first sub-shift: */ \
    2367             fEfl |= X86_EFL_GET_OF_ ## a_cBitsWidth(uDst ^ (uDst << 1) ); \
     2369            fEfl |= X86_EFL_GET_OF_ ## a_cBitsWidth(uDst ^ (uDst << 1)); \
    23682370        *pfEFlags = fEfl; \
    23692371    } \
     
    24022404{ \
    24032405    cShift &= a_cBitsWidth >= 32 ? a_cBitsWidth - 1 : 31; \
     2406    if (a_cBitsWidth < 32 && a_fIntelFlags) \
     2407        cShift %= a_cBitsWidth + 1; \
    24042408    if (cShift) \
    24052409    { \
    2406         if (a_cBitsWidth < 32) \
     2410        if (a_cBitsWidth < 32 && !a_fIntelFlags) \
    24072411            cShift %= a_cBitsWidth + 1; \
    24082412        a_uType const uDst    = *puDst; \
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