aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/boot/entry64.s
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/src/boot/entry64.s')
-rw-r--r--arch/x86_64/src/boot/entry64.s62
1 files changed, 0 insertions, 62 deletions
diff --git a/arch/x86_64/src/boot/entry64.s b/arch/x86_64/src/boot/entry64.s
deleted file mode 100644
index 29fb778..0000000
--- a/arch/x86_64/src/boot/entry64.s
+++ /dev/null
@@ -1,62 +0,0 @@
-.section .stack, "aw", @nobits
-
-.align 16
-.global stack_top
-stack_bottom: .skip 1 << 20
-stack_top:
-stack_size = stack_top - stack_bottom
-
-.section .bss, "aw", @nobits
-
-//! A structure containing information gathered during the bootstrap process.
-//! Expected layout (as described by teachos::boot::information):
-//!
-//! struct
-//! {
-//! multiboot2::information_view const * mbi;
-//! std::size_t vga_buffer_index;
-//! }
-.global bootstrap_information
-bootstrap_information: .skip 16
-
-.section .boot_text, "ax", @progbits
-.code64
-
-.global _entry64
-_entry64:
- mov $global_descriptor_table_data, %rax
- mov %rax, %ss
- mov %rax, %ds
- mov %rax, %es
- mov %rax, %fs
- mov %rax, %gs
-
- mov $stack_top, %rsp
- mov %rsp, %rbp
-
- mov multiboot_information_pointer, %rax
- or $TEACHOS_VMA, %rax
- mov vga_buffer_pointer, %rdx
- sub $0xb8000, %rdx
- mov %rax, (bootstrap_information)
- mov %rdx, (bootstrap_information + 8)
-
- call invoke_global_constructors
-
- xor %rax, %rax
- mov %rax, %rbp
- mov %rax, %rdx
- mov %rax, %rsi
-
- mov $stack_size, %rcx
- shr $3, %rcx
- lea (stack_bottom), %rdi
- rep stosq
-
- mov %rax, %rdi
-
- call main
-
-1:
- hlt
- jmp 1b