Index: trunk/include/VBox/vmm/hm_svm.h
===================================================================
--- trunk/include/VBox/vmm/hm_svm.h	(revision 70299)
+++ trunk/include/VBox/vmm/hm_svm.h	(revision 70301)
@@ -445,10 +445,4 @@
 /** @} */
 
-/** @name SVMVMCB.ctrl.u64IntShadow
- * @{
- */
-#define SVM_INTERRUPT_SHADOW_ACTIVE           RT_BIT_64(0)
-/** @} */
-
 /** @name SVMINTCTRL.u3Type
  * @{
@@ -705,5 +699,11 @@
     SVMINTCTRL  IntCtrl;
     /** Offset 0x68 - Interrupt shadow. */
-    uint64_t    u64IntShadow;
+    union
+    {
+        uint32_t    u1IntShadow    :  1;
+        uint32_t    u1GuestIntMask :  1;
+        uint32_t    u30Reserved0   : 30;
+        uint64_t    u64IntShadowCtrl;
+    } RT_UNION_NM(intshadow);
     /** Offset 0x70 - Exit code. */
     uint64_t    u64ExitCode;
@@ -720,5 +720,5 @@
         uint32_t    u1Sev          :  1;
         uint32_t    u1SevEs        :  1;
-        uint32_t    u28Reserved0   : 28;
+        uint32_t    u29Reserved0   : 29;
         uint64_t    u64NpSevCtrl;
     } RT_UNION_NM(np);
@@ -736,5 +736,5 @@
         uint32_t    u1LbrVirt          :  1;
         uint32_t    u1VirtVmsaveVmload :  1;
-        uint32_t    u29Reserved0       : 29;
+        uint32_t    u30Reserved1       : 30;
         uint64_t    u64LbrVirtCtrl;
     } RT_UNION_NM(lbrvirt);
@@ -763,37 +763,37 @@
 typedef const SVMVMCBCTRL *PCSVMVMCBCTRL;
 AssertCompileSize(SVMVMCBCTRL, 0x100);
-AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptRdCRx,                    0x00);
-AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptWrCRx,                    0x02);
-AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptRdDRx,                    0x04);
-AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptWrDRx,                    0x06);
-AssertCompileMemberOffset(SVMVMCBCTRL, u32InterceptXcpt,                     0x08);
-AssertCompileMemberOffset(SVMVMCBCTRL, u64InterceptCtrl,                     0x0c);
-AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved,                           0x14);
-AssertCompileMemberOffset(SVMVMCBCTRL, u16PauseFilterThreshold,              0x3c);
-AssertCompileMemberOffset(SVMVMCBCTRL, u16PauseFilterCount,                  0x3e);
-AssertCompileMemberOffset(SVMVMCBCTRL, u64IOPMPhysAddr,                      0x40);
-AssertCompileMemberOffset(SVMVMCBCTRL, u64MSRPMPhysAddr,                     0x48);
-AssertCompileMemberOffset(SVMVMCBCTRL, u64TSCOffset,                         0x50);
-AssertCompileMemberOffset(SVMVMCBCTRL, TLBCtrl,                              0x58);
-AssertCompileMemberOffset(SVMVMCBCTRL, IntCtrl,                              0x60);
-AssertCompileMemberOffset(SVMVMCBCTRL, u64IntShadow,                         0x68);
-AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitCode,                          0x70);
-AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitInfo1,                         0x78);
-AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitInfo2,                         0x80);
-AssertCompileMemberOffset(SVMVMCBCTRL, ExitIntInfo,                          0x88);
-AssertCompileMemberOffset(SVMVMCBCTRL, RT_UNION_NM(np.) u64NpSevCtrl,        0x90);
-AssertCompileMemberOffset(SVMVMCBCTRL, AvicBar,                              0x98);
-AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved2,                          0xa0);
-AssertCompileMemberOffset(SVMVMCBCTRL, EventInject,                          0xa8);
-AssertCompileMemberOffset(SVMVMCBCTRL, u64NestedPagingCR3,                   0xb0);
-AssertCompileMemberOffset(SVMVMCBCTRL, RT_UNION_NM(lbrvirt.) u64LbrVirtCtrl, 0xb8);
-AssertCompileMemberOffset(SVMVMCBCTRL, u32VmcbCleanBits,                     0xc0);
-AssertCompileMemberOffset(SVMVMCBCTRL, u64NextRIP,                           0xc8);
-AssertCompileMemberOffset(SVMVMCBCTRL, cbInstrFetched,                       0xd0);
-AssertCompileMemberOffset(SVMVMCBCTRL, abInstr,                              0xd1);
-AssertCompileMemberOffset(SVMVMCBCTRL, AvicBackingPagePtr,                   0xe0);
-AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved3,                          0xe8);
-AssertCompileMemberOffset(SVMVMCBCTRL, AvicLogicalTablePtr,                  0xf0);
-AssertCompileMemberOffset(SVMVMCBCTRL, AvicPhysicalTablePtr,                 0xf8);
+AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptRdCRx,                        0x00);
+AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptWrCRx,                        0x02);
+AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptRdDRx,                        0x04);
+AssertCompileMemberOffset(SVMVMCBCTRL, u16InterceptWrDRx,                        0x06);
+AssertCompileMemberOffset(SVMVMCBCTRL, u32InterceptXcpt,                         0x08);
+AssertCompileMemberOffset(SVMVMCBCTRL, u64InterceptCtrl,                         0x0c);
+AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved,                               0x14);
+AssertCompileMemberOffset(SVMVMCBCTRL, u16PauseFilterThreshold,                  0x3c);
+AssertCompileMemberOffset(SVMVMCBCTRL, u16PauseFilterCount,                      0x3e);
+AssertCompileMemberOffset(SVMVMCBCTRL, u64IOPMPhysAddr,                          0x40);
+AssertCompileMemberOffset(SVMVMCBCTRL, u64MSRPMPhysAddr,                         0x48);
+AssertCompileMemberOffset(SVMVMCBCTRL, u64TSCOffset,                             0x50);
+AssertCompileMemberOffset(SVMVMCBCTRL, TLBCtrl,                                  0x58);
+AssertCompileMemberOffset(SVMVMCBCTRL, IntCtrl,                                  0x60);
+AssertCompileMemberOffset(SVMVMCBCTRL, RT_UNION_NM(intshadow.) u64IntShadowCtrl, 0x68);
+AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitCode,                              0x70);
+AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitInfo1,                             0x78);
+AssertCompileMemberOffset(SVMVMCBCTRL, u64ExitInfo2,                             0x80);
+AssertCompileMemberOffset(SVMVMCBCTRL, ExitIntInfo,                              0x88);
+AssertCompileMemberOffset(SVMVMCBCTRL, RT_UNION_NM(np.) u64NpSevCtrl,            0x90);
+AssertCompileMemberOffset(SVMVMCBCTRL, AvicBar,                                  0x98);
+AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved2,                              0xa0);
+AssertCompileMemberOffset(SVMVMCBCTRL, EventInject,                              0xa8);
+AssertCompileMemberOffset(SVMVMCBCTRL, u64NestedPagingCR3,                       0xb0);
+AssertCompileMemberOffset(SVMVMCBCTRL, RT_UNION_NM(lbrvirt.) u64LbrVirtCtrl,     0xb8);
+AssertCompileMemberOffset(SVMVMCBCTRL, u32VmcbCleanBits,                         0xc0);
+AssertCompileMemberOffset(SVMVMCBCTRL, u64NextRIP,                               0xc8);
+AssertCompileMemberOffset(SVMVMCBCTRL, cbInstrFetched,                           0xd0);
+AssertCompileMemberOffset(SVMVMCBCTRL, abInstr,                                  0xd1);
+AssertCompileMemberOffset(SVMVMCBCTRL, AvicBackingPagePtr,                       0xe0);
+AssertCompileMemberOffset(SVMVMCBCTRL, u8Reserved3,                              0xe8);
+AssertCompileMemberOffset(SVMVMCBCTRL, AvicLogicalTablePtr,                      0xf0);
+AssertCompileMemberOffset(SVMVMCBCTRL, AvicPhysicalTablePtr,                     0xf8);
 
 /**
