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.S60
1 files changed, 6 insertions, 54 deletions
diff --git a/newlib/libc/machine/i386/setjmp.S b/newlib/libc/machine/i386/setjmp.S
index 0f4b537b9..89217627e 100644
--- a/newlib/libc/machine/i386/setjmp.S
+++ b/newlib/libc/machine/i386/setjmp.S
@@ -3,6 +3,7 @@
* 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, 24 Kirsten Ave, Rochester NH 03867-2954
**
@@ -22,61 +23,12 @@
** 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)
+ #include "i386mach.h"
.global SYM (setjmp)
.global SYM (longjmp)
+ SOTYPE_FUNCTION(setjmp)
+ SOTYPE_FUNCTION(longjmp)
SYM (setjmp):
@@ -120,7 +72,7 @@ SYM (longjmp):
movl 24(edi),ebp
- cli
+ __CLI
movl 28(edi),esp
pushl 32(edi)
@@ -131,6 +83,6 @@ SYM (longjmp):
movl 12(edi),edx
movl 16(edi),esi
movl 20(edi),edi
- sti
+ __STI
ret