Index: /trunk/src/VBox/VMM/VMMR3/TRPM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/TRPM.cpp	(revision 38866)
+++ /trunk/src/VBox/VMM/VMMR3/TRPM.cpp	(revision 38867)
@@ -542,11 +542,19 @@
 
 #ifdef VBOX_WITH_STATISTICS
-    rc = MMHyperAlloc(pVM, sizeof(STAMCOUNTER) * 255, 8, MM_TAG_STAM, (void **)&pVM->trpm.s.paStatForwardedIRQR3);
+    rc = MMHyperAlloc(pVM, sizeof(STAMCOUNTER) * 256, sizeof(STAMCOUNTER), MM_TAG_TRPM, (void **)&pVM->trpm.s.paStatForwardedIRQR3);
     AssertRCReturn(rc, rc);
     pVM->trpm.s.paStatForwardedIRQRC = MMHyperR3ToRC(pVM, pVM->trpm.s.paStatForwardedIRQR3);
     pVM->trpm.s.paStatForwardedIRQR0 = MMHyperR3ToR0(pVM, pVM->trpm.s.paStatForwardedIRQR3);
-    for (unsigned i = 0; i < 255; i++)
+    for (unsigned i = 0; i < 256; i++)
         STAMR3RegisterF(pVM, &pVM->trpm.s.paStatForwardedIRQR3[i], STAMTYPE_COUNTER, STAMVISIBILITY_USED, STAMUNIT_OCCURENCES, "Forwarded interrupts.",
                         i < 0x20 ? "/TRPM/ForwardRaw/TRAP/%02X" : "/TRPM/ForwardRaw/IRQ/%02X", i);
+
+    rc = MMHyperAlloc(pVM, sizeof(STAMCOUNTER) * 256, sizeof(STAMCOUNTER), MM_TAG_TRPM, (void **)&pVM->trpm.s.paStatHostIrqR3);
+    AssertRCReturn(rc, rc);
+    pVM->trpm.s.paStatHostIrqRC = MMHyperR3ToRC(pVM, pVM->trpm.s.paStatHostIrqR3);
+    pVM->trpm.s.paStatHostIrqR0 = MMHyperR3ToR0(pVM, pVM->trpm.s.paStatHostIrqR3);
+    for (unsigned i = 0; i < 256; i++)
+        STAMR3RegisterF(pVM, &pVM->trpm.s.paStatHostIrqR3[i], STAMTYPE_COUNTER, STAMVISIBILITY_USED, STAMUNIT_OCCURENCES,
+                        "Host interrupts.", "/TRPM/HostIRQs/%02x", i);
 #endif
 
@@ -695,5 +703,7 @@
 #ifdef VBOX_WITH_STATISTICS
     pVM->trpm.s.paStatForwardedIRQRC += offDelta;
-    pVM->trpm.s.paStatForwardedIRQR0 = MMHyperR3ToR0(pVM, pVM->trpm.s.paStatForwardedIRQR3);
+    pVM->trpm.s.paStatForwardedIRQR0  = MMHyperR3ToR0(pVM, pVM->trpm.s.paStatForwardedIRQR3);
+    pVM->trpm.s.paStatHostIrqRC += offDelta;
+    pVM->trpm.s.paStatHostIrqR0  = MMHyperR3ToR0(pVM, pVM->trpm.s.paStatHostIrqR3);
 #endif
 }
Index: /trunk/src/VBox/VMM/VMMRC/TRPMRCHandlersA.asm
===================================================================
--- /trunk/src/VBox/VMM/VMMRC/TRPMRCHandlersA.asm	(revision 38866)
+++ /trunk/src/VBox/VMM/VMMRC/TRPMRCHandlersA.asm	(revision 38867)
@@ -851,4 +851,15 @@
 %endif
 
+%ifdef VBOX_WITH_STATISTICS
+    ;
+    ; Update statistics.
+    ;
+    mov     eax, IMP(g_TRPM)
+    movzx   edx, byte [esp + 0h + ESPOFF]   ; vector number
+    imul    edx, edx, byte STAMCOUNTER_size
+    add     edx, [eax + TRPM.paStatHostIrqRC]
+    STAM_COUNTER_INC edx
+%endif
+
     ;
     ; Check if we're in Hypervisor when this happened.
Index: /trunk/src/VBox/VMM/include/TRPMInternal.h
===================================================================
--- /trunk/src/VBox/VMM/include/TRPMInternal.h	(revision 38866)
+++ /trunk/src/VBox/VMM/include/TRPMInternal.h	(revision 38867)
@@ -156,10 +156,18 @@
 
 #ifdef VBOX_WITH_STATISTICS
-    /* R3: Statistics for interrupt handlers (allocated on the hypervisor heap). */
+    /** Statistics for interrupt handlers (allocated on the hypervisor heap) - R3
+     * pointer. */
     R3PTRTYPE(PSTAMCOUNTER) paStatForwardedIRQR3;
-    /* R0: Statistics for interrupt handlers (allocated on the hypervisor heap). */
+    /** Statistics for interrupt handlers - R0 pointer. */
     R0PTRTYPE(PSTAMCOUNTER) paStatForwardedIRQR0;
-    /* RC: Statistics for interrupt handlers (allocated on the hypervisor heap). */
+    /** Statistics for interrupt handlers - RC pointer. */
     RCPTRTYPE(PSTAMCOUNTER) paStatForwardedIRQRC;
+
+    /** Host interrupt statistics (allocated on the hypervisor heap) - RC ptr. */
+    RCPTRTYPE(PSTAMCOUNTER) paStatHostIrqRC;
+    /** Host interrupt statistics (allocated on the hypervisor heap) - R3 ptr. */
+    R3PTRTYPE(PSTAMCOUNTER) paStatHostIrqR3;
+    /** Host interrupt statistics (allocated on the hypervisor heap) - R0 ptr. */
+    R0PTRTYPE(PSTAMCOUNTER) paStatHostIrqR0;
 #endif
 } TRPM;
Index: /trunk/src/VBox/VMM/include/TRPMInternal.mac
===================================================================
--- /trunk/src/VBox/VMM/include/TRPMInternal.mac	(revision 38866)
+++ /trunk/src/VBox/VMM/include/TRPMInternal.mac	(revision 38867)
@@ -60,7 +60,10 @@
 
 %ifdef VBOX_WITH_STATISTICS
-    .paStatForwardedIRQR3  RTR3PTR_RES 1
-    .paStatForwardedIRQR0  RTR0PTR_RES 1
-    .paStatForwardedIRQRC  RTRCPTR_RES 1
+    .paStatForwardedIRQR3    RTR3PTR_RES 1
+    .paStatForwardedIRQR0    RTR0PTR_RES 1
+    .paStatForwardedIRQRC    RTRCPTR_RES 1
+    .paStatHostIrqRC         RTRCPTR_RES 1
+    .paStatHostIrqR3         RTR3PTR_RES 1
+    .paStatHostIrqR0         RTR0PTR_RES 1
 %endif
 endstruc
