Index: /trunk/include/VBox/vm.h
===================================================================
--- /trunk/include/VBox/vm.h	(revision 22892)
+++ /trunk/include/VBox/vm.h	(revision 22893)
@@ -126,6 +126,82 @@
         struct CPUMCPU      s;
 #endif
-        char                padding[3456];      /* multiple of 64 */
+        uint8_t             padding[3456];      /* multiple of 64 */
     } cpum;
+
+    /** HWACCM part. */
+    union
+    {
+#ifdef ___HWACCMInternal_h
+        struct HWACCMCPU    s;
+#endif
+        uint8_t             padding[5248];      /* multiple of 64 */
+    } hwaccm;
+
+    /** EM part. */
+    union
+    {
+#ifdef ___EMInternal_h
+        struct EMCPU        s;
+#endif
+        uint8_t             padding[1408];      /* multiple of 64 */
+    } em;
+
+    /** TRPM part. */
+    union
+    {
+#ifdef ___TRPMInternal_h
+        struct TRPMCPU      s;
+#endif
+        uint8_t             padding[128];       /* multiple of 64 */
+    } trpm;
+
+    /** TM part. */
+    union
+    {
+#ifdef ___TMInternal_h
+        struct TMCPU        s;
+#endif
+        uint8_t             padding[64];        /* multiple of 64 */
+    } tm;
+
+    /** VMM part. */
+    union
+    {
+#ifdef ___VMMInternal_h
+        struct VMMCPU       s;
+#endif
+        uint8_t             padding[384];       /* multiple of 64 */
+    } vmm;
+
+    /** PDM part. */
+    union
+    {
+#ifdef ___PDMInternal_h
+        struct PDMCPU       s;
+#endif
+        uint8_t             padding[128];       /* multiple of 64 */
+    } pdm;
+
+    /** IOM part. */
+    union
+    {
+#ifdef ___IOMInternal_h
+        struct IOMCPU       s;
+#endif
+        uint8_t             padding[512];       /* multiple of 64 */
+    } iom;
+
+    /** DBGF part.
+     * @todo Combine this with other tiny structures. */
+    union
+    {
+#ifdef ___DBGFInternal_h
+        struct DBGFCPU      s;
+#endif
+        uint8_t             padding[64];        /* multiple of 64 */
+    } dbgf;
+
+    /** Align the following members on page boundrary. */
+    uint8_t                 abAlignment2[832];
 
     /** PGM part. */
@@ -135,82 +211,7 @@
         struct PGMCPU       s;
 #endif
-        char                padding[28*1024];   /* multiple of 64 */
+        uint8_t             padding[28*1024];   /* multiple of 4096 */
     } pgm;
 
-    /** HWACCM part. */
-    union
-    {
-#ifdef ___HWACCMInternal_h
-        struct HWACCMCPU    s;
-#endif
-        char                padding[5248];      /* multiple of 64 */
-    } hwaccm;
-
-    /** EM part. */
-    union
-    {
-#ifdef ___EMInternal_h
-        struct EMCPU        s;
-#endif
-        char                padding[1408];      /* multiple of 64 */
-    } em;
-
-    /** TRPM part. */
-    union
-    {
-#ifdef ___TRPMInternal_h
-        struct TRPMCPU      s;
-#endif
-        char                padding[128];       /* multiple of 64 */
-    } trpm;
-
-    /** TM part. */
-    union
-    {
-#ifdef ___TMInternal_h
-        struct TMCPU        s;
-#endif
-        char                padding[64];        /* multiple of 64 */
-    } tm;
-
-    /** VMM part. */
-    union
-    {
-#ifdef ___VMMInternal_h
-        struct VMMCPU       s;
-#endif
-        char                padding[384];       /* multiple of 64 */
-    } vmm;
-
-    /** PDM part. */
-    union
-    {
-#ifdef ___PDMInternal_h
-        struct PDMCPU       s;
-#endif
-        char                padding[128];       /* multiple of 64 */
-    } pdm;
-
-    /** IOM part. */
-    union
-    {
-#ifdef ___IOMInternal_h
-        struct IOMCPU       s;
-#endif
-        char                padding[512];       /* multiple of 64 */
-    } iom;
-
-    /** DBGF part.
-     * @todo Combine this with other tiny structures. */
-    union
-    {
-#ifdef ___DBGFInternal_h
-        struct DBGFCPU      s;
-#endif
-        uint8_t             padding[64];        /* multiple of 64 */
-    } dbgf;
-
-    /** Align the structure size at page boundrary. */
-    uint8_t                 abAlignment2[832];
 } VMCPU;
 
Index: /trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp
===================================================================
--- /trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp	(revision 22892)
+++ /trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp	(revision 22893)
@@ -174,5 +174,4 @@
     PRINT_OFFSET(VMCPU, cpum);
     CHECK_PADDING_VMCPU(64, cpum);
-    CHECK_PADDING_VMCPU(64, pgm);
     CHECK_PADDING_VMCPU(64, hwaccm);
     CHECK_PADDING_VMCPU(64, em);
@@ -183,4 +182,8 @@
     CHECK_PADDING_VMCPU(64, iom);
     CHECK_PADDING_VMCPU(64, dbgf);
+    CHECK_PADDING_VMCPU(4096, pgm);
+#ifdef VBOX_WITH_STATISTICS
+    PRINT_OFFSET(VMCPU, pgm.s.pStatTrap0eAttributionRC);
+#endif
 
     CHECK_MEMBER_ALIGNMENT(VM, selm.s.Tss, 16);
