diff --git a/arch/x86_64/gdt_load.S b/arch/x86_64/gdt_load.S index dc57492..6f102d7 100644 --- a/arch/x86_64/gdt_load.S +++ b/arch/x86_64/gdt_load.S @@ -3,6 +3,10 @@ .global gdt_load .type gdt_load, @function +# gdt_load(struct gdt_ptr *gdtp) +# Loads GDTR with the specified GDT pointer. +# Expects entries 1 and 2 (offsets 0x08 and 0x10) to be kernel +# code and kernel data respectively. gdt_load: pushq %rbp movq %rsp, %rbp @@ -16,13 +20,13 @@ gdt_load: mov %ax, %fs mov %ax, %gs - movabsq $(gdt_load2), %rax + movabsq $(1f), %rax push $0x08 push %rax lretq -gdt_load2: +1: popq %rbp ret