summaryrefslogtreecommitdiffstats
path: root/arch/x86_64/loadgdt.S
blob: e183850d3e39f1f044199ba05cce54cfc2972ec0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.global x86_64_lgdt
.type x86_64_lgdt @function
x86_64_lgdt:
    lgdt (%rdi)
.reload_segments:
    pushq $0x8
    leaq .reload_cs, %rax
    pushq %rax
    retfq
.reload_cs:
    movw $0x10, %ax
    movw %ax, %ds
    movw %ax, %es
    movw %ax, %fs
    movw %ax, %gs
    movw %ax, %ss
    retq

.global x86_64_flush_tss
.type x86_64_flush_tss @function
x86_64_flush_tss:
    movw $0x30, %ax
    ltr %ax
    retq