Adding upstream version 3.86+dfsg.
[syslinux-debian/hramrach.git] / com32 / lib / sys / exit.S
blob2ab8012221d97937388554c2d2d82b4572398106
1 /*
2  * Implementation of _exit() for com32 based on c32entry.S
3  */
4         .text
6         .globl _Exit
7         .type _Exit, @function
8 _Exit:
9         /* Just fall through to _exit */
10         .size _Exit, .-_Exit
12         .globl _exit
13         .type _exit, @function
14 _exit:
15 #ifdef REGPARM
16         pushl %eax
17 #endif
19         /* Run any destructors */
20         movl $__dtors_start, %esi
22         cmpl $__dtors_end, %esi
23         jae 1f
24         call *(%esi)
25         addl $4,%esi
26         jmp 2b
29 #ifdef REGPARM
30         popl %eax
31 #else
32         movl 4(%esp),%eax               # Exit code in %eax = return value
33 #endif
34         movl (__entry_esp),%esp         # Return stack pointer to entry value
35         ret                             # Return to termination address
36         .size _exit, .-_exit
38         .data
39 __exit_handler:
40         .globl __exit_handler
41         .long _exit