VirtualBox

Changeset 101908 in vbox


Ignore:
Timestamp:
Nov 6, 2023 9:57:56 PM (16 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
160004
Message:

VMM/IEM: Arm64 code generation fixes. bugref:10371

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/armv8.h

    r101906 r101908  
    32713271typedef enum ARMV8INSTRCOND
    32723272{
    3273     kArmv8InstrCond_Eq = 0,                     /**< Equal - Zero set. */
    3274     kArmv8InstrCond_Cs,                         /**< Carry set (also known as 'HS'). */
    3275     kArmv8InstrCond_Hs = kArmv8InstrCond_Cs,    /**< Unsigned higher or same. */
    3276     kArmv8InstrCond_Mi,                         /**< Negative result (minus). */
    3277     kArmv8InstrCond_Vs,                         /**< Overflow set. */
    3278     kArmv8InstrCond_Hi,                         /**< Unsigned higher. */
    3279     kArmv8InstrCond_Ge,                         /**< Signed greater or equal. */
    3280     kArmv8InstrCond_Le,                         /**< Signed less or equal. */
    3281 
    3282     kArmv8InstrCond_Ne,                         /**< Not equal - Zero clear. */
    3283     kArmv8InstrCond_Cc,                         /**< Carry clear (also known as 'LO'). */
    3284     kArmv8InstrCond_Lo = kArmv8InstrCond_Cc,    /**< Unsigned lower. */
    3285     kArmv8InstrCond_Pl,                         /**< Positive or zero result (plus). */
    3286     kArmv8InstrCond_Vc,                         /**< Overflow clear. */
    3287     kArmv8InstrCond_Ls,                         /**< Unsigned lower or same. */
    3288     kArmv8InstrCond_Lt,                         /**< Signed less than. */
    3289     kArmv8InstrCond_Al                          /**< Condition is always true. */
     3273    kArmv8InstrCond_Eq = 0,                     /**< 0 - Equal - Zero set. */
     3274    kArmv8InstrCond_Ne,                         /**< 1 - Not equal - Zero clear. */
     3275
     3276    kArmv8InstrCond_Cs,                         /**< 2 - Carry set (also known as 'HS'). */
     3277    kArmv8InstrCond_Hs = kArmv8InstrCond_Cs,    /**< 2 - Unsigned higher or same. */
     3278    kArmv8InstrCond_Cc,                         /**< 3 - Carry clear (also known as 'LO'). */
     3279    kArmv8InstrCond_Lo = kArmv8InstrCond_Cc,    /**< 3 - Unsigned lower. */
     3280
     3281    kArmv8InstrCond_Mi,                         /**< 4 - Negative result (minus). */
     3282    kArmv8InstrCond_Pl,                         /**< 5 - Positive or zero result (plus). */
     3283
     3284    kArmv8InstrCond_Vs,                         /**< 6 - Overflow set. */
     3285    kArmv8InstrCond_Vc,                         /**< 7 - Overflow clear. */
     3286
     3287    kArmv8InstrCond_Hi,                         /**< 8 - Unsigned higher. */
     3288    kArmv8InstrCond_Ls,                         /**< 9 - Unsigned lower or same. */
     3289
     3290    kArmv8InstrCond_Ge,                         /**< a - Signed greater or equal. */
     3291    kArmv8InstrCond_Lt,                         /**< b - Signed less than. */
     3292
     3293    kArmv8InstrCond_Gt,                         /**< c - Signed less or equal. */
     3294    kArmv8InstrCond_Le,                         /**< d - Signed less or equal. */
     3295
     3296    kArmv8InstrCond_Al,                         /**< e - Condition is always true. */
     3297    kArmv8InstrCond_Al1                         /**< f - Condition is always true. */
    32903298} ARMV8INSTRCOND;
    32913299
  • trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompiler.cpp

    r101906 r101908  
    33143314    uint32_t const idxLabel = iemNativeLabelCreate(pReNative, kIemNativeLabelType_NonZeroRetOrPassUp);
    33153315    iemNativeAddFixup(pReNative, off, idxLabel, kIemNativeFixupType_RelImm19At5);
    3316     pu32CodeBuf[off++] = Armv8A64MkInstrCbzCbnz(true /*fJmpIfNotZero*/, ARMV8_A64_REG_X4, false /*f64Bit*/);
     3316    pu32CodeBuf[off++] = Armv8A64MkInstrCbzCbnz(true /*fJmpIfNotZero*/, 0, ARMV8_A64_REG_X4, false /*f64Bit*/);
    33173317
    33183318#else
  • trunk/src/VBox/VMM/VMMAll/IEMAllThrdRecompiler.cpp

    r101704 r101908  
    21542154        uint16_t const uCsLog  = pVCpu->cpum.GstCtx.cs.Sel;
    21552155        uint64_t const uRipLog = pVCpu->cpum.GstCtx.rip;
     2156        Assert(uCsLog != 0 || uRipLog > 0x400 || !IEM_IS_REAL_OR_V86_MODE(pVCpu)); /* Detect executing RM interrupt table. */
    21562157#endif
    21572158        uint8_t b; IEM_OPCODE_GET_FIRST_U8(&b);
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