Index: /trunk/include/VBox/cpum.h
===================================================================
--- /trunk/include/VBox/cpum.h	(revision 8159)
+++ /trunk/include/VBox/cpum.h	(revision 8160)
@@ -377,9 +377,9 @@
 CPUMDECL(RTSEL)     CPUMGetGuestTR(PVM pVM);
 CPUMDECL(RTSEL)     CPUMGetGuestLDTR(PVM pVM);
-CPUMDECL(uint32_t)  CPUMGetGuestCR0(PVM pVM);
-CPUMDECL(uint32_t)  CPUMGetGuestCR2(PVM pVM);
-CPUMDECL(uint32_t)  CPUMGetGuestCR3(PVM pVM);
-CPUMDECL(uint32_t)  CPUMGetGuestCR4(PVM pVM);
-CPUMDECL(int)       CPUMGetGuestCRx(PVM pVM, uint32_t iReg, uint32_t *pValue);
+CPUMDECL(uint64_t)  CPUMGetGuestCR0(PVM pVM);
+CPUMDECL(uint64_t)  CPUMGetGuestCR2(PVM pVM);
+CPUMDECL(uint64_t)  CPUMGetGuestCR3(PVM pVM);
+CPUMDECL(uint64_t)  CPUMGetGuestCR4(PVM pVM);
+CPUMDECL(int)       CPUMGetGuestCRx(PVM pVM, unsigned iReg, uint64_t *pValue);
 CPUMDECL(uint32_t)  CPUMGetGuestEFlags(PVM pVM);
 CPUMDECL(uint32_t)  CPUMGetGuestEIP(PVM pVM);
@@ -423,9 +423,8 @@
 CPUMDECL(int)       CPUMSetGuestTR(PVM pVM, uint16_t tr);
 CPUMDECL(int)       CPUMSetGuestLDTR(PVM pVM, uint16_t ldtr);
-CPUMDECL(int)       CPUMSetGuestCR0(PVM pVM, uint32_t cr0);
-CPUMDECL(int)       CPUMSetGuestCR2(PVM pVM, uint32_t cr2);
-CPUMDECL(int)       CPUMSetGuestCR3(PVM pVM, uint32_t cr3);
-CPUMDECL(int)       CPUMSetGuestCR4(PVM pVM, uint32_t cr4);
-CPUMDECL(int)       CPUMSetGuestCRx(PVM pVM, uint32_t iReg, uint32_t Value);
+CPUMDECL(int)       CPUMSetGuestCR0(PVM pVM, uint64_t cr0);
+CPUMDECL(int)       CPUMSetGuestCR2(PVM pVM, uint64_t cr2);
+CPUMDECL(int)       CPUMSetGuestCR3(PVM pVM, uint64_t cr3);
+CPUMDECL(int)       CPUMSetGuestCR4(PVM pVM, uint64_t cr4);
 CPUMDECL(int)       CPUMSetGuestDR0(PVM pVM, RTGCUINTREG uDr0);
 CPUMDECL(int)       CPUMSetGuestDR1(PVM pVM, RTGCUINTREG uDr1);
Index: /trunk/src/VBox/Debugger/testcase/tstDBGCStubs.cpp
===================================================================
--- /trunk/src/VBox/Debugger/testcase/tstDBGCStubs.cpp	(revision 8159)
+++ /trunk/src/VBox/Debugger/testcase/tstDBGCStubs.cpp	(revision 8160)
@@ -23,10 +23,10 @@
 #include <VBox/cpum.h>
 
