diff options
author | Ulrich Drepper <drepper@redhat.com> | 1997-10-26 20:13:00 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1997-10-26 20:13:00 +0000 |
commit | af6f39063b4433ee73647159200d105994d75b49 (patch) | |
tree | 9775bb32db5cffc9ab0fba29a6c11d853cbcd943 /sysdeps/m68k | |
parent | f2ea0f5b0d6ff2bbf261a5fd3d61f967e36f22e6 (diff) | |
download | glibc-af6f39063b4433ee73647159200d105994d75b49.tar glibc-af6f39063b4433ee73647159200d105994d75b49.tar.gz glibc-af6f39063b4433ee73647159200d105994d75b49.tar.bz2 glibc-af6f39063b4433ee73647159200d105994d75b49.zip |
Update.cvs/libc-ud-971026
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
Diffstat (limited to 'sysdeps/m68k')
-rw-r--r-- | sysdeps/m68k/fpu/bits/mathinline.h | 69 | ||||
-rw-r--r-- | sysdeps/m68k/fpu/s_lrint.c | 16 | ||||
-rw-r--r-- | sysdeps/m68k/fpu/s_lrintf.c | 3 | ||||
-rw-r--r-- | sysdeps/m68k/fpu/s_lrintl.c | 3 | ||||
-rw-r--r-- | sysdeps/m68k/fpu/s_scalbln.c | 2 | ||||
-rw-r--r-- | sysdeps/m68k/fpu/s_scalblnf.c | 2 | ||||
-rw-r--r-- | sysdeps/m68k/fpu/s_scalblnl.c | 2 | ||||
-rw-r--r-- | sysdeps/m68k/fpu/s_scalbn.c | 29 | ||||
-rw-r--r-- | sysdeps/m68k/fpu/s_scalbnf.c | 4 | ||||
-rw-r--r-- | sysdeps/m68k/fpu/s_scalbnl.c | 4 | ||||
-rw-r--r-- | sysdeps/m68k/sys/ucontext.h | 108 |
11 files changed, 207 insertions, 35 deletions
diff --git a/sysdeps/m68k/fpu/bits/mathinline.h b/sysdeps/m68k/fpu/bits/mathinline.h index 1e68ea00c0..c3ed76c0de 100644 --- a/sysdeps/m68k/fpu/bits/mathinline.h +++ b/sysdeps/m68k/fpu/bits/mathinline.h @@ -76,12 +76,16 @@ /* This is used when defining the functions themselves. Define them with __ names, and with `static inline' instead of `extern inline' so the bodies will always be used, never an external function call. */ -# define __m81_u(x) __CONCAT(__,x) -# define __m81_inline static __inline +#define __m81_u(x) __CONCAT(__,x) +#define __m81_inline static __inline #else -# define __m81_u(x) x -# define __m81_inline extern __inline -# define __M81_MATH_INLINES 1 +#define __m81_u(x) x +#ifdef __cplusplus +#define __m81_inline __inline +#else +#define __m81_inline extern __inline +#endif +#define __M81_MATH_INLINES 1 #endif /* Define a const math function. */ @@ -95,12 +99,12 @@ is the name of the fpu operation (without leading f). */ #if defined __USE_MISC || defined __USE_ISOC9X -# define __inline_mathop(func, op) \ +#define __inline_mathop(func, op) \ __inline_mathop1(double, func, op) \ __inline_mathop1(float, __CONCAT(func,f), op) \ __inline_mathop1(long double, __CONCAT(func,l), op) #else -# define __inline_mathop(func, op) \ +#define __inline_mathop(func, op) \ __inline_mathop1(double, func, op) #endif @@ -309,13 +313,19 @@ __m81_defun (int, __CONCAT(__signbit,s), (float_type __value)) \ } \ \ __m81_defun (float_type, __CONCAT(__scalbn,s), \ - (float_type __x, long int __n)) \ + (float_type __x, int __n)) \ { \ float_type __result; \ __asm ("fscale%.l %1, %0" : "=f" (__result) : "dmi" (__n), "0" (__x)); \ return __result; \ } \ \ +__m81_defun (float_type, __CONCAT(__scalbln,s), \ + (float_type __x, long int __n)) \ +{ \ + return __CONCAT(__scalbn,s) (__x, __n); \ +} \ + \ __m81_defun (float_type, __CONCAT(__nearbyint,s), (float_type __x)) \ { \ float_type __result; \ @@ -330,12 +340,26 @@ __m81_defun (float_type, __CONCAT(__nearbyint,s), (float_type __x)) \ return __result; \ } \ \ +__m81_defun (long int, __CONCAT(__lrint,s), (float_type __x)) \ +{ \ + long int __result; \ + __asm ("fmove%.l %1, %0" : "=dm" (__result) : "f" (__x)); \ + return __result; \ +} \ + \ __m81_inline void \ __m81_u(__CONCAT(__sincos,s))(float_type __x, float_type *__sinx, \ float_type *__cosx) \ { \ __asm ("fsincos%.x %2,%1:%0" \ : "=f" (*__sinx), "=f" (*__cosx) : "f" (__x)); \ +} \ + \ +__m81_inline float_type \ +__m81_u(__CONCAT(__fma,s))(float_type __x, float_type __y, \ + float_type __z) \ +{ \ + return (__x * __y) + __z; \ } /* This defines the three variants of the inline functions. */ @@ -344,17 +368,12 @@ __inline_functions (float,f) __inline_functions (long double,l) #undef __inline_functions -__m81_defun (long int, __lrint, (long double __x)) -{ - long int __result; - __asm ("fmove%.l %1, %0" : "=dm" (__result) : "f" (__x)); - return __result; -} - #if !defined __NO_MATH_INLINES && defined __OPTIMIZE__ /* Define inline versions of the user visible functions. */ +/* Note that there must be no whitespace before the argument passed for + NAME, to make token pasting work correctly with -traditional. */ #define __inline_forward_c(rettype, name, args1, args2) \ extern __inline rettype __attribute__((__const__)) \ name args1 \ @@ -375,7 +394,8 @@ __inline_forward_c(double,ceil, (double __x), (__x)) #ifdef __USE_MISC __inline_forward_c(int,isinf, (double __value), (__value)) __inline_forward_c(int,finite, (double __value), (__value)) -__inline_forward_c(double,scalbn, (double __x, long int __n), (__x, __n)) +__inline_forward_c(double,scalbn, (double __x, int __n), (__x, __n)) +__inline_forward_c(double,scalbln, (double __x, long int __n), (__x, __n)) #endif #if defined __USE_MISC || defined __USE_XOPEN #ifndef __USE_ISOC9X /* Conflict with macro of same name. */ @@ -384,6 +404,9 @@ __inline_forward_c(int,isnan, (double __value), (__value)) #endif #ifdef __USE_ISOC9X __inline_forward_c(double,nearbyint, (double __value), (__value)) +__inline_forward_c(long int,lrint, (double __value), (__value)) +__inline_forward_c(double,fma, (double __x, double __y, double __z), + (__x, __y, __z)) #endif #ifdef __USE_GNU __inline_forward(void,sincos, (double __x, double *__sinx, double *__cosx), @@ -399,11 +422,15 @@ __inline_forward_c(float,ceilf, (float __x), (__x)) #ifdef __USE_MISC __inline_forward_c(int,isinff, (float __value), (__value)) __inline_forward_c(int,finitef, (float __value), (__value)) -__inline_forward_c(float,scalbnf, (float __x, long int __n), (__x, __n)) +__inline_forward_c(float,scalbnf, (float __x, int __n), (__x, __n)) +__inline_forward_c(float,scalblnf, (float __x, long int __n), (__x, __n)) __inline_forward_c(int,isnanf, (float __value), (__value)) #endif #ifdef __USE_ISOC9X __inline_forward_c(float,nearbyintf, (float __value), (__value)) +__inline_forward_c(long int,lrintf, (float __value), (__value)) +__inline_forward_c(float,fmaf, (float __x, float __y, float __z), + (__x, __y, __z)) #endif #ifdef __USE_GNU __inline_forward(void,sincosf, (float __x, float *__sinx, float *__cosx), @@ -417,13 +444,17 @@ __inline_forward_c(long double,ceill, (long double __x), (__x)) #ifdef __USE_MISC __inline_forward_c(int,isinfl, (long double __value), (__value)) __inline_forward_c(int,finitel, (long double __value), (__value)) -__inline_forward_c(long double,scalbnl, (long double __x, long int __n), +__inline_forward_c(long double,scalbnl, (long double __x, int __n), (__x, __n)) +__inline_forward_c(long double,scalblnl, (long double __x, long int __n), (__x, __n)) __inline_forward_c(int,isnanl, (long double __value), (__value)) #endif #ifdef __USE_ISOC9X __inline_forward_c(long double,nearbyintl, (long double __value), (__value)) -__inline_forward_c(long int,lrint, (long double __value), (__value)) +__inline_forward_c(long int,lrintl, (long double __value), (__value)) +__inline_forward_c(long double,fmal, + (long double __x, long double __y, long double __z), + (__x, __y, __z)) #endif #ifdef __USE_GNU __inline_forward(void,sincosl, diff --git a/sysdeps/m68k/fpu/s_lrint.c b/sysdeps/m68k/fpu/s_lrint.c index a7044113af..511d28880c 100644 --- a/sysdeps/m68k/fpu/s_lrint.c +++ b/sysdeps/m68k/fpu/s_lrint.c @@ -22,10 +22,20 @@ #define __LIBC_M81_MATH_INLINES #include <math.h> +#ifndef suffix +#define suffix /*empty*/ +#endif +#ifndef float_type +#define float_type double +#endif + +#define CONCATX(a,b) __CONCAT(a,b) + long int -__lrint (long double x) +CONCATX(__lrint,suffix) (float_type x) { - return __m81_u(__lrint) (x); + return __m81_u(CONCATX(__lrint,suffix)) (x); } -weak_alias (__lrint, lrint) +#define weak_aliasx(a,b) weak_alias(a,b) +weak_aliasx (CONCATX(__lrint,suffix), CONCATX(lrint,suffix)) diff --git a/sysdeps/m68k/fpu/s_lrintf.c b/sysdeps/m68k/fpu/s_lrintf.c new file mode 100644 index 0000000000..44924cb82f --- /dev/null +++ b/sysdeps/m68k/fpu/s_lrintf.c @@ -0,0 +1,3 @@ +#define suffix f +#define float_type float +#include <s_lrint.c> diff --git a/sysdeps/m68k/fpu/s_lrintl.c b/sysdeps/m68k/fpu/s_lrintl.c new file mode 100644 index 0000000000..cd0bd23b8a --- /dev/null +++ b/sysdeps/m68k/fpu/s_lrintl.c @@ -0,0 +1,3 @@ +#define suffix l +#define float_type long double +#include <s_lrint.c> diff --git a/sysdeps/m68k/fpu/s_scalbln.c b/sysdeps/m68k/fpu/s_scalbln.c new file mode 100644 index 0000000000..1009713fbc --- /dev/null +++ b/sysdeps/m68k/fpu/s_scalbln.c @@ -0,0 +1,2 @@ +/* Nothing to do. This function is the same as scalbn. So we define an + alias. */ diff --git a/sysdeps/m68k/fpu/s_scalblnf.c b/sysdeps/m68k/fpu/s_scalblnf.c new file mode 100644 index 0000000000..5e558c3540 --- /dev/null +++ b/sysdeps/m68k/fpu/s_scalblnf.c @@ -0,0 +1,2 @@ +/* Nothing to do. This function is the same as scalbnf. So we define an + alias. */ diff --git a/sysdeps/m68k/fpu/s_scalblnl.c b/sysdeps/m68k/fpu/s_scalblnl.c new file mode 100644 index 0000000000..cda2ec11c8 --- /dev/null +++ b/sysdeps/m68k/fpu/s_scalblnl.c @@ -0,0 +1,2 @@ +/* Nothing to do. This function is the same as scalbnl. So we define an + alias. */ diff --git a/sysdeps/m68k/fpu/s_scalbn.c b/sysdeps/m68k/fpu/s_scalbn.c index d3ba27fa46..1b219ec108 100644 --- a/sysdeps/m68k/fpu/s_scalbn.c +++ b/sysdeps/m68k/fpu/s_scalbn.c @@ -17,10 +17,22 @@ Boston, MA 02111-1307, USA. */ #define __LIBC_M81_MATH_INLINES +#define scalbln __no_scalbln_decl +#define scalblnf __no_scalblnf_decl +#define scalblnl __no_scalblnl_decl +#define __scalbln __no__scalbln_decl +#define __scalblnf __no__scalblnf_decl +#define __scalblnl __no__scalblnl_decl #include <math.h> - -#ifndef FUNC -#define FUNC scalbn +#undef scalbln +#undef scalblnf +#undef scalblnl +#undef __scalbln +#undef __scalblnf +#undef __scalblnl + +#ifndef suffix +#define suffix /*empty*/ #endif #ifndef float_type #define float_type double @@ -29,12 +41,15 @@ #define __CONCATX(a,b) __CONCAT(a,b) float_type -__CONCATX(__,FUNC) (x, exp) +__CONCATX(__scalbn,suffix) (x, exp) float_type x; - long int exp; + int exp; { - return __m81_u(__CONCATX(__,FUNC))(x, exp); + return __m81_u(__CONCATX(__scalbn,suffix))(x, exp); } #define weak_aliasx(a,b) weak_alias(a,b) -weak_aliasx (__CONCATX(__,FUNC), FUNC) +#define strong_aliasx(a,b) strong_alias(a,b) +weak_aliasx (__CONCATX(__scalbn,suffix), __CONCATX(scalbn,suffix)) +strong_aliasx (__CONCATX(__scalbn,suffix), __CONCATX(__scalbln,suffix)) +weak_aliasx (__CONCATX(__scalbn,suffix), __CONCATX(scalbln,suffix)) diff --git a/sysdeps/m68k/fpu/s_scalbnf.c b/sysdeps/m68k/fpu/s_scalbnf.c index 33459718e9..547971836a 100644 --- a/sysdeps/m68k/fpu/s_scalbnf.c +++ b/sysdeps/m68k/fpu/s_scalbnf.c @@ -1,5 +1,3 @@ -#ifndef FUNC -#define FUNC scalbnf -#endif +#define suffix f #define float_type float #include <s_scalbn.c> diff --git a/sysdeps/m68k/fpu/s_scalbnl.c b/sysdeps/m68k/fpu/s_scalbnl.c index c6ad95079c..874bafb04b 100644 --- a/sysdeps/m68k/fpu/s_scalbnl.c +++ b/sysdeps/m68k/fpu/s_scalbnl.c @@ -1,5 +1,3 @@ -#ifndef FUNC -#define FUNC scalbnl -#endif +#define suffix l #define float_type long double #include <s_scalbn.c> diff --git a/sysdeps/m68k/sys/ucontext.h b/sysdeps/m68k/sys/ucontext.h new file mode 100644 index 0000000000..4776e7d821 --- /dev/null +++ b/sysdeps/m68k/sys/ucontext.h @@ -0,0 +1,108 @@ +/* Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* System V/m68k ABI compliant context switching support. */ + +#ifndef _SYS_UCONTEXT_H +#define _SYS_UCONTEXT_H 1 + +#include <features.h> +#include <signal.h> + +/* Type for general register. */ +typedef int greg_t; + +/* Number of general registers. */ +#define NGREG 18 + +/* Container for all general registers. */ +typedef greg_t gregset_t[NGREG]; + +/* Number of each register is the `gregset_t' array. */ +enum +{ + R_D0 = 0, +#define R_D0 R_D0 + R_D1 = 1, +#define R_D1 R_D1 + R_D2 = 2, +#define R_D2 R_D2 + R_D3 = 3, +#define R_D3 R_D3 + R_D4 = 4, +#define R_D4 R_D4 + R_D5 = 5, +#define R_D5 R_D5 + R_D6 = 6, +#define R_D6 R_D6 + R_D7 = 7, +#define R_D7 R_D7 + R_A0 = 8, +#define R_A0 R_A0 + R_A1 = 9, +#define R_A1 R_A1 + R_A2 = 10, +#define R_A2 R_A2 + R_A3 = 11, +#define R_A3 R_A3 + R_A4 = 12, +#define R_A4 R_A4 + R_A5 = 13, +#define R_A5 R_A5 + R_A6 = 14, +#define R_A6 R_A6 + R_A7 = 15, +#define R_A7 R_A7 + R_SP = 15, +#define R_SP R_SP + R_PC = 16, +#define R_PC R_PC + R_PS = 17 +#define R_PS R_PS +}; + +/* Structure to describe FPU registers. */ +typedef struct fpregset +{ + int f_pcr; + int f_psr; + int f_fpiaddr; + int f_fpregs[8][3]; +} fpregset_t; + +/* Context to describe whole processor state. */ +typedef struct +{ + int version; + gregset_t gregs; +} mcontext_t; + +#define MCONTEXT_VERSION 1 + +/* Userlevel context. */ +typedef struct ucontext +{ + unsigned long int uc_flags; + struct ucontext *uc_links; + __sigset_t uc_sigmask; + stack_t uc_stack; + mcontext_t uc_mcontext; + long int uc_filler[201]; +} ucontext_t; + +#endif /* sys/ucontext.h */ |