.global load_gdt .type load_gdt @function load_gdt: lgdt (%rdi) .reload_segments: pushq $0x8 leaq .reload_cs(%rip), %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 .size load_gdt, . - load_gdt .global load_tss .type load_tss @function load_tss: movw $0x30, %ax ltr %ax retq .size load_tss, . - load_tss