diff options
Diffstat (limited to 'newlib/libc/sys/linux/machine/i386/setjmp.S')
-rw-r--r-- | newlib/libc/sys/linux/machine/i386/setjmp.S | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/newlib/libc/sys/linux/machine/i386/setjmp.S b/newlib/libc/sys/linux/machine/i386/setjmp.S deleted file mode 100644 index d276f55fb..000000000 --- a/newlib/libc/sys/linux/machine/i386/setjmp.S +++ /dev/null @@ -1,91 +0,0 @@ -/* This is file is a merger of SETJMP.S and LONGJMP.S */ -/* - * This file was modified to use the __USER_LABEL_PREFIX__ and - * __REGISTER_PREFIX__ macros defined by later versions of GNU cpp by - * Joel Sherrill (joel@OARcorp.com) - * Slight change: now includes i386mach.h for this (Werner Almesberger) - * - * Copyright (C) 1991 DJ Delorie - * All rights reserved. - * - * Redistribution and use in source and binary forms is permitted - * provided that the above copyright notice and following paragraph are - * duplicated in all such forms. - * - * This file is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - - /* - ** jmp_buf: - ** eax ebx ecx edx esi edi ebp esp eip - ** 0 4 8 12 16 20 24 28 32 - */ - - #include "i386mach.h" - - .global SYM (setjmp) - .global SYM (__libc_longjmp) - .weak SYM (longjmp) - SOTYPE_FUNCTION(setjmp) - SOTYPE_FUNCTION(longjmp) - SOTYPE_FUNCTION(__libc_longjmp) - -SYM (setjmp): - - pushl ebp - movl esp,ebp - - pushl edi - movl 8 (ebp),edi - - movl eax,0 (edi) - movl ebx,4 (edi) - movl ecx,8 (edi) - movl edx,12 (edi) - movl esi,16 (edi) - - movl -4 (ebp),eax - movl eax,20 (edi) - - movl 0 (ebp),eax - movl eax,24 (edi) - - movl esp,eax - addl $12,eax - movl eax,28 (edi) - - movl 4 (ebp),eax - movl eax,32 (edi) - - popl edi - movl $0,eax - leave - ret - -SYM (__libc_longjmp): -SYM (longjmp): - .weak longjmp - pushl ebp - movl esp,ebp - - movl 8(ebp),edi /* get jmp_buf */ - movl 12(ebp),eax /* store retval in j->eax */ - movl eax,0(edi) - - movl 24(edi),ebp - - __CLI - movl 28(edi),esp - - pushl 32(edi) - - movl 0(edi),eax - movl 4(edi),ebx - movl 8(edi),ecx - movl 12(edi),edx - movl 16(edi),esi - movl 20(edi),edi - __STI - - ret |