github.com/jspc/eggos@v0.5.1-0.20221028160421-556c75c878a5/kernel/mm/mm.s (about) 1 #include "textflag.h" 2 3 // pageEnable enables translation from virtual address (linear address) to 4 // physical address, based on the page directory set in the CR3 register. 5 TEXT ·pageEnable(SB), NOSPLIT, $0-0 6 // enable PAE 7 MOVQ CR4, AX 8 BTSQ $5, AX 9 MOVQ AX, CR4 10 11 // enable page 12 MOVQ CR0, AX 13 BTSQ $31, AX 14 MOVQ AX, CR0 15 RET 16 17 // lcr3(topPage uint64) sets the CR3 register. 18 TEXT ·lcr3(SB), NOSPLIT, $0-8 19 // setup page dir 20 MOVQ topPage+0(FP), AX 21 MOVQ AX, CR3 22 RET 23