From eb637d0bbb6357a14dbc56ca26bf3b565679cc59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Sat, 11 Nov 2017 19:43:14 +0100 Subject: [PATCH] Move stack to .bss and use it for function calls as well --- src/kernel/Link.ld | 4 ++-- src/kernel/boot/boot.S | 16 +++++++--------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/kernel/Link.ld b/src/kernel/Link.ld index 6af0594..37b3e28 100644 --- a/src/kernel/Link.ld +++ b/src/kernel/Link.ld @@ -8,8 +8,8 @@ SECTIONS *(.text) } - .data : + .bss : { - *(.data) + *(.bss) } } diff --git a/src/kernel/boot/boot.S b/src/kernel/boot/boot.S index 44e59d7..bacebc8 100644 --- a/src/kernel/boot/boot.S +++ b/src/kernel/boot/boot.S @@ -1,12 +1,10 @@ .intel_syntax noprefix -.section .data -check_cpuid_stack_top: - .long 0 - .long 0 - .long 0 -check_cpuid_stack: - nop +.section .bss +.align 0x1000 +.skip 0x1000 +BootStack: +.byte 0 .section .text @@ -18,7 +16,6 @@ error: jmp $ check_cpuid: - mov check_cpuid_stack, esp pushfd pushfd xor dword ptr[esp], 1<<21 @@ -51,8 +48,9 @@ check_longmode: _start: cli +mov esp, offset BootStack + call check_cpuid call check_longmode - jmp $