.global gdt_load .type gdt_load @function gdt_load: lgdt (%rdi) .reload_segments: pushq $0x8 leaq .reload_cs, %rax pushq %rax lretq .reload_cs: movw $0x10, %ax movw %ax, %ds movw %ax, %es movw %ax, %fs movw %ax, %gs movw %ax, %ss retq .size gdt_load, . - gdt_load .global tss_flush .type tss_flush @function tss_flush: movw %di, %ax ltr %ax retq .size tss_flush, . - tss_flush