Changeset 100089 in vbox for trunk/src/VBox/VMM/include
- Timestamp:
- Jun 7, 2023 1:39:11 AM (20 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/IEMInline.h
r100084 r100089 1982 1982 1983 1983 /** 1984 * Updates the EIP/IP to point to the next instruction - only for 32-bit and1985 * 16-bit code.1986 *1987 * @param pVCpu The cross context virtual CPU structure of the calling thread.1988 * @param cbInstr The number of bytes to add.1989 */1990 DECL_FORCE_INLINE(void) iemRegAddToEip32(PVMCPUCC pVCpu, uint8_t cbInstr) RT_NOEXCEPT1991 {1992 /* See comment in iemRegAddToRip. */1993 uint32_t const uEipPrev = pVCpu->cpum.GstCtx.eip;1994 uint32_t const uEipNext = uEipPrev + cbInstr;1995 if (IEM_GET_TARGET_CPU(pVCpu) >= IEMTARGETCPU_386)1996 pVCpu->cpum.GstCtx.rip = (uint32_t)uEipNext;1997 else1998 pVCpu->cpum.GstCtx.rip = (uint16_t)uEipNext;1999 }2000 2001 2002 /**2003 1984 * Called by iemRegAddToRipAndFinishingClearingRF and others when any of the 2004 1985 * following EFLAGS bits are set: … … 2112 2093 * and CPUMCTX_INHIBIT_SHADOW. 2113 2094 * 2114 * Only called from 64- codecode.2095 * Only called from 64-bit code. 2115 2096 * 2116 2097 * @param pVCpu The cross context virtual CPU structure of the calling thread. … … 2128 2109 * CPUMCTX_INHIBIT_SHADOW. 2129 2110 * 2130 * This is never from 64- codecode.2111 * This is never from 64-bit code. 2131 2112 * 2132 2113 * @param pVCpu The cross context virtual CPU structure of the calling thread. … … 2135 2116 DECL_FORCE_INLINE(VBOXSTRICTRC) iemRegAddToEip32AndFinishingClearingRF(PVMCPUCC pVCpu, uint8_t cbInstr) RT_NOEXCEPT 2136 2117 { 2137 iemRegAddToEip32(pVCpu, cbInstr); 2118 pVCpu->cpum.GstCtx.rip = (uint32_t)(pVCpu->cpum.GstCtx.eip + cbInstr); 2119 return iemRegFinishClearingRF(pVCpu); 2120 } 2121 2122 2123 /** 2124 * Updates the IP to point to the next instruction and clears EFLAGS.RF and 2125 * CPUMCTX_INHIBIT_SHADOW. 2126 * 2127 * This is only ever used from 16-bit code on a pre-386 CPU. 2128 * 2129 * @param pVCpu The cross context virtual CPU structure of the calling thread. 2130 * @param cbInstr The number of bytes to add. 2131 */ 2132 DECL_FORCE_INLINE(VBOXSTRICTRC) iemRegAddToIp16AndFinishingClearingRF(PVMCPUCC pVCpu, uint8_t cbInstr) RT_NOEXCEPT 2133 { 2134 pVCpu->cpum.GstCtx.rip = (uint16_t)(pVCpu->cpum.GstCtx.ip + cbInstr); 2138 2135 return iemRegFinishClearingRF(pVCpu); 2139 2136 }
Note:
See TracChangeset
for help on using the changeset viewer.