-CPUMDECL(uint32_t) CPUMGetGuestCR3(PVM pVM)
-{
-    return 0;
-}
-
-CPUMDECL(uint32_t) CPUMGetGuestCR4(PVM pVM)
+CPUMDECL(uint64_t) CPUMGetGuestCR3(PVM pVM)
+{
+    return 0;
+}
+
+CPUMDECL(uint64_t) CPUMGetGuestCR4(PVM pVM)
 {
     return 0;
Index: /trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp	(revision 8159)
+++ /trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp	(revision 8160)
@@ -456,5 +456,5 @@
  * @param   cr0     The new CR0 value.
  */
-CPUMDECL(int) CPUMSetGuestCR0(PVM pVM, uint32_t cr0)
+CPUMDECL(int) CPUMSetGuestCR0(PVM pVM, uint64_t cr0)
 {
 #ifdef IN_GC
@@ -522,5 +522,5 @@
 }
 
-CPUMDECL(int) CPUMSetGuestCR2(PVM pVM, uint32_t cr2)
+CPUMDECL(int) CPUMSetGuestCR2(PVM pVM, uint64_t cr2)
 {
     pVM->cpum.s.Guest.cr2 = cr2;
@@ -528,5 +528,5 @@
 }
 
-CPUMDECL(int) CPUMSetGuestCR3(PVM pVM, uint32_t cr3)
+CPUMDECL(int) CPUMSetGuestCR3(PVM pVM, uint64_t cr3)
 {
     pVM->cpum.s.Guest.cr3 = cr3;
@@ -535,5 +535,5 @@
 }
 
-CPUMDECL(int) CPUMSetGuestCR4(PVM pVM, uint32_t cr4)
+CPUMDECL(int) CPUMSetGuestCR4(PVM pVM, uint64_t cr4)
 {
     if (    (cr4                   & (X86_CR4_PGE | X86_CR4_PAE | X86_CR4_PSE))
@@ -695,20 +695,20 @@
 }
 
-CPUMDECL(uint32_t) CPUMGetGuestCR0(PVM pVM)
+CPUMDECL(uint64_t) CPUMGetGuestCR0(PVM pVM)
 {
     return pVM->cpum.s.Guest.cr0;
 }
 
-CPUMDECL(uint32_t) CPUMGetGuestCR2(PVM pVM)
+CPUMDECL(uint64_t) CPUMGetGuestCR2(PVM pVM)
 {
     return pVM->cpum.s.Guest.cr2;
 }
 
-CPUMDECL(uint32_t) CPUMGetGuestCR3(PVM pVM)
+CPUMDECL(uint64_t) CPUMGetGuestCR3(PVM pVM)
 {
     return pVM->cpum.s.Guest.cr3;
 }
 
-CPUMDECL(uint32_t) CPUMGetGuestCR4(PVM pVM)
+CPUMDECL(uint64_t) CPUMGetGuestCR4(PVM pVM)
 {
     return pVM->cpum.s.Guest.cr4;
@@ -776,5 +776,5 @@
 
 //@todo: crx should be an array
-CPUMDECL(int) CPUMGetGuestCRx(PVM pVM, uint32_t iReg, uint32_t *pValue)
+CPUMDECL(int) CPUMGetGuestCRx(PVM pVM, unsigned iReg, uint64_t *pValue)
 {
     switch (iReg)
Index: /trunk/src/VBox/VMM/VMMAll/EMAll.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/EMAll.cpp	(revision 8159)
+++ /trunk/src/VBox/VMM/VMMAll/EMAll.cpp	(revision 8160)
@@ -1652,12 +1652,13 @@
 EMDECL(int) EMInterpretCRxRead(PVM pVM, PCPUMCTXCORE pRegFrame, uint32_t DestRegGen, uint32_t SrcRegCrx)
 {
-    uint32_t val32;
-
-    int rc = CPUMGetGuestCRx(pVM, SrcRegCrx, &val32);
+    uint64_t val64;
+
+    int rc = CPUMGetGuestCRx(pVM, SrcRegCrx, &val64);
     AssertMsgRCReturn(rc, ("CPUMGetGuestCRx %d failed\n", SrcRegCrx), VERR_EM_INTERPRETER);
-    rc = DISWriteReg32(pRegFrame, DestRegGen, val32);
+    /** @todo AMD64 */
+    rc = DISWriteReg32(pRegFrame, DestRegGen, val64);
     if(VBOX_SUCCESS(rc))
     {
-        LogFlow(("MOV_CR: gen32=%d CR=%d val=%08x\n", DestRegGen, SrcRegCrx, val32));
+        LogFlow(("MOV_CR: gen32=%d CR=%d val=%VX64\n", DestRegGen, SrcRegCrx, val64));
         return VINF_SUCCESS;
     }
Index: /trunk/src/VBox/VMM/VMMAll/PGMAllGst.h
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/PGMAllGst.h	(revision 8159)
+++ /trunk/src/VBox/VMM/VMMAll/PGMAllGst.h	(revision 8160)
@@ -192,5 +192,5 @@
 
         /*
-         * Get PT entry and check presentness.
+         * Get PT entry and check presence.
          */
         const GSTPTE Pte = pPT->a[(GCPtr >> GST_PT_SHIFT) & GST_PT_MASK];
