-
-#ifdef PAE
- movl PA(EXT(IdlePDPT)), %eax
- movl (%eax), %esi /* save orig */
- movl 24(%eax), %ebx
- movl %ebx, (%eax) /* identity map low mem */
- movl %eax, %cr3
-
- movl PA(saved_cr4), %eax
- movl %eax, %cr4
-#else
- movl PA(saved_cr4), %eax
- movl %eax, %cr4
-
- /*
- * Temporarily use the page tables at IdlePTD
- * to enable paging. Copy the KPTDI entry to
- * entry 0 in the PTD to identity map the kernel.
- */
- movl PA(EXT(IdlePTD)), %eax
- movl %eax, %ebx
- addl $(KPTDI << PTEINDX), %ebx /* bytes per PDE */
- movl (%ebx), %ebx /* IdlePTD[KPTDI] */
- movl (%eax), %esi /* save original IdlePTD[0] */
- movl %ebx, (%eax) /* update IdlePTD[0] */
- movl %eax, %cr3 /* CR3 = IdlePTD */
-#endif