diff options
| author | Fabian Imhof <fabian.imhof@ost.ch> | 2025-03-27 14:02:05 +0000 |
|---|---|---|
| committer | Fabian Imhof <fabian.imhof@ost.ch> | 2025-03-27 14:02:05 +0000 |
| commit | 9ddfcd02413a93718e8cde53f9ba5a96a5b29b8f (patch) | |
| tree | a31e132e717c9acc68f2480e9d50d78b32711262 /arch/x86_64/src/boot | |
| parent | a6c5f6a273d0c5c4161f600fca6d4fe49858c23c (diff) | |
| download | teachos-9ddfcd02413a93718e8cde53f9ba5a96a5b29b8f.tar.xz teachos-9ddfcd02413a93718e8cde53f9ba5a96a5b29b8f.zip | |
update long jump handling
Diffstat (limited to 'arch/x86_64/src/boot')
| -rw-r--r-- | arch/x86_64/src/boot/boot.s | 16 |
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) |
