VirtualBox

Changeset 97358 in vbox


Ignore:
Timestamp:
Oct 31, 2022 11:14:44 PM (2 years ago)
Author:
vboxsync
Message:

VMM/IEM: Made all the IEM_MC_*_AND_FINISH macros return. bugref:9898

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/IEMInline.h

    r97334 r97358  
    16141614 * @param   cbInstr             The number of bytes to add.
    16151615 */
    1616 DECLINLINE(void) iemRegAddToRipAndClearRF(PVMCPUCC pVCpu, uint8_t cbInstr)
     1616DECLINLINE(VBOXSTRICTRC) iemRegAddToRipAndClearRF(PVMCPUCC pVCpu, uint8_t cbInstr)
    16171617{
    16181618    /*
     
    16411641    AssertCompile(CPUMCTX_INHIBIT_SHADOW < UINT32_MAX);
    16421642    pVCpu->cpum.GstCtx.eflags.uBoth &= ~(X86_EFL_RF | CPUMCTX_INHIBIT_SHADOW);
     1643
     1644    return VINF_SUCCESS;
    16431645}
    16441646
     
    16491651 * @param   pVCpu               The cross context virtual CPU structure of the calling thread.
    16501652 */
    1651 DECLINLINE(void) iemRegUpdateRipAndClearRF(PVMCPUCC pVCpu)
     1653DECLINLINE(VBOXSTRICTRC) iemRegUpdateRipAndClearRF(PVMCPUCC pVCpu)
    16521654{
    16531655    return iemRegAddToRipAndClearRF(pVCpu, IEM_GET_INSTR_LEN(pVCpu));
  • trunk/src/VBox/VMM/include/IEMMc.h

    r97357 r97358  
    5353
    5454
    55 /** Advances RIP and finishes the instruction.
    56  * This may include raising debug exceptions and such.
    57  * @todo Make this be the return point, so we can get unreachable code erros
    58  *       if not the last MC statement. */
    59 #define IEM_MC_ADVANCE_RIP_AND_FINISH()                 iemRegUpdateRipAndClearRF(pVCpu)
    60 /** Tries to set RIP (may trigger \#GP) and finishes the instruction. */
    61 #define IEM_MC_REL_JMP_S8_AND_FINISH(a_i8)              IEM_MC_RETURN_ON_FAILURE(iemRegRipRelativeJumpS8(pVCpu, a_i8))
    62 /** Tries to set RIP (may trigger \#GP) and finishes the instruction. */
    63 #define IEM_MC_REL_JMP_S16_AND_FINISH(a_i16)            IEM_MC_RETURN_ON_FAILURE(iemRegRipRelativeJumpS16(pVCpu, a_i16))
    64 /** Tries to set RIP (may trigger \#GP) and finishes the instruction. */
    65 #define IEM_MC_REL_JMP_S32_AND_FINISH(a_i32)            IEM_MC_RETURN_ON_FAILURE(iemRegRipRelativeJumpS32(pVCpu, a_i32))
    66 /** Tries to set RIP (may trigger \#GP) and finishes the instruction. */
    67 #define IEM_MC_SET_RIP_U16_AND_FINISH(a_u16NewIP)       IEM_MC_RETURN_ON_FAILURE(iemRegRipJump((pVCpu), (a_u16NewIP)))
    68 /** Tries to set RIP (may trigger \#GP) and finishes the instruction. */
    69 #define IEM_MC_SET_RIP_U32_AND_FINISH(a_u32NewIP)       IEM_MC_RETURN_ON_FAILURE(iemRegRipJump((pVCpu), (a_u32NewIP)))
    70 /** Tries to set RIP (may trigger \#GP) and finishes the instruction. */
    71 #define IEM_MC_SET_RIP_U64_AND_FINISH(a_u64NewIP)       IEM_MC_RETURN_ON_FAILURE(iemRegRipJump((pVCpu), (a_u64NewIP)))
     55/** Advances RIP, finishes the instruction and returns.
     56 * This may include raising debug exceptions and such. */
     57#define IEM_MC_ADVANCE_RIP_AND_FINISH()                 return iemRegUpdateRipAndClearRF(pVCpu)
     58/** Sets RIP (may trigger \#GP), finishes the instruction and returns. */
     59#define IEM_MC_REL_JMP_S8_AND_FINISH(a_i8)              return iemRegRipRelativeJumpS8(pVCpu, (a_i8))
     60/** Sets RIP (may trigger \#GP), finishes the instruction and returns. */
     61#define IEM_MC_REL_JMP_S16_AND_FINISH(a_i16)            return iemRegRipRelativeJumpS16(pVCpu, (a_i16))
     62/** Sets RIP (may trigger \#GP), finishes the instruction and returns. */
     63#define IEM_MC_REL_JMP_S32_AND_FINISH(a_i32)            return iemRegRipRelativeJumpS32(pVCpu, (a_i32))
     64/** Sets RIP (may trigger \#GP), finishes the instruction and returns. */
     65#define IEM_MC_SET_RIP_U16_AND_FINISH(a_u16NewIP)       return iemRegRipJump((pVCpu), (a_u16NewIP))
     66/** Sets RIP (may trigger \#GP), finishes the instruction and returns. */
     67#define IEM_MC_SET_RIP_U32_AND_FINISH(a_u32NewIP)       return iemRegRipJump((pVCpu), (a_u32NewIP))
     68/** Sets RIP (may trigger \#GP), finishes the instruction and returns. */
     69#define IEM_MC_SET_RIP_U64_AND_FINISH(a_u64NewIP)       return iemRegRipJump((pVCpu), (a_u64NewIP))
    7270
    7371#define IEM_MC_RAISE_DIVIDE_ERROR()                     return iemRaiseDivideError(pVCpu)
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