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
path: root/newlib
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2000-08-28 21:50:06 +0400
committerJeff Johnston <jjohnstn@redhat.com>2000-08-28 21:50:06 +0400
commitef44da427fe0883e1b4fd60cacbcc94b574f5911 (patch)
tree85b2a701adb2953eb2d4042e11d3e91fa907c7f8 /newlib
parente0b0f635738c6bfce3bffe916ebf41908b4620fb (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')
-rw-r--r--newlib/ChangeLog22
-rw-r--r--newlib/libc/machine/i386/f_atan2.S1
-rw-r--r--newlib/libc/machine/i386/f_atan2f.S1
-rw-r--r--newlib/libc/machine/i386/f_frexp.S1
-rw-r--r--newlib/libc/machine/i386/f_frexpf.S1
-rw-r--r--newlib/libc/machine/i386/f_ldexp.S1
-rw-r--r--newlib/libc/machine/i386/f_ldexpf.S1
-rw-r--r--newlib/libc/machine/i386/f_log.S1
-rw-r--r--newlib/libc/machine/i386/f_log10.S1
-rw-r--r--newlib/libc/machine/i386/f_log10f.S1
-rw-r--r--newlib/libc/machine/i386/f_logf.S1
-rw-r--r--newlib/libc/machine/i386/f_tan.S1
-rw-r--r--newlib/libc/machine/i386/f_tanf.S1
-rw-r--r--newlib/libc/machine/i386/i386mach.h14
-rw-r--r--newlib/libc/machine/i386/memchr.S1
-rw-r--r--newlib/libc/machine/i386/memcmp.S1
-rw-r--r--newlib/libc/machine/i386/memcpy.S1
-rw-r--r--newlib/libc/machine/i386/memmove.S1
-rw-r--r--newlib/libc/machine/i386/memset.S1
-rw-r--r--newlib/libc/machine/i386/setjmp.S60
-rw-r--r--newlib/libc/machine/i386/strchr.S1
-rw-r--r--newlib/libc/machine/i386/strlen.S1
22 files changed, 61 insertions, 54 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index bccd51def..68283e31c 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,25 @@
+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.
+
2000-08-25 DJ Delorie <dj@redhat.com>
* libc/include/sys/unistd.h (environ): this one isn't from the
diff --git a/newlib/libc/machine/i386/f_atan2.S b/newlib/libc/machine/i386/f_atan2.S
index c6f3a7acd..51ac98140 100644
--- a/newlib/libc/machine/i386/f_atan2.S
+++ b/newlib/libc/machine/i386/f_atan2.S
@@ -20,6 +20,7 @@ There is no error checking or setting of errno.
#include "i386mach.h"
.global SYM (_f_atan2)
+ SOTYPE_FUNCTION(_f_atan2)
SYM (_f_atan2):
pushl ebp
diff --git a/newlib/libc/machine/i386/f_atan2f.S b/newlib/libc/machine/i386/f_atan2f.S
index d56a16709..092fec4d6 100644
--- a/newlib/libc/machine/i386/f_atan2f.S
+++ b/newlib/libc/machine/i386/f_atan2f.S
@@ -20,6 +20,7 @@ There is no error checking or setting of errno.
#include "i386mach.h"
.global SYM (_f_atan2f)
+ SOTYPE_FUNCTION(_f_atan2f)
SYM (_f_atan2f):
pushl ebp
diff --git a/newlib/libc/machine/i386/f_frexp.S b/newlib/libc/machine/i386/f_frexp.S
index 8724f524a..58397b79c 100644
--- a/newlib/libc/machine/i386/f_frexp.S
+++ b/newlib/libc/machine/i386/f_frexp.S
@@ -21,6 +21,7 @@ There is no error checking or setting of errno.
#include "i386mach.h"
.global SYM (_f_frexp)
+ SOTYPE_FUNCTION(_f_frexp)
SYM (_f_frexp):
pushl ebp
diff --git a/newlib/libc/machine/i386/f_frexpf.S b/newlib/libc/machine/i386/f_frexpf.S
index 05f0555d6..13d5a82be 100644
--- a/newlib/libc/machine/i386/f_frexpf.S
+++ b/newlib/libc/machine/i386/f_frexpf.S
@@ -21,6 +21,7 @@ There is no error checking or setting of errno.
#include "i386mach.h"
.global SYM (_f_frexpf)
+ SOTYPE_FUNCTION(_f_frexpf)
SYM (_f_frexpf):
pushl ebp
diff --git a/newlib/libc/machine/i386/f_ldexp.S b/newlib/libc/machine/i386/f_ldexp.S
index 8a877193f..af6b05825 100644
--- a/newlib/libc/machine/i386/f_ldexp.S
+++ b/newlib/libc/machine/i386/f_ldexp.S
@@ -20,6 +20,7 @@ There is no error checking or setting of errno.
#include "i386mach.h"
.global SYM (_f_ldexp)
+ SOTYPE_FUNCTION(_f_ldexp)
SYM (_f_ldexp):
pushl ebp
diff --git a/newlib/libc/machine/i386/f_ldexpf.S b/newlib/libc/machine/i386/f_ldexpf.S
index e2bf387b0..cded4cd95 100644
--- a/newlib/libc/machine/i386/f_ldexpf.S
+++ b/newlib/libc/machine/i386/f_ldexpf.S
@@ -20,6 +20,7 @@ There is no error checking or setting of errno.
#include "i386mach.h"
.global SYM (_f_ldexpf)
+ SOTYPE_FUNCTION(_f_ldexpf)
SYM (_f_ldexpf):
pushl ebp
diff --git a/newlib/libc/machine/i386/f_log.S b/newlib/libc/machine/i386/f_log.S
index 8d5ea7299..e0eb7e0b1 100644
--- a/newlib/libc/machine/i386/f_log.S
+++ b/newlib/libc/machine/i386/f_log.S
@@ -20,6 +20,7 @@ There is no error checking or setting of errno.
#include "i386mach.h"
.global SYM (_f_log)
+ SOTYPE_FUNCTION(_f_log)
SYM (_f_log):
pushl ebp
diff --git a/newlib/libc/machine/i386/f_log10.S b/newlib/libc/machine/i386/f_log10.S
index 95ab45bf3..eed997f16 100644
--- a/newlib/libc/machine/i386/f_log10.S
+++ b/newlib/libc/machine/i386/f_log10.S
@@ -20,6 +20,7 @@ There is no error checking or setting of errno.
#include "i386mach.h"
.global SYM (_f_log10)
+ SOTYPE_FUNCTION(_f_log10)
SYM (_f_log10):
pushl ebp
diff --git a/newlib/libc/machine/i386/f_log10f.S b/newlib/libc/machine/i386/f_log10f.S
index cdf321ecc..5f781e309 100644
--- a/newlib/libc/machine/i386/f_log10f.S
+++ b/newlib/libc/machine/i386/f_log10f.S
@@ -20,6 +20,7 @@ There is no error checking or setting of errno.
#include "i386mach.h"
.global SYM (_f_log10f)
+ SOTYPE_FUNCTION(_f_log10f)
SYM (_f_log10f):
pushl ebp
diff --git a/newlib/libc/machine/i386/f_logf.S b/newlib/libc/machine/i386/f_logf.S
index cff3b359f..3620c05c4 100644
--- a/newlib/libc/machine/i386/f_logf.S
+++ b/newlib/libc/machine/i386/f_logf.S
@@ -20,6 +20,7 @@ There is no error checking or setting of errno.
#include "i386mach.h"
.global SYM (_f_logf)
+ SOTYPE_FUNCTION(_f_logf)
SYM (_f_logf):
pushl ebp
diff --git a/newlib/libc/machine/i386/f_tan.S b/newlib/libc/machine/i386/f_tan.S
index 5221d5e1b..ae0431f4a 100644
--- a/newlib/libc/machine/i386/f_tan.S
+++ b/newlib/libc/machine/i386/f_tan.S
@@ -20,6 +20,7 @@ There is no error checking or setting of errno.
#include "i386mach.h"
.global SYM (_f_tan)
+ SOTYPE_FUNCTION(_f_tan)
SYM (_f_tan):
pushl ebp
diff --git a/newlib/libc/machine/i386/f_tanf.S b/newlib/libc/machine/i386/f_tanf.S
index e8251e03c..23ba7376a 100644
--- a/newlib/libc/machine/i386/f_tanf.S
+++ b/newlib/libc/machine/i386/f_tanf.S
@@ -20,6 +20,7 @@ There is no error checking or setting of errno.
#include "i386mach.h"
.global SYM (_f_tanf)
+ SOTYPE_FUNCTION(_f_tanf)
SYM (_f_tanf):
pushl ebp
diff --git a/newlib/libc/machine/i386/i386mach.h b/newlib/libc/machine/i386/i386mach.h
index bd6cf22f0..23c32190d 100644
--- a/newlib/libc/machine/i386/i386mach.h
+++ b/newlib/libc/machine/i386/i386mach.h
@@ -67,3 +67,17 @@
#define mm5 REG(mm5)
#define mm6 REG(mm6)
#define mm7 REG(mm7)
+
+#ifdef _I386MACH_NEED_SOTYPE_FUNCTION
+#define SOTYPE_FUNCTION(sym) .type SYM(sym),@function
+#else
+#define SOTYPE_FUNCTION(sym)
+#endif
+
+#ifdef _I386MACH_ALLOW_HW_INTERRUPTS
+#define __CLI
+#define __STI
+#else
+#define __CLI cli
+#define __STI sti
+#endif
diff --git a/newlib/libc/machine/i386/memchr.S b/newlib/libc/machine/i386/memchr.S
index 40e29af4f..e950a24f1 100644
--- a/newlib/libc/machine/i386/memchr.S
+++ b/newlib/libc/machine/i386/memchr.S
@@ -11,6 +11,7 @@
#include "i386mach.h"
.global SYM (memchr)
+ SOTYPE_FUNCTION(memchr)
SYM (memchr):
pushl ebp
diff --git a/newlib/libc/machine/i386/memcmp.S b/newlib/libc/machine/i386/memcmp.S
index 23419ddb8..a8589c095 100644
--- a/newlib/libc/machine/i386/memcmp.S
+++ b/newlib/libc/machine/i386/memcmp.S
@@ -11,6 +11,7 @@
#include "i386mach.h"
.global SYM (memcmp)
+ SOTYPE_FUNCTION(memcmp)
SYM (memcmp):
diff --git a/newlib/libc/machine/i386/memcpy.S b/newlib/libc/machine/i386/memcpy.S
index c0fd8f27e..488290fdc 100644
--- a/newlib/libc/machine/i386/memcpy.S
+++ b/newlib/libc/machine/i386/memcpy.S
@@ -11,6 +11,7 @@
#include "i386mach.h"
.global SYM (memcpy)
+ SOTYPE_FUNCTION(memcpy)
SYM (memcpy):
diff --git a/newlib/libc/machine/i386/memmove.S b/newlib/libc/machine/i386/memmove.S
index a89a296f7..04eaf1479 100644
--- a/newlib/libc/machine/i386/memmove.S
+++ b/newlib/libc/machine/i386/memmove.S
@@ -11,6 +11,7 @@
#include "i386mach.h"
.global SYM (memmove)
+ SOTYPE_FUNCTION(memmove)
SYM (memmove):
diff --git a/newlib/libc/machine/i386/memset.S b/newlib/libc/machine/i386/memset.S
index 12e33e443..9ba227217 100644
--- a/newlib/libc/machine/i386/memset.S
+++ b/newlib/libc/machine/i386/memset.S
@@ -11,6 +11,7 @@
#include "i386mach.h"
.global SYM (memset)
+ SOTYPE_FUNCTION(memset)
SYM (memset):
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
diff --git a/newlib/libc/machine/i386/strchr.S b/newlib/libc/machine/i386/strchr.S
index f224f380c..736f307cd 100644
--- a/newlib/libc/machine/i386/strchr.S
+++ b/newlib/libc/machine/i386/strchr.S
@@ -11,6 +11,7 @@
#include "i386mach.h"
.global SYM (strchr)
+ SOTYPE_FUNCTION(strchr)
SYM (strchr):
diff --git a/newlib/libc/machine/i386/strlen.S b/newlib/libc/machine/i386/strlen.S
index cae390ace..10d393aa4 100644
--- a/newlib/libc/machine/i386/strlen.S
+++ b/newlib/libc/machine/i386/strlen.S
@@ -11,6 +11,7 @@
#include "i386mach.h"
.global SYM (strlen)
+ SOTYPE_FUNCTION(strlen)
SYM (strlen):