- uint32_t *pd;
-
- /* Copy CR3, the page directory base register (PDBR), into `pd'
- for us to exmaine. See [IA32-v2a] "MOV--Move to/from
- Control Registers" and [IA32-v3] 3.7.5. */
- asm ("movl %%cr3,%0" : "=r" (pd));
- return pd;
+ /* Copy CR3, the page directory base register (PDBR), into
+ `pd'.
+ See [IA32-v2a] "MOV--Move to/from Control Registers" and
+ [IA32-v3] 3.7.5. */
+ uintptr_t pd;
+ asm ("mov %0, %%cr3" : "=r" (pd));
+ return ptov (pd);