try to handle exec-gp2xmenu exit
[ginge.git] / loader / loader_ia32.s
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