Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/machine/i386/setjmp.S')
-rw-r--r--newlib/libc/machine/i386/setjmp.S136
1 files changed, 0 insertions, 136 deletions
diff --git a/newlib/libc/machine/i386/setjmp.S b/newlib/libc/machine/i386/setjmp.S
deleted file mode 100644
index 0f4b537b9..000000000
--- a/newlib/libc/machine/i386/setjmp.S
+++ /dev/null
@@ -1,136 +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)
- *
- ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954
- **
- ** This file is distributed under the terms listed in the document
- ** "copying.dj", available from DJ Delorie at the address above.
- ** A copy of "copying.dj" should accompany this file; if not, a copy
- ** should be available from where this file was obtained. This file
- ** may not be distributed without a verbatim copy of "copying.dj".
- **
- ** 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
- */
-
-/* These are predefined by new versions of GNU cpp. */
-
-#ifndef __USER_LABEL_PREFIX__
-#define __USER_LABEL_PREFIX__ _
-#endif
-
-/***************************** TEMPORARY ******************************
- *
- * It appears that the i386-coff configuration of gcc 2.6.2 does not
- * do the __REGISTER_PREFIX__ correctly. Fix this when it does.
- **********************************************************************/
-#define __REGISTER_PREFIX__ %
-#ifndef __REGISTER_PREFIX__
-#define __REGISTER_PREFIX__
-#endif
-
-/* ANSI concatenation macros. */
-
-#define CONCAT1(a, b) CONCAT2(a, b)
-#define CONCAT2(a, b) a ## b
-
-/* Use the right prefix for global labels. */
-
-#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x)
-
-/* Use the right prefix for registers. */
-
-#define REG(x) CONCAT1 (__REGISTER_PREFIX__, x)
-
-#define eax REG (eax)
-#define ebx REG (ebx)
-#define ecx REG (ecx)
-#define edx REG (edx)
-#define esi REG (esi)
-#define edi REG (edi)
-#define ebp REG (ebp)
-#define esp REG (esp)
-
-#define ax REG (ax)
-#define bx REG (bx)
-#define cx REG (cx)
-#define dx REG (dx)
-
-#define ah REG (ah)
-#define bh REG (bh)
-#define ch REG (ch)
-#define dh REG (dh)
-
-#define al REG (al)
-#define bl REG (bl)
-#define cl REG (cl)
-#define dl REG (dl)
-
- .global SYM (setjmp)
- .global SYM (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 (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