summaryrefslogtreecommitdiff
path: root/src/libc/_start.s
diff options
context:
space:
mode:
authordzwdz2023-08-14 18:51:07 +0200
committerdzwdz2023-08-14 18:51:07 +0200
commit642b5fb0007b64c77d186fcb018d571152ee1d47 (patch)
tree1c466461f3602d306be309a053edae558ef2568e /src/libc/_start.s
parent8050069c57b729c18c19b1a03ab6e4bf63b4735e (diff)
reorganization: first steps
Diffstat (limited to 'src/libc/_start.s')
-rw-r--r--src/libc/_start.s17
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 */