Index: /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp	(revision 78224)
+++ /trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp	(revision 78225)
@@ -353,5 +353,5 @@
 static int  hmR0VmxImportGuestState(PVMCPU pVCpu, PCVMXVMCSINFO pVmcsInfo, uint64_t fWhat);
 #if HC_ARCH_BITS == 32 && defined(VBOX_ENABLE_64_BITS_GUESTS)
-static int  hmR0VmxInitVmcsReadCache(PVMCPU pVCpu);
+static void hmR0VmxInitVmcsReadCache(PVMCPU pVCpu);
 #endif
 
@@ -7529,5 +7529,11 @@
                      *        @bugref{9180#c39}. */
                     rc  = VMXReadVmcs32(VMX_VMCS_GUEST_CR0,              &u32Val);
-                    rc |= VMXReadVmcsHstN(VMX_VMCS_CTRL_CR0_READ_SHADOW, &u64Shadow);
+#if HC_ARCH_BITS == 32
+                    uint32_t u32Shadow;
+                    rc |= VMXReadVmcs32(VMX_VMCS_CTRL_CR0_READ_SHADOW, &u32Shadow);
+                    u64Shadow = u32Shadow;
+#else
+                    rc |= VMXReadVmcs64(VMX_VMCS_CTRL_CR0_READ_SHADOW, &u64Shadow);
+#endif
                     VMXLOCAL_BREAK_RC(rc);
                     u64Val = u32Val;
@@ -7545,5 +7551,11 @@
                      *        @bugref{9180#c39}. */
                     rc  = VMXReadVmcs32(VMX_VMCS_GUEST_CR4,              &u32Val);
-                    rc |= VMXReadVmcsHstN(VMX_VMCS_CTRL_CR4_READ_SHADOW, &u64Shadow);
+#if HC_ARCH_BITS == 32
+                    uint32_t u32Shadow;
+                    rc |= VMXReadVmcs32(VMX_VMCS_CTRL_CR4_READ_SHADOW, &u32Shadow);
+                    u64Shadow = u32Shadow;
+#else
+                    rc |= VMXReadVmcs64(VMX_VMCS_CTRL_CR4_READ_SHADOW, &u64Shadow);
+#endif
                     VMXLOCAL_BREAK_RC(rc);
                     u64Val = u32Val;
