Commit | Line | Data |
---|---|---|
1 | .text | |
2 | ||
3 | /* void do_entry(Elf32_Addr entry, void *stack_frame, int stack_frame_size, void *exitf); */ | |
4 | ||
5 | .globl do_entry | |
6 | do_entry: | |
7 | movl 4(%esp), %ebx | |
8 | movl 8(%esp), %esi | |
9 | movl 12(%esp), %eax | |
10 | movl 16(%esp), %edx | |
11 | ||
12 | movl %eax, %ecx | |
13 | shll $2, %ecx | |
14 | subl %ecx, %esp | |
15 | ||
16 | /* copy stack frame */ | |
17 | movl %esp, %edi | |
18 | 0: | |
19 | movl (%esi), %ecx | |
20 | movl %ecx, (%edi) | |
21 | addl $4, %esi | |
22 | addl $4, %edi | |
23 | subl $1, %eax | |
24 | jg 0b | |
25 | ||
26 | jmp *%ebx |