diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2000-08-28 21:50:06 +0400 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2000-08-28 21:50:06 +0400 |
commit | ef44da427fe0883e1b4fd60cacbcc94b574f5911 (patch) | |
tree | 85b2a701adb2953eb2d4042e11d3e91fa907c7f8 /newlib/libc/machine/i386/setjmp.S | |
parent | e0b0f635738c6bfce3bffe916ebf41908b4620fb (diff) |
2000-08-27 Werner Almesberger <Werner.Almesberger@epfl.ch>
* libc/machine/i386/i386mach.h: added SOTYPE_FUNCTION to set type
of global entry points if _I386MACH_NEED_SOTYPE_FUNCTION is defined;
Added __CLI and __STI macros (controlled via
_I386MACH_ALLOW_HW_INTERRUPTS macro).
* libc/machine/i386/f_atan2.S libc/machine/i386/f_atan2f.S
libc/machine/i386/f_frexp.S libc/machine/i386/f_frexpf.S
libc/machine/i386/f_ldexp.S libc/machine/i386/f_ldexpf.S
libc/machine/i386/f_log.S libc/machine/i386/f_log10.S
libc/machine/i386/f_log10f.S libc/machine/i386/f_logf.S
libc/machine/i386/f_tan.S libc/machine/i386/f_tanf.S
libc/machine/i386/memchr.S libc/machine/i386/memcmp.S
libc/machine/i386/memcpy.S libc/machine/i386/memmove.S
libc/machine/i386/memset.S libc/machine/i386/setjmp.S
libc/machine/i386/strchr.S libc/machine/i386/strlen.S:
(that's libc/machine/i386/*.S) added SOTYPE_FUNCTION(symbol)
for all global entry points.
* libc/machine/i386/setjmp.S: removed code replicated in
libc/machine/i386/i386mach.h and included i386mach.h instead;
Use __CLI and __STI instead of cli and sti.
Diffstat (limited to 'newlib/libc/machine/i386/setjmp.S')
-rw-r--r-- | newlib/libc/machine/i386/setjmp.S | 60 |
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 |