Changeset 97358 in vbox
- Timestamp:
- Oct 31, 2022 11:14:44 PM (2 years ago)
- Location:
- trunk/src/VBox/VMM/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/IEMInline.h
r97334 r97358 1614 1614 * @param cbInstr The number of bytes to add. 1615 1615 */ 1616 DECLINLINE( void) iemRegAddToRipAndClearRF(PVMCPUCC pVCpu, uint8_t cbInstr)1616 DECLINLINE(VBOXSTRICTRC) iemRegAddToRipAndClearRF(PVMCPUCC pVCpu, uint8_t cbInstr) 1617 1617 { 1618 1618 /* … … 1641 1641 AssertCompile(CPUMCTX_INHIBIT_SHADOW < UINT32_MAX); 1642 1642 pVCpu->cpum.GstCtx.eflags.uBoth &= ~(X86_EFL_RF | CPUMCTX_INHIBIT_SHADOW); 1643 1644 return VINF_SUCCESS; 1643 1645 } 1644 1646 … … 1649 1651 * @param pVCpu The cross context virtual CPU structure of the calling thread. 1650 1652 */ 1651 DECLINLINE( void) iemRegUpdateRipAndClearRF(PVMCPUCC pVCpu)1653 DECLINLINE(VBOXSTRICTRC) iemRegUpdateRipAndClearRF(PVMCPUCC pVCpu) 1652 1654 { 1653 1655 return iemRegAddToRipAndClearRF(pVCpu, IEM_GET_INSTR_LEN(pVCpu)); -
trunk/src/VBox/VMM/include/IEMMc.h
r97357 r97358 53 53 54 54 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)) 72 70 73 71 #define IEM_MC_RAISE_DIVIDE_ERROR() return iemRaiseDivideError(pVCpu)
Note:
See TracChangeset
for help on using the changeset viewer.