mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-20 05:19:21 +08:00
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.
This commit is contained in:
parent
e0b0f63573
commit
ef44da427f
@ -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>
|
2000-08-25 DJ Delorie <dj@redhat.com>
|
||||||
|
|
||||||
* libc/include/sys/unistd.h (environ): this one isn't from the
|
* libc/include/sys/unistd.h (environ): this one isn't from the
|
||||||
|
@ -20,6 +20,7 @@ There is no error checking or setting of errno.
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (_f_atan2)
|
.global SYM (_f_atan2)
|
||||||
|
SOTYPE_FUNCTION(_f_atan2)
|
||||||
|
|
||||||
SYM (_f_atan2):
|
SYM (_f_atan2):
|
||||||
pushl ebp
|
pushl ebp
|
||||||
|
@ -20,6 +20,7 @@ There is no error checking or setting of errno.
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (_f_atan2f)
|
.global SYM (_f_atan2f)
|
||||||
|
SOTYPE_FUNCTION(_f_atan2f)
|
||||||
|
|
||||||
SYM (_f_atan2f):
|
SYM (_f_atan2f):
|
||||||
pushl ebp
|
pushl ebp
|
||||||
|
@ -21,6 +21,7 @@ There is no error checking or setting of errno.
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (_f_frexp)
|
.global SYM (_f_frexp)
|
||||||
|
SOTYPE_FUNCTION(_f_frexp)
|
||||||
|
|
||||||
SYM (_f_frexp):
|
SYM (_f_frexp):
|
||||||
pushl ebp
|
pushl ebp
|
||||||
|
@ -21,6 +21,7 @@ There is no error checking or setting of errno.
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (_f_frexpf)
|
.global SYM (_f_frexpf)
|
||||||
|
SOTYPE_FUNCTION(_f_frexpf)
|
||||||
|
|
||||||
SYM (_f_frexpf):
|
SYM (_f_frexpf):
|
||||||
pushl ebp
|
pushl ebp
|
||||||
|
@ -20,6 +20,7 @@ There is no error checking or setting of errno.
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (_f_ldexp)
|
.global SYM (_f_ldexp)
|
||||||
|
SOTYPE_FUNCTION(_f_ldexp)
|
||||||
|
|
||||||
SYM (_f_ldexp):
|
SYM (_f_ldexp):
|
||||||
pushl ebp
|
pushl ebp
|
||||||
|
@ -20,6 +20,7 @@ There is no error checking or setting of errno.
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (_f_ldexpf)
|
.global SYM (_f_ldexpf)
|
||||||
|
SOTYPE_FUNCTION(_f_ldexpf)
|
||||||
|
|
||||||
SYM (_f_ldexpf):
|
SYM (_f_ldexpf):
|
||||||
pushl ebp
|
pushl ebp
|
||||||
|
@ -20,6 +20,7 @@ There is no error checking or setting of errno.
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (_f_log)
|
.global SYM (_f_log)
|
||||||
|
SOTYPE_FUNCTION(_f_log)
|
||||||
|
|
||||||
SYM (_f_log):
|
SYM (_f_log):
|
||||||
pushl ebp
|
pushl ebp
|
||||||
|
@ -20,6 +20,7 @@ There is no error checking or setting of errno.
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (_f_log10)
|
.global SYM (_f_log10)
|
||||||
|
SOTYPE_FUNCTION(_f_log10)
|
||||||
|
|
||||||
SYM (_f_log10):
|
SYM (_f_log10):
|
||||||
pushl ebp
|
pushl ebp
|
||||||
|
@ -20,6 +20,7 @@ There is no error checking or setting of errno.
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (_f_log10f)
|
.global SYM (_f_log10f)
|
||||||
|
SOTYPE_FUNCTION(_f_log10f)
|
||||||
|
|
||||||
SYM (_f_log10f):
|
SYM (_f_log10f):
|
||||||
pushl ebp
|
pushl ebp
|
||||||
|
@ -20,6 +20,7 @@ There is no error checking or setting of errno.
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (_f_logf)
|
.global SYM (_f_logf)
|
||||||
|
SOTYPE_FUNCTION(_f_logf)
|
||||||
|
|
||||||
SYM (_f_logf):
|
SYM (_f_logf):
|
||||||
pushl ebp
|
pushl ebp
|
||||||
|
@ -20,6 +20,7 @@ There is no error checking or setting of errno.
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (_f_tan)
|
.global SYM (_f_tan)
|
||||||
|
SOTYPE_FUNCTION(_f_tan)
|
||||||
|
|
||||||
SYM (_f_tan):
|
SYM (_f_tan):
|
||||||
pushl ebp
|
pushl ebp
|
||||||
|
@ -20,6 +20,7 @@ There is no error checking or setting of errno.
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (_f_tanf)
|
.global SYM (_f_tanf)
|
||||||
|
SOTYPE_FUNCTION(_f_tanf)
|
||||||
|
|
||||||
SYM (_f_tanf):
|
SYM (_f_tanf):
|
||||||
pushl ebp
|
pushl ebp
|
||||||
|
@ -67,3 +67,17 @@
|
|||||||
#define mm5 REG(mm5)
|
#define mm5 REG(mm5)
|
||||||
#define mm6 REG(mm6)
|
#define mm6 REG(mm6)
|
||||||
#define mm7 REG(mm7)
|
#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
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (memchr)
|
.global SYM (memchr)
|
||||||
|
SOTYPE_FUNCTION(memchr)
|
||||||
|
|
||||||
SYM (memchr):
|
SYM (memchr):
|
||||||
pushl ebp
|
pushl ebp
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (memcmp)
|
.global SYM (memcmp)
|
||||||
|
SOTYPE_FUNCTION(memcmp)
|
||||||
|
|
||||||
SYM (memcmp):
|
SYM (memcmp):
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (memcpy)
|
.global SYM (memcpy)
|
||||||
|
SOTYPE_FUNCTION(memcpy)
|
||||||
|
|
||||||
SYM (memcpy):
|
SYM (memcpy):
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (memmove)
|
.global SYM (memmove)
|
||||||
|
SOTYPE_FUNCTION(memmove)
|
||||||
|
|
||||||
SYM (memmove):
|
SYM (memmove):
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (memset)
|
.global SYM (memset)
|
||||||
|
SOTYPE_FUNCTION(memset)
|
||||||
|
|
||||||
SYM (memset):
|
SYM (memset):
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
* This file was modified to use the __USER_LABEL_PREFIX__ and
|
* This file was modified to use the __USER_LABEL_PREFIX__ and
|
||||||
* __REGISTER_PREFIX__ macros defined by later versions of GNU cpp by
|
* __REGISTER_PREFIX__ macros defined by later versions of GNU cpp by
|
||||||
* Joel Sherrill (joel@OARcorp.com)
|
* 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
|
** 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
|
** 0 4 8 12 16 20 24 28 32
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* These are predefined by new versions of GNU cpp. */
|
#include "i386mach.h"
|
||||||
|
|
||||||
#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 (setjmp)
|
||||||
.global SYM (longjmp)
|
.global SYM (longjmp)
|
||||||
|
SOTYPE_FUNCTION(setjmp)
|
||||||
|
SOTYPE_FUNCTION(longjmp)
|
||||||
|
|
||||||
SYM (setjmp):
|
SYM (setjmp):
|
||||||
|
|
||||||
@ -120,7 +72,7 @@ SYM (longjmp):
|
|||||||
|
|
||||||
movl 24(edi),ebp
|
movl 24(edi),ebp
|
||||||
|
|
||||||
cli
|
__CLI
|
||||||
movl 28(edi),esp
|
movl 28(edi),esp
|
||||||
|
|
||||||
pushl 32(edi)
|
pushl 32(edi)
|
||||||
@ -131,6 +83,6 @@ SYM (longjmp):
|
|||||||
movl 12(edi),edx
|
movl 12(edi),edx
|
||||||
movl 16(edi),esi
|
movl 16(edi),esi
|
||||||
movl 20(edi),edi
|
movl 20(edi),edi
|
||||||
sti
|
__STI
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (strchr)
|
.global SYM (strchr)
|
||||||
|
SOTYPE_FUNCTION(strchr)
|
||||||
|
|
||||||
SYM (strchr):
|
SYM (strchr):
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include "i386mach.h"
|
#include "i386mach.h"
|
||||||
|
|
||||||
.global SYM (strlen)
|
.global SYM (strlen)
|
||||||
|
SOTYPE_FUNCTION(strlen)
|
||||||
|
|
||||||
SYM (strlen):
|
SYM (strlen):
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user