diff options
Diffstat (limited to 'src/libc/_start.s')
-rw-r--r-- | src/libc/_start.s | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libc/_start.s b/src/libc/_start.s new file mode 100644 index 0000000..12d2c5f --- /dev/null +++ b/src/libc/_start.s @@ -0,0 +1,17 @@ +.section .text +.global _start +.type _start, @function +.weak _start +_start: + mov %rsp, %rdi + and $~0xF, %rsp + + /* prevent floating point crashes. thanks heat */ + push $0x1f80 + ldmxcsr (%rsp) + add $8, %rsp + + call _start2 + hlt + /* the call shouldn't return, thus the hlt. + * using a call instead of jmp for stack alignment */ |