Changeset 1296 in vbox
- Timestamp:
- Mar 7, 2007 12:24:37 PM (18 years ago)
- svn:sync-xref-src-repo-rev:
- 19253
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp
r1292 r1296 964 964 } 965 965 966 #ifdef VBOX_STRICT 966 967 case X86_XCPT_GP: /* General protection failure exception.*/ 967 {968 if (pCtx->eflags.Bits.u1VM == 1)969 {970 Log(("#GP in V86 mode -> fall back\n"));971 /** @note workaround for #GP loop; looks like an SVM bug */972 rc = VINF_EM_RAW_EMULATE_INSTR;973 break;974 }975 STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitGuestGP);976 977 Event.au64[0] = 0;978 Event.n.u3Type = SVM_EVENT_EXCEPTION;979 Event.n.u1Valid = 1;980 Event.n.u8Vector = X86_XCPT_GP;981 Event.n.u1ErrorCodeValid= 1;982 Event.n.u32ErrorCode = pVMCB->ctrl.u64ExitInfo1; /* EXITINFO1 = error code */983 Log(("Trap %x at %VGv\n", vector, pCtx->eip));984 SVMR0InjectEvent(pVM, pVMCB, pCtx, &Event);985 986 STAM_PROFILE_ADV_STOP(&pVM->hwaccm.s.StatExit, x);987 goto ResumeExecution;988 }989 990 #ifdef VBOX_STRICT991 968 case X86_XCPT_UD: /* Unknown opcode exception. */ 992 969 case X86_XCPT_DE: /* Debug exception. */ … … 1001 978 switch(vector) 1002 979 { 980 case X86_XCPT_GP: 981 STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitGuestGP); 982 Event.n.u1ErrorCodeValid = 1; 983 Event.n.u32ErrorCode = pVMCB->ctrl.u64ExitInfo1; /* EXITINFO1 = error code */ 984 break; 1003 985 case X86_XCPT_DE: 1004 986 STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitGuestDE);
Note:
See TracChangeset
for help on using the changeset viewer.