Adding upstream version 3.30~pre4.
[syslinux-debian/hramrach.git] / com32 / lib / sys / exit.S
blob024aaf5ebc89c128d3e7f4a96abdf02776c89f00
2 # Implementation of _exit() for com32 based on c32entry.S
4         .text
5         .globl _exit
6         .type _exit, @function
7 _exit:
8 #ifdef REGPARM
9         pushl %eax
10 #endif
12         # Run any destructors
13         movl $__dtors_start, %esi
15         cmpl $__dtors_end, %esi
16         jae 1f
17         call *(%esi)
18         addl $4,%esi
19         jmp 2b
22 #ifdef REGPARM
23         popl %eax
24 #else
25         movl 4(%esp),%eax               # Exit code in %eax = return value
26 #endif
27         movl (__entry_esp),%esp         # Return stack pointer to entry value
28         ret                             # Return to termination address
29         .size _exit, .-_exit
31         .data
32 __exit_handler:
33         .globl __exit_handler
34         .long _exit