am 1c057607
: Merge "Fix _exit_with_stack_teardown for x86."
* commit '1c057607d89229f5effaf1acf2ecde24ece41389': Fix _exit_with_stack_teardown for x86.
This commit is contained in:
commit
a1d1a46ef6
@ -3,12 +3,13 @@
|
||||
|
||||
// void _exit_with_stack_teardown(void* stackBase, size_t stackSize, int status)
|
||||
ENTRY(_exit_with_stack_teardown)
|
||||
// We can trash %ebx here since this call should never return.
|
||||
// We can trash registers because this function never returns.
|
||||
// We can also take advantage of the fact that the linux syscall trap
|
||||
// handler saves all the registers, so we don't need a stack to keep
|
||||
// the status argument for exit while doing the munmap.
|
||||
mov 4(%esp), %ebx // stackBase
|
||||
mov 8(%esp), %ecx // stackSize
|
||||
mov 12(%esp), %edx // Also copy 'status' off the stack we're about to unmap.
|
||||
mov $__NR_munmap, %eax
|
||||
int $0x80
|
||||
// If munmap failed, we ignore the failure and exit anyway.
|
||||
|
Loading…
Reference in New Issue
Block a user