home *** CD-ROM | disk | FTP | other *** search
- # $Id: exit.S,v 1.2 2004/12/17 19:40:41 hpa Exp $
- #
- # Implementation of _exit() for com32 based on c32entry.S
- #
- .text
- .globl _exit
- .type _exit, @function
- _exit:
- #ifdef REGPARM
- pushl %eax
- #endif
-
- # Run any destructors
- movl $__dtors_start, %esi
- 2:
- cmpl $__dtors_end, %esi
- jae 1f
- call *(%esi)
- addl $4,%esi
- jmp 2b
-
- 1:
- #ifdef REGPARM
- popl %eax
- #else
- movl 4(%esp),%eax # Exit code in %eax = return value
- #endif
- movl (__entry_esp),%esp # Return stack pointer to entry value
- ret # Return to termination address
- .size _exit, .-_exit
-
- .data
- __exit_handler:
- .globl __exit_handler
- .long _exit
-