diff options
Diffstat (limited to 'contrib/syslinux/syslinux-4.03/memdump/crt0.S')
-rw-r--r-- | contrib/syslinux/syslinux-4.03/memdump/crt0.S | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/contrib/syslinux/syslinux-4.03/memdump/crt0.S b/contrib/syslinux/syslinux-4.03/memdump/crt0.S deleted file mode 100644 index 92297ec..0000000 --- a/contrib/syslinux/syslinux-4.03/memdump/crt0.S +++ /dev/null @@ -1,53 +0,0 @@ - .code16 - -#ifndef REGPARM -# error "This file assumes -mregparm=3 -DREGPARM=3" -#endif - - .section ".init","ax" - .globl _start - .type _start,@function -_start: - # Align the stack and make sure the high half is zero - andl $0xfff8,%esp - - # Clear the .bss - cld - xorl %eax,%eax - movw $__bss_start,%di - movw $_end+3,%cx - subw %di,%cx - shrw $2,%cx - rep ; stosl - - # Compute argc and argv (assumes REGPARM) - xorl %edx,%edx - movzbw 0x80,%bx - movb %dl,0x81(%bx) # Zero-terminate string - movb $0x81,%dl - pushl %eax # Make space for argv - movl %esp,%eax - calll __parse_argv - pushl %eax # argc - - # Initialize malloc - # calll __init_memory_arena - - # Now call main... (NOTE: gcc forces main to be regparm 0) - popl %eax # argc - popl %edx # argv - calll main - - # Here %eax is the exit code, fall through into exit - - .size _start,.-_start - - .globl exit - .type exit,@function -exit: - # Exit code already in %eax - movb $0x4c,%ah # Terminate program - int $0x21 -1: hlt - jmp 1b - .size exit,.-exit |