aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/boot
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/src/boot')
-rw-r--r--arch/x86_64/src/boot/boot.s16
1 files changed, 6 insertions, 10 deletions
diff --git a/arch/x86_64/src/boot/boot.s b/arch/x86_64/src/boot/boot.s
index 35a6121..f6c7978 100644
--- a/arch/x86_64/src/boot/boot.s
+++ b/arch/x86_64/src/boot/boot.s
@@ -354,8 +354,11 @@ prepare_page_maps:
.section .boot_text, "ax", @progbits
.code64
-.global segment_register_reload_pointer
-segment_register_reload_pointer:
+.global reload_segment_register_trampoline
+reload_segment_register_trampoline:
+ jmp 0x08, $_reload_cs
+
+_reload_cs:
xor %rax, %rax
mov %rax, %ss
mov %rax, %ds
@@ -366,14 +369,7 @@ segment_register_reload_pointer:
ret
_transition_to_long_mode:
- //call segment_register_reload_pointer
-
- xor %rax, %rax
- mov %rax, %ss
- mov %rax, %ds
- mov %rax, %es
- mov %rax, %fs
- mov %rax, %gs
+ call _reload_cs
movl $0xb8000, (vga_buffer_pointer)