blob: 22c9da7864370d0f2984bdd2db1ecaf98e5df5af (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# $Id$
#
# 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
|