Index: kernel/arch/amd64/include/arch/mm/page.h
===================================================================
--- kernel/arch/amd64/include/arch/mm/page.h	(revision 0161d16f488812ac5f568c902b2f0e67ad2c8486)
+++ kernel/arch/amd64/include/arch/mm/page.h	(revision f114d4010c88c0ab6071917e47c05a3beb48bc7c)
@@ -93,16 +93,11 @@
 /* Get PTE address accessors for each level. */
 #define GET_PTL1_ADDRESS_ARCH(ptl0, i) \
-	((pte_t *) ((((uint64_t) ((pte_t *) (ptl0))[(i)].addr_12_31) << 12) | \
-	    (((uint64_t) ((pte_t *) (ptl0))[(i)].addr_32_62) << 32)))
+	((pte_t *) (((uint64_t) ((pte_t *) (ptl0))[(i)].addr_12_51) << 12))
 #define GET_PTL2_ADDRESS_ARCH(ptl1, i) \
-	((pte_t *) ((((uint64_t) ((pte_t *) (ptl1))[(i)].addr_12_31) << 12) | \
-	    (((uint64_t) ((pte_t *) (ptl1))[(i)].addr_32_62) << 32)))
+	((pte_t *) (((uint64_t) ((pte_t *) (ptl1))[(i)].addr_12_51) << 12))
 #define GET_PTL3_ADDRESS_ARCH(ptl2, i) \
-	((pte_t *) ((((uint64_t) ((pte_t *) (ptl2))[(i)].addr_12_31) << 12) | \
-	    (((uint64_t) ((pte_t *) (ptl2))[(i)].addr_32_62) << 32)))
+	((pte_t *) (((uint64_t) ((pte_t *) (ptl2))[(i)].addr_12_51) << 12))
 #define GET_FRAME_ADDRESS_ARCH(ptl3, i) \
-	((uintptr_t *) \
-	    ((((uint64_t) ((pte_t *) (ptl3))[(i)].addr_12_31) << 12) | \
-	    (((uint64_t) ((pte_t *) (ptl3))[(i)].addr_32_62) << 32)))
+	((uintptr_t *) (((uint64_t) ((pte_t *) (ptl3))[(i)].addr_12_51) << 12))
 
 /* Set PTE address accessors for each level. */
@@ -154,6 +149,5 @@
 	((p)->present != 0)
 #define PTE_GET_FRAME_ARCH(p) \
-	((((uintptr_t) (p)->addr_12_31) << 12) | \
-	    ((uintptr_t) (p)->addr_32_62 << 32))
+	(((uintptr_t) (p)->addr_12_51) << 12)
 #define PTE_WRITABLE_ARCH(p) \
 	((p)->writeable != 0)
@@ -202,6 +196,6 @@
 	unsigned int soft_valid : 1;  /**< Valid content even if present bit is cleared. */
 	unsigned int avl : 2;
-	unsigned int addr_12_31 : 20;
-	unsigned int addr_32_62 : 31;
+	unsigned long addr_12_51 : 40;
+	unsigned int reserved : 11;
 	unsigned int no_execute : 1;
 } __attribute__((packed)) pte_t;
@@ -224,6 +218,5 @@
 	pte_t *p = &pt[i];
 
-	p->addr_12_31 = (a >> 12) & UINT32_C(0xfffff);
-	p->addr_32_62 = a >> 32;
+	p->addr_12_51 = (a >> 12) & UINT64_C(0xffffffffff);
 }
 
