Index: /trunk/include/VBox/vm.h
===================================================================
--- /trunk/include/VBox/vm.h	(revision 22887)
+++ /trunk/include/VBox/vm.h	(revision 22888)
@@ -118,5 +118,5 @@
      *          following it (to grow into and align the struct size).
      *   */
-    uint32_t                au32Alignment[HC_ARCH_BITS == 32 ? 7 : 3];
+    uint8_t                 abAlignment1[HC_ARCH_BITS == 32 ? 28 : 12];
 
     /** CPUM part. */
@@ -211,6 +211,6 @@
     } dbgf;
 
-    /** Align at page boundrary. */
-    uint8_t                 abReserved[960];
+    /** Align the structure size at page boundrary. */
+    uint8_t                 abAlignment2[960];
 } VMCPU;
 
@@ -813,5 +813,5 @@
     /** Padding - the unions must be aligned on a 64 bytes boundrary and the unions
      *  must start at the same offset on both 64-bit and 32-bit hosts. */
-    uint32_t                    padding[HC_ARCH_BITS == 32 ? 4+8 : 6];
+    uint8_t                     abAlignment1[HC_ARCH_BITS == 32 ? 48 : 24];
 
     /** CPUM part. */
@@ -993,5 +993,5 @@
 
     /** Padding for aligning the cpu array on a page boundrary. */
-    uint8_t         abReserved2[2120];
+    uint8_t         abAlignment2[2120];
 
     /* ---- end small stuff ---- */
Index: /trunk/include/VBox/vm.mac
===================================================================
--- /trunk/include/VBox/vm.mac	(revision 22887)
+++ /trunk/include/VBox/vm.mac	(revision 22888)
@@ -96,4 +96,13 @@
     .StatSwitcherTSS        resb STAMPROFILEADV_size
 
+%ifndef HC_ARCH_BITS
+ %error "Missing HC_ARCH_BITS"
+%endif
+%if HC_ARCH_BITS == 32
+    .abAlignment1           resb 48
+%else
+    .abAlignment1           resb 24
+%endif
+
     alignb 64
     .cpum                   resb 1472
Index: /trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp
===================================================================
--- /trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp	(revision 22887)
+++ /trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp	(revision 22888)
@@ -112,5 +112,5 @@
     do \
     { \
-        printf("%s::%s offset %#x (%d) sizeof %d\n",  #strct, #member, (int)RT_OFFSETOF(strct, member), (int)RT_OFFSETOF(strct, member), (int)RT_SIZEOFMEMB(strct, member)); \
+        printf("info: %s::%s offset %#x (%d) sizeof %d\n",  #strct, #member, (int)RT_OFFSETOF(strct, member), (int)RT_OFFSETOF(strct, member), (int)RT_SIZEOFMEMB(strct, member)); \
     } while (0)
 
