1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
.code64
.section .text
.global setup_page_tables_64
setup_page_tables_64:
push %rbx
push %rcx
push %rdx
mov %rdi, %rax
shr $39, %rax
and $0x1FF, %rax
mov %rdi, %rbx
shr $30, %rbx
and $0x1FF, %rbx
mov %rdi, %rcx
shr $21, %rcx
and $0x1FF, %rcx
mov %cr3, %rdx
mov (%rdx,%rax,8), %rax
and $~0xFFF, %rax
mov (%rax,%rbx,8), %rax
and $~0xFFF, %rax
mov %rdi, %rdx
and $~0x1FFFFF, %rdx
or $0x8B, %rdx
mov %rdx, (%rax,%rcx,8)
invlpg (%rdi)
pop %rdx
pop %rcx
pop %rbx
ret
|