summaryrefslogtreecommitdiff
path: root/sys/arch/i386/stand/libsa/startprog.S
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/i386/stand/libsa/startprog.S')
-rw-r--r--sys/arch/i386/stand/libsa/startprog.S48
1 files changed, 0 insertions, 48 deletions
diff --git a/sys/arch/i386/stand/libsa/startprog.S b/sys/arch/i386/stand/libsa/startprog.S
deleted file mode 100644
index b8e248f561f..00000000000
--- a/sys/arch/i386/stand/libsa/startprog.S
+++ /dev/null
@@ -1,48 +0,0 @@
-/* $OpenBSD: startprog.S,v 1.4 1997/04/04 17:23:31 weingart Exp $ */
-
-#include <machine/asm.h>
-
-
-/*
- * startprog(phyaddr, argv)
- * start the program on protected mode where phyaddr is the entry point
- */
-ENTRY(startprog)
- pushl %ebp
- movl %esp, %ebp
-
- # get things we need into registers
- movl 8(%ebp), %ecx # entry offset
- movl 12(%ebp), %eax # &argv
-
- # make a new stack at 0:0x90000 (big segs)
- movl $0x10, %ebx
- movw %bx, %ss
- movl $0x90000, %ebx
- movl %ebx, %esp
-
- # push some number of args onto the stack
- pushl 28(%eax) # argv[7] = cnvmem
- pushl 32(%eax) # argv[8] = extmem
- pushl 16(%eax) # argv[4] = esym
- pushl 12(%eax) # argv[3] = cyl offset
- pushl 8(%eax) # argv[2] = bootdev
- pushl 4(%eax) # argv[1] = howto
- pushl $0 # dummy 'return' address
-
- # push on our entry address
- movl $0x8, %ebx # segment
- pushl %ebx
- pushl %ecx
-
- # convert over the other data segs
- movl $0x10, %ebx
- movl %bx, %ds
- movl %bx, %es
- movl %bx, %ss
- movl %bx, %fs
- movl %bx, %gs
-
- # convert the PC (and code seg)
- lret
-