~serge-hallyn/ubuntu/oneiric/ipxe/link-kvm

« back to all changes in this revision

Viewing changes to src/arch/i386/core/linux/linuxprefix.S

  • Committer: Bazaar Package Importer
  • Author(s): Bastian Blank
  • Date: 2011-07-31 20:57:02 UTC
  • mfrom: (2.1.1 sid)
  • Revision ID: james.westby@ubuntu.com-20110731205702-kffmzz6tnmgfw50f
Tags: 1.0.0+git-2.149b50-1
New snapshot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <linux/unistd.h>
 
2
 
 
3
        .section ".text"
 
4
        .code32
 
5
        .globl _linux_start
 
6
        .type _linux_start, @function
 
7
 
 
8
_linux_start:
 
9
        xorl    %ebp, %ebp
 
10
 
 
11
        popl    %esi       // save argc
 
12
        movl    %esp, %edi // save argv
 
13
 
 
14
        andl    $~15, %esp // 16-byte align the stack
 
15
 
 
16
        pushl   %edi // argv -> C arg2
 
17
        pushl   %esi // argc -> C arg1
 
18
 
 
19
        call    save_args
 
20
 
 
21
        /* Our main doesn't use any arguments */
 
22
        call    main
 
23
 
 
24
        movl    %eax, %ebx // rc -> syscall arg1
 
25
        movl    $__NR_exit, %eax
 
26
        int     $0x80
 
27
 
 
28
        .size _linux_start, . - _linux_start