1 /* This is file is a merger of SETJMP.S and LONGJMP.S */
3 * This file was modified to use the __USER_LABEL_PREFIX__ and
4 * __REGISTER_PREFIX__ macros defined by later versions of GNU cpp by
5 * Joel Sherrill (joel@OARcorp.com)
6 * Slight change: now includes i386mach.h for this (Werner Almesberger)
8 * Copyright (C) 1991 DJ Delorie
11 * Redistribution, modification, and use in source and binary forms is permitted
12 * provided that the above copyright notice and following paragraph are
13 * duplicated in all such forms.
15 * This file is distributed WITHOUT ANY WARRANTY; without even the implied
16 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21 ** eax ebx ecx edx esi edi ebp esp eip
22 ** 0 4 8 12 16 20 24 28 32
25 ** ebx esi edi ebp esp eip
33 SOTYPE_FUNCTION(setjmp)
34 SOTYPE_FUNCTION(longjmp)
48 /* Skip return address, which will be pushed onto stack in
49 longjmp, and store SP. */
93 /* Restore stack first. */
96 /* Put return address on stack. */
108 movl 8(ebp),edi /* get jmp_buf */
109 movl 12(ebp),eax /* store retval in j->eax */