aboutsummaryrefslogtreecommitdiff
path: root/sys/rt/i386
diff options
context:
space:
mode:
Diffstat (limited to 'sys/rt/i386')
-rw-r--r--sys/rt/i386/rt1.s14
-rw-r--r--sys/rt/i386/rti.s9
-rw-r--r--sys/rt/i386/rtn.s7
3 files changed, 30 insertions, 0 deletions
diff --git a/sys/rt/i386/rt1.s b/sys/rt/i386/rt1.s
new file mode 100644
index 0000000..aef4f05
--- /dev/null
+++ b/sys/rt/i386/rt1.s
@@ -0,0 +1,14 @@
+.extern rt·thunk
+
+.text
+.global _start
+_start:
+ xor %ebp,%ebp
+ mov %esp,%eax
+ and $-16,%esp
+ push %eax
+ push %eax
+ push %eax
+ push %eax
+ call rt·thunk
+");
diff --git a/sys/rt/i386/rti.s b/sys/rt/i386/rti.s
new file mode 100644
index 0000000..d2682a2
--- /dev/null
+++ b/sys/rt/i386/rti.s
@@ -0,0 +1,9 @@
+.section .init
+.global _init
+_init:
+ sub $12,%esp
+
+.section .fini
+.global _fini
+_fini:
+ sub $12,%esp
diff --git a/sys/rt/i386/rtn.s b/sys/rt/i386/rtn.s
new file mode 100644
index 0000000..f3b61e0
--- /dev/null
+++ b/sys/rt/i386/rtn.s
@@ -0,0 +1,7 @@
+.section .init
+ add $12,%esp
+ ret
+
+.section .fini
+ add $12,%esp
+ ret