Index: /trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h	(revision 79637)
+++ /trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h	(revision 79638)
@@ -6999,50 +6999,16 @@
     Assert(VMX_ENTRY_INT_INFO_IS_VALID(uEntryIntInfo));
 
-    uint8_t const uType         = VMX_ENTRY_INT_INFO_TYPE(uEntryIntInfo);
-    uint8_t const uVector       = VMX_ENTRY_INT_INFO_VECTOR(uEntryIntInfo);
-    bool const    fErrCodeValid = VMX_ENTRY_INT_INFO_IS_ERROR_CODE_VALID(uEntryIntInfo);
-
-    TRPMEVENT enmTrapType;
-    switch (uType)
-    {
-        case VMX_ENTRY_INT_INFO_TYPE_EXT_INT:
-           enmTrapType = TRPM_HARDWARE_INT;
-           break;
-
-        case VMX_ENTRY_INT_INFO_TYPE_NMI:
-        case VMX_ENTRY_INT_INFO_TYPE_HW_XCPT:
-            enmTrapType = TRPM_TRAP;
-            break;
-
-        case VMX_ENTRY_INT_INFO_TYPE_SW_INT:
-            enmTrapType = TRPM_SOFTWARE_INT;
-            break;
-
-        case VMX_ENTRY_INT_INFO_TYPE_SW_XCPT:       /* #BP and #OF */
-            Assert(uVector == X86_XCPT_BP || uVector == X86_XCPT_OF);
-            enmTrapType = TRPM_SOFTWARE_INT;
-            break;
-
-        case VMX_ENTRY_INT_INFO_TYPE_PRIV_SW_XCPT:  /* #DB (INT1/ICEBP). */
-            Assert(uVector == X86_XCPT_DB);
-            enmTrapType = TRPM_SOFTWARE_INT;
-            break;
-
-        default:
-            /* Shouldn't really happen. */
-            AssertMsgFailedReturn(("Invalid trap type %#x\n", uType), VERR_VMX_IPE_4);
-            break;
-    }
-
-    int rc = TRPMAssertTrap(pVCpu, uVector, enmTrapType);
+    uint8_t const   uVector      = VMX_ENTRY_INT_INFO_VECTOR(uEntryIntInfo);
+    TRPMEVENT const enmTrpmEvent = HMVmxEventTypeToTrpmEventType(uEntryIntInfo);
+
+    int rc = TRPMAssertTrap(pVCpu, uVector, enmTrpmEvent);
     if (RT_SUCCESS(rc))
     {
-        if (fErrCodeValid)
+        if (VMX_ENTRY_INT_INFO_IS_ERROR_CODE_VALID(uEntryIntInfo))
             TRPMSetErrorCode(pVCpu, uErrCode);
 
-        if (   enmTrapType == TRPM_TRAP
-            && uVector     == X86_XCPT_PF)
+        if (VMX_ENTRY_INT_INFO_IS_XCPT_PF(uEntryIntInfo))
             TRPMSetFaultAddress(pVCpu, GCPtrFaultAddress);
-        else if (enmTrapType == TRPM_SOFTWARE_INT)
+        else if (VMX_ENTRY_INT_INFO_TYPE(uEntryIntInfo) == VMX_ENTRY_INT_INFO_TYPE_SW_INT)
             TRPMSetInstrLength(pVCpu, cbInstr);
     }
