Changeset 72581 in vbox for trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
- Timestamp:
- Jun 16, 2018 4:14:16 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
r72570 r72581 13529 13529 * 13530 13530 * The @a fSameCtx parameter is now misleading and obsolete. 13531 */ 13532 IEM_STATIC void iemLogCurInstr(PVMCPU pVCpu, bool fSameCtx) 13531 * @param pszFunction The IEM function doing the execution. 13532 */ 13533 IEM_STATIC void iemLogCurInstr(PVMCPU pVCpu, bool fSameCtx, const char *pszFunction) 13533 13534 { 13534 13535 # ifdef IN_RING3 … … 13560 13561 13561 13562 PCX86FXSTATE pFpuCtx = &pVCpu->cpum.GstCtx.CTX_SUFF(pXState)->x87; 13562 Log2(("**** \n"13563 Log2(("**** %s\n" 13563 13564 " eax=%08x ebx=%08x ecx=%08x edx=%08x esi=%08x edi=%08x\n" 13564 13565 " eip=%08x esp=%08x ebp=%08x iopl=%d tr=%04x\n" … … 13566 13567 " fsw=%04x fcw=%04x ftw=%02x mxcsr=%04x/%04x\n" 13567 13568 " %s\n" 13568 , 13569 , pszFunction, 13569 13570 pVCpu->cpum.GstCtx.eax, pVCpu->cpum.GstCtx.ebx, pVCpu->cpum.GstCtx.ecx, pVCpu->cpum.GstCtx.edx, pVCpu->cpum.GstCtx.esi, pVCpu->cpum.GstCtx.edi, 13570 13571 pVCpu->cpum.GstCtx.eip, pVCpu->cpum.GstCtx.esp, pVCpu->cpum.GstCtx.ebp, pVCpu->cpum.GstCtx.eflags.Bits.u2IOPL, pVCpu->cpum.GstCtx.tr.Sel, … … 13579 13580 else 13580 13581 # endif 13581 LogFlow((" IEMExecOne: cs:rip=%04x:%08RX64 ss:rsp=%04x:%08RX64 EFL=%06x\n",13582 pVCpu->cpum.GstCtx. cs.Sel, pVCpu->cpum.GstCtx.rip, pVCpu->cpum.GstCtx.ss.Sel, pVCpu->cpum.GstCtx.rsp, pVCpu->cpum.GstCtx.eflags.u));13582 LogFlow(("%s: cs:rip=%04x:%08RX64 ss:rsp=%04x:%08RX64 EFL=%06x\n", pszFunction, pVCpu->cpum.GstCtx.cs.Sel, 13583 pVCpu->cpum.GstCtx.rip, pVCpu->cpum.GstCtx.ss.Sel, pVCpu->cpum.GstCtx.rsp, pVCpu->cpum.GstCtx.eflags.u)); 13583 13584 RT_NOREF_PV(pVCpu); RT_NOREF_PV(fSameCtx); 13584 13585 } … … 13678 13679 * POP SS and MOV SS,GR. 13679 13680 */ 13680 DECLINLINE(VBOXSTRICTRC) iemExecOneInner(PVMCPU pVCpu, bool fExecuteInhibit )13681 DECLINLINE(VBOXSTRICTRC) iemExecOneInner(PVMCPU pVCpu, bool fExecuteInhibit, const char *pszFunction) 13681 13682 { 13682 13683 AssertMsg(pVCpu->iem.s.aMemMappings[0].fAccess == IEM_ACCESS_INVALID, ("0: %#x %RGp\n", pVCpu->iem.s.aMemMappings[0].fAccess, pVCpu->iem.s.aMemBbMappings[0].GCPhysFirst)); 13683 13684 AssertMsg(pVCpu->iem.s.aMemMappings[1].fAccess == IEM_ACCESS_INVALID, ("1: %#x %RGp\n", pVCpu->iem.s.aMemMappings[1].fAccess, pVCpu->iem.s.aMemBbMappings[1].GCPhysFirst)); 13684 13685 AssertMsg(pVCpu->iem.s.aMemMappings[2].fAccess == IEM_ACCESS_INVALID, ("2: %#x %RGp\n", pVCpu->iem.s.aMemMappings[2].fAccess, pVCpu->iem.s.aMemBbMappings[2].GCPhysFirst)); 13686 RT_NOREF_PV(pszFunction); 13685 13687 13686 13688 #ifdef IEM_WITH_SETJMP … … 13727 13729 { 13728 13730 #ifdef LOG_ENABLED 13729 iemLogCurInstr(pVCpu, false );13731 iemLogCurInstr(pVCpu, false, pszFunction); 13730 13732 #endif 13731 13733 #ifdef IEM_WITH_SETJMP … … 13807 13809 { 13808 13810 #ifdef LOG_ENABLED 13809 iemLogCurInstr(pVCpu, true );13811 iemLogCurInstr(pVCpu, true, "IEMExecOne"); 13810 13812 #endif 13811 13813 … … 13815 13817 VBOXSTRICTRC rcStrict = iemInitDecoderAndPrefetchOpcodes(pVCpu, false); 13816 13818 if (rcStrict == VINF_SUCCESS) 13817 rcStrict = iemExecOneInner(pVCpu, true );13819 rcStrict = iemExecOneInner(pVCpu, true, "IEMExecOne"); 13818 13820 else if (pVCpu->iem.s.cActiveMappings > 0) 13819 13821 iemMemRollback(pVCpu); … … 13837 13839 if (rcStrict == VINF_SUCCESS) 13838 13840 { 13839 rcStrict = iemExecOneInner(pVCpu, true );13841 rcStrict = iemExecOneInner(pVCpu, true, "IEMExecOneEx"); 13840 13842 if (pcbWritten) 13841 13843 *pcbWritten = pVCpu->iem.s.cbWritten - cbOldWritten; … … 13876 13878 rcStrict = iemInitDecoderAndPrefetchOpcodes(pVCpu, false); 13877 13879 if (rcStrict == VINF_SUCCESS) 13878 rcStrict = iemExecOneInner(pVCpu, true );13880 rcStrict = iemExecOneInner(pVCpu, true, "IEMExecOneWithPrefetchedByPC"); 13879 13881 else if (pVCpu->iem.s.cActiveMappings > 0) 13880 13882 iemMemRollback(pVCpu); … … 13895 13897 if (rcStrict == VINF_SUCCESS) 13896 13898 { 13897 rcStrict = iemExecOneInner(pVCpu, false );13899 rcStrict = iemExecOneInner(pVCpu, false, "IEMExecOneBypassEx"); 13898 13900 if (pcbWritten) 13899 13901 *pcbWritten = pVCpu->iem.s.cbWritten - cbOldWritten; … … 13934 13936 rcStrict = iemInitDecoderAndPrefetchOpcodes(pVCpu, true); 13935 13937 if (rcStrict == VINF_SUCCESS) 13936 rcStrict = iemExecOneInner(pVCpu, false );13938 rcStrict = iemExecOneInner(pVCpu, false, "IEMExecOneBypassWithPrefetchedByPC"); 13937 13939 else if (pVCpu->iem.s.cActiveMappings > 0) 13938 13940 iemMemRollback(pVCpu); … … 13986 13988 if (rcStrict == VINF_SUCCESS) 13987 13989 { 13988 rcStrict = iemExecOneInner(pVCpu, false );13990 rcStrict = iemExecOneInner(pVCpu, false, "IEMExecOneBypassWithPrefetchedByPCWritten"); 13989 13991 if (pcbWritten) 13990 13992 *pcbWritten = pVCpu->iem.s.cbWritten - cbOldWritten; … … 14058 14060 */ 14059 14061 #ifdef LOG_ENABLED 14060 iemLogCurInstr(pVCpu, true );14062 iemLogCurInstr(pVCpu, true, "IEMExecLots"); 14061 14063 #endif 14062 14064 … … 14203 14205 */ 14204 14206 #ifdef LOG_ENABLED 14205 iemLogCurInstr(pVCpu, true );14207 iemLogCurInstr(pVCpu, true, "IEMExecForExits"); 14206 14208 #endif 14207 14209
Note:
See TracChangeset
for help on using the changeset viewer.