mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Update.
1999-05-23 Ulrich Drepper <drepper@cygnus.com> * sysdeps/alpha/fpu/bits/fenv.h: Pretty print. * sysdeps/sparc/sparc64/fpu/bits/fenv.h: Remove unneeded #if. 1999-05-22 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * sysdeps/m68k/fpu/bits/fenv.h (fenv_t): Prepend __ to member names to protect from user's macro namespace. * sysdeps/arm/fpu/bits/fenv.h (fenv_t): Likewise. * sysdeps/generic/bits/fenv.h (fexcept_t, fenv_t): Likewise. * sysdeps/i386/fpu/bits/fenv.h (fenv_t): Likewise. * sysdeps/mips/bits/fenv.h (fenv_t): Likewise. * sysdeps/m68k/fpu/feholdexcpt.c, sysdeps/m68k/fpu/fesetenv.c: Adapted. * sysdeps/arm/fpu/fegetenv.c, sysdeps/arm/fpu/feholdexcpt.c, sysdeps/arm/fpu/fesetenv.c: Likewise. * sysdeps/i386/fpu/fclrexcpt.c, sysdeps/i386/fpu/feholdexcpt.c, sysdeps/i386/fpu/fesetenv.c, sysdeps/i386/fpu/fraiseexcpt.c, sysdeps/i386/fpu/fsetexcptflg.c: Likewise. * sysdeps/mips/fesetenv.c: Likewise.
This commit is contained in:
23
ChangeLog
23
ChangeLog
@ -1,3 +1,26 @@
|
|||||||
|
1999-05-23 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* sysdeps/alpha/fpu/bits/fenv.h: Pretty print.
|
||||||
|
|
||||||
|
* sysdeps/sparc/sparc64/fpu/bits/fenv.h: Remove unneeded #if.
|
||||||
|
|
||||||
|
1999-05-22 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
|
||||||
|
|
||||||
|
* sysdeps/m68k/fpu/bits/fenv.h (fenv_t): Prepend __ to member
|
||||||
|
names to protect from user's macro namespace.
|
||||||
|
* sysdeps/arm/fpu/bits/fenv.h (fenv_t): Likewise.
|
||||||
|
* sysdeps/generic/bits/fenv.h (fexcept_t, fenv_t): Likewise.
|
||||||
|
* sysdeps/i386/fpu/bits/fenv.h (fenv_t): Likewise.
|
||||||
|
* sysdeps/mips/bits/fenv.h (fenv_t): Likewise.
|
||||||
|
* sysdeps/m68k/fpu/feholdexcpt.c, sysdeps/m68k/fpu/fesetenv.c:
|
||||||
|
Adapted.
|
||||||
|
* sysdeps/arm/fpu/fegetenv.c, sysdeps/arm/fpu/feholdexcpt.c,
|
||||||
|
sysdeps/arm/fpu/fesetenv.c: Likewise.
|
||||||
|
* sysdeps/i386/fpu/fclrexcpt.c, sysdeps/i386/fpu/feholdexcpt.c,
|
||||||
|
sysdeps/i386/fpu/fesetenv.c, sysdeps/i386/fpu/fraiseexcpt.c,
|
||||||
|
sysdeps/i386/fpu/fsetexcptflg.c: Likewise.
|
||||||
|
* sysdeps/mips/fesetenv.c: Likewise.
|
||||||
|
|
||||||
1999-05-22 Roland McGrath <roland@baalperazim.frob.com>
|
1999-05-22 Roland McGrath <roland@baalperazim.frob.com>
|
||||||
|
|
||||||
* sysdeps/generic/bits/sigstack.h (enum SS_*): Remove trailing comma.
|
* sysdeps/generic/bits/sigstack.h (enum SS_*): Remove trailing comma.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -44,7 +44,7 @@
|
|||||||
XXX Probably we should also include the signal handler here. */
|
XXX Probably we should also include the signal handler here. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
unsigned int flags;
|
unsigned int __flags;
|
||||||
}
|
}
|
||||||
fexcept_t;
|
fexcept_t;
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ fexcept_t;
|
|||||||
/* Type representing floating-point environment. */
|
/* Type representing floating-point environment. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
fexcept_t excepts;
|
fexcept_t __excepts;
|
||||||
/* XXX I don't know what else we should save. */
|
/* XXX I don't know what else we should save. */
|
||||||
}
|
}
|
||||||
fenv_t;
|
fenv_t;
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
1999-05-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||||
|
|
||||||
|
* man/pthread_cond_init.man: Correct example.
|
||||||
|
Reported by Tomas Berndtsson <tomas@nocrew.org>.
|
||||||
|
|
||||||
|
* linuxthreads.texi (Condition Variables): Likewise.
|
||||||
|
|
||||||
1999-05-18 Jakub Jelinek <jj@ultra.linux.cz>
|
1999-05-18 Jakub Jelinek <jj@ultra.linux.cz>
|
||||||
|
|
||||||
* sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): Use
|
* sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): Use
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -83,10 +83,10 @@ enum
|
|||||||
|
|
||||||
|
|
||||||
/* Type representing exception flags. */
|
/* Type representing exception flags. */
|
||||||
typedef unsigned long fexcept_t;
|
typedef unsigned long int fexcept_t;
|
||||||
|
|
||||||
/* Type representing floating-point environment. */
|
/* Type representing floating-point environment. */
|
||||||
typedef unsigned long fenv_t;
|
typedef unsigned long int fenv_t;
|
||||||
|
|
||||||
/* If the default argument is used we use this value. Note that due to
|
/* If the default argument is used we use this value. Note that due to
|
||||||
architecture-specified page mappings, no user-space pointer will ever
|
architecture-specified page mappings, no user-space pointer will ever
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -21,7 +21,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Define bits representing exceptions in the FPU status word. */
|
/* Define bits representing exceptions in the FPU status word. */
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
FE_INVALID = 1,
|
FE_INVALID = 1,
|
||||||
#define FE_INVALID FE_INVALID
|
#define FE_INVALID FE_INVALID
|
||||||
@ -34,7 +34,7 @@ enum
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Amount to shift by to convert an exception to a mask bit. */
|
/* Amount to shift by to convert an exception to a mask bit. */
|
||||||
#define FE_EXCEPT_SHIFT 16
|
#define FE_EXCEPT_SHIFT 16
|
||||||
|
|
||||||
/* All supported exceptions. */
|
/* All supported exceptions. */
|
||||||
#define FE_ALL_EXCEPT \
|
#define FE_ALL_EXCEPT \
|
||||||
@ -45,12 +45,12 @@ enum
|
|||||||
#define FE_TONEAREST 0
|
#define FE_TONEAREST 0
|
||||||
|
|
||||||
/* Type representing exception flags. */
|
/* Type representing exception flags. */
|
||||||
typedef unsigned long fexcept_t;
|
typedef unsigned long int fexcept_t;
|
||||||
|
|
||||||
/* Type representing floating-point environment. */
|
/* Type representing floating-point environment. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
unsigned long cw;
|
unsigned long int __cw;
|
||||||
}
|
}
|
||||||
fenv_t;
|
fenv_t;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Store current floating-point environment.
|
/* Store current floating-point environment.
|
||||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -25,5 +25,5 @@ fegetenv (fenv_t *envp)
|
|||||||
{
|
{
|
||||||
unsigned long int temp;
|
unsigned long int temp;
|
||||||
_FPU_GETCW(temp);
|
_FPU_GETCW(temp);
|
||||||
envp->cw = temp;
|
envp->__cw = temp;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Store current floating-point environment and clear exceptions.
|
/* Store current floating-point environment and clear exceptions.
|
||||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -27,7 +27,7 @@ feholdexcept (fenv_t *envp)
|
|||||||
|
|
||||||
/* Store the environment. */
|
/* Store the environment. */
|
||||||
_FPU_GETCW(temp);
|
_FPU_GETCW(temp);
|
||||||
envp->cw = temp;
|
envp->__cw = temp;
|
||||||
|
|
||||||
/* Now set all exceptions to non-stop. */
|
/* Now set all exceptions to non-stop. */
|
||||||
temp &= ~(FE_ALL_EXCEPT << FE_EXCEPT_SHIFT);
|
temp &= ~(FE_ALL_EXCEPT << FE_EXCEPT_SHIFT);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Install given floating-point environment.
|
/* Install given floating-point environment.
|
||||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -27,7 +27,7 @@ fesetenv (const fenv_t *envp)
|
|||||||
_FPU_SETCW(_FPU_DEFAULT);
|
_FPU_SETCW(_FPU_DEFAULT);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
unsigned long temp = envp->cw;
|
unsigned long temp = envp->__cw;
|
||||||
_FPU_SETCW(temp);
|
_FPU_SETCW(temp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -44,7 +44,7 @@
|
|||||||
XXX Probably we should also include the signal handler here. */
|
XXX Probably we should also include the signal handler here. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
unsigned int flags;
|
unsigned int __flags;
|
||||||
}
|
}
|
||||||
fexcept_t;
|
fexcept_t;
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ fexcept_t;
|
|||||||
/* Type representing floating-point environment. */
|
/* Type representing floating-point environment. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
fexcept_t excepts;
|
fexcept_t __excepts;
|
||||||
/* XXX I don't know what else we should save. */
|
/* XXX I don't know what else we should save. */
|
||||||
}
|
}
|
||||||
fenv_t;
|
fenv_t;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -65,18 +65,18 @@ typedef unsigned short int fexcept_t;
|
|||||||
to the layout of the block written by the `fstenv'. */
|
to the layout of the block written by the `fstenv'. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
unsigned short int control_word;
|
unsigned short int __control_word;
|
||||||
unsigned short int __unused1;
|
unsigned short int __unused1;
|
||||||
unsigned short int status_word;
|
unsigned short int __status_word;
|
||||||
unsigned short int __unused2;
|
unsigned short int __unused2;
|
||||||
unsigned short int tags;
|
unsigned short int __tags;
|
||||||
unsigned short int __unused3;
|
unsigned short int __unused3;
|
||||||
unsigned int eip;
|
unsigned int __eip;
|
||||||
unsigned short int cs_selector;
|
unsigned short int __cs_selector;
|
||||||
unsigned int opcode:11;
|
unsigned int __opcode:11;
|
||||||
unsigned int __unused4:5;
|
unsigned int __unused4:5;
|
||||||
unsigned int data_offset;
|
unsigned int __data_offset;
|
||||||
unsigned short int data_selector;
|
unsigned short int __data_selector;
|
||||||
unsigned short int __unused5;
|
unsigned short int __unused5;
|
||||||
}
|
}
|
||||||
fenv_t;
|
fenv_t;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Clear given exceptions in current floating-point environment.
|
/* Clear given exceptions in current floating-point environment.
|
||||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
Copyright (C) 1997, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ feclearexcept (int excepts)
|
|||||||
__asm__ ("fnstenv %0" : "=m" (*&temp));
|
__asm__ ("fnstenv %0" : "=m" (*&temp));
|
||||||
|
|
||||||
/* Clear the relevant bits. */
|
/* Clear the relevant bits. */
|
||||||
temp.status_word &= excepts ^ FE_ALL_EXCEPT;
|
temp.__status_word &= excepts ^ FE_ALL_EXCEPT;
|
||||||
|
|
||||||
/* Put the new data in effect. */
|
/* Put the new data in effect. */
|
||||||
__asm__ ("fldenv %0" : : "m" (*&temp));
|
__asm__ ("fldenv %0" : : "m" (*&temp));
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Store current floating-point environment and clear exceptions.
|
/* Store current floating-point environment and clear exceptions.
|
||||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
Copyright (C) 1997, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ feholdexcept (fenv_t *envp)
|
|||||||
__asm__ ("fnstenv %0" : "=m" (*envp));
|
__asm__ ("fnstenv %0" : "=m" (*envp));
|
||||||
|
|
||||||
/* Now set all exceptions to non-stop. */
|
/* Now set all exceptions to non-stop. */
|
||||||
work = envp->control_word | 0x3f;
|
work = envp->__control_word | 0x3f;
|
||||||
__asm__ ("fldcw %0" : : "m" (*&work));
|
__asm__ ("fldcw %0" : : "m" (*&work));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Install given floating-point environment.
|
/* Install given floating-point environment.
|
||||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
@ -39,37 +39,37 @@ fesetenv (const fenv_t *envp)
|
|||||||
|
|
||||||
if (envp == FE_DFL_ENV)
|
if (envp == FE_DFL_ENV)
|
||||||
{
|
{
|
||||||
temp.control_word |= FE_ALL_EXCEPT;
|
temp.__control_word |= FE_ALL_EXCEPT;
|
||||||
temp.control_word &= ~FE_TOWARDZERO;
|
temp.__control_word &= ~FE_TOWARDZERO;
|
||||||
temp.status_word &= ~FE_ALL_EXCEPT;
|
temp.__status_word &= ~FE_ALL_EXCEPT;
|
||||||
temp.eip = 0;
|
temp.__eip = 0;
|
||||||
temp.cs_selector = 0;
|
temp.__cs_selector = 0;
|
||||||
temp.opcode = 0;
|
temp.__opcode = 0;
|
||||||
temp.data_offset = 0;
|
temp.__data_offset = 0;
|
||||||
temp.data_selector = 0;
|
temp.__data_selector = 0;
|
||||||
}
|
}
|
||||||
else if (envp == FE_NOMASK_ENV)
|
else if (envp == FE_NOMASK_ENV)
|
||||||
{
|
{
|
||||||
temp.control_word &= ~(FE_ALL_EXCEPT | FE_TOWARDZERO);
|
temp.__control_word &= ~(FE_ALL_EXCEPT | FE_TOWARDZERO);
|
||||||
temp.status_word &= ~FE_ALL_EXCEPT;
|
temp.__status_word &= ~FE_ALL_EXCEPT;
|
||||||
temp.eip = 0;
|
temp.__eip = 0;
|
||||||
temp.cs_selector = 0;
|
temp.__cs_selector = 0;
|
||||||
temp.opcode = 0;
|
temp.__opcode = 0;
|
||||||
temp.data_offset = 0;
|
temp.__data_offset = 0;
|
||||||
temp.data_selector = 0;
|
temp.__data_selector = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
temp.control_word &= ~(FE_ALL_EXCEPT | FE_TOWARDZERO);
|
temp.__control_word &= ~(FE_ALL_EXCEPT | FE_TOWARDZERO);
|
||||||
temp.control_word |= (envp->control_word
|
temp.__control_word |= (envp->__control_word
|
||||||
& (FE_ALL_EXCEPT | FE_TOWARDZERO));
|
& (FE_ALL_EXCEPT | FE_TOWARDZERO));
|
||||||
temp.status_word &= ~FE_ALL_EXCEPT;
|
temp.__status_word &= ~FE_ALL_EXCEPT;
|
||||||
temp.status_word |= envp->status_word & FE_ALL_EXCEPT;
|
temp.__status_word |= envp->__status_word & FE_ALL_EXCEPT;
|
||||||
temp.eip = envp->eip;
|
temp.__eip = envp->__eip;
|
||||||
temp.cs_selector = envp->cs_selector;
|
temp.__cs_selector = envp->__cs_selector;
|
||||||
temp.opcode = envp->opcode;
|
temp.__opcode = envp->__opcode;
|
||||||
temp.data_offset = envp->data_offset;
|
temp.__data_offset = envp->__data_offset;
|
||||||
temp.data_selector = envp->data_selector;
|
temp.__data_selector = envp->__data_selector;
|
||||||
}
|
}
|
||||||
|
|
||||||
__asm__ ("fldenv %0" : : "m" (temp));
|
__asm__ ("fldenv %0" : : "m" (temp));
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Raise given exceptions.
|
/* Raise given exceptions.
|
||||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
Copyright (C) 1997, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ feraiseexcept (int excepts)
|
|||||||
__asm__ __volatile__ ("fnstenv %0" : "=m" (*&temp));
|
__asm__ __volatile__ ("fnstenv %0" : "=m" (*&temp));
|
||||||
|
|
||||||
/* Set the relevant bits. */
|
/* Set the relevant bits. */
|
||||||
temp.status_word |= FE_OVERFLOW;
|
temp.__status_word |= FE_OVERFLOW;
|
||||||
|
|
||||||
/* Put the new data in effect. */
|
/* Put the new data in effect. */
|
||||||
__asm__ __volatile__ ("fldenv %0" : : "m" (*&temp));
|
__asm__ __volatile__ ("fldenv %0" : : "m" (*&temp));
|
||||||
@ -80,7 +80,7 @@ feraiseexcept (int excepts)
|
|||||||
__asm__ __volatile__ ("fnstenv %0" : "=m" (*&temp));
|
__asm__ __volatile__ ("fnstenv %0" : "=m" (*&temp));
|
||||||
|
|
||||||
/* Set the relevant bits. */
|
/* Set the relevant bits. */
|
||||||
temp.status_word |= FE_UNDERFLOW;
|
temp.__status_word |= FE_UNDERFLOW;
|
||||||
|
|
||||||
/* Put the new data in effect. */
|
/* Put the new data in effect. */
|
||||||
__asm__ __volatile__ ("fldenv %0" : : "m" (*&temp));
|
__asm__ __volatile__ ("fldenv %0" : : "m" (*&temp));
|
||||||
@ -101,7 +101,7 @@ feraiseexcept (int excepts)
|
|||||||
__asm__ __volatile__ ("fnstenv %0" : "=m" (*&temp));
|
__asm__ __volatile__ ("fnstenv %0" : "=m" (*&temp));
|
||||||
|
|
||||||
/* Set the relevant bits. */
|
/* Set the relevant bits. */
|
||||||
temp.status_word |= FE_INEXACT;
|
temp.__status_word |= FE_INEXACT;
|
||||||
|
|
||||||
/* Put the new data in effect. */
|
/* Put the new data in effect. */
|
||||||
__asm__ __volatile__ ("fldenv %0" : : "m" (*&temp));
|
__asm__ __volatile__ ("fldenv %0" : : "m" (*&temp));
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Set floating-point environment exception handling.
|
/* Set floating-point environment exception handling.
|
||||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
Copyright (C) 1997, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
@ -30,8 +30,8 @@ fesetexceptflag (const fexcept_t *flagp, int excepts)
|
|||||||
separately set the status word. */
|
separately set the status word. */
|
||||||
__asm__ ("fnstenv %0" : "=m" (*&temp));
|
__asm__ ("fnstenv %0" : "=m" (*&temp));
|
||||||
|
|
||||||
temp.status_word &= ~(excepts & FE_ALL_EXCEPT);
|
temp.__status_word &= ~(excepts & FE_ALL_EXCEPT);
|
||||||
temp.status_word |= *flagp & excepts & FE_ALL_EXCEPT;
|
temp.__status_word |= *flagp & excepts & FE_ALL_EXCEPT;
|
||||||
|
|
||||||
/* Store the new status word (along with the rest of the environment.
|
/* Store the new status word (along with the rest of the environment.
|
||||||
Possibly new exceptions are set but they won't get executed unless
|
Possibly new exceptions are set but they won't get executed unless
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1998 Free Software Foundation, Inc.
|
/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -64,7 +64,7 @@ typedef unsigned short int fexcept_t;
|
|||||||
to the layout of the block written by the `fstenv'. */
|
to the layout of the block written by the `fstenv'. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
unsigned int fp_control_register;
|
unsigned int __fp_control_register;
|
||||||
}
|
}
|
||||||
fenv_t;
|
fenv_t;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Install given floating-point environment.
|
/* Install given floating-point environment.
|
||||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
|
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
|
||||||
|
|
||||||
@ -27,5 +27,5 @@ fesetenv (const fenv_t *envp)
|
|||||||
if (envp == FE_DFL_ENV)
|
if (envp == FE_DFL_ENV)
|
||||||
_FPU_SETCW (_FPU_DEFAULT);
|
_FPU_SETCW (_FPU_DEFAULT);
|
||||||
else
|
else
|
||||||
_FPU_SETCW (envp->fp_control_register);
|
_FPU_SETCW (envp->__fp_control_register);
|
||||||
}
|
}
|
||||||
|
@ -59,19 +59,13 @@ enum
|
|||||||
|
|
||||||
#define __FE_ROUND_MASK (3U << 30)
|
#define __FE_ROUND_MASK (3U << 30)
|
||||||
|
|
||||||
#if __WORDSIZE == 64
|
|
||||||
/* Type representing exception flags. */
|
/* Type representing exception flags. */
|
||||||
typedef unsigned long fexcept_t;
|
typedef unsigned long int fexcept_t;
|
||||||
|
|
||||||
|
|
||||||
/* Type representing floating-point environment. */
|
/* Type representing floating-point environment. */
|
||||||
typedef unsigned long fenv_t;
|
typedef unsigned long int fenv_t;
|
||||||
#else
|
|
||||||
/* Type representing exception flags. */
|
|
||||||
typedef unsigned int fexcept_t;
|
|
||||||
|
|
||||||
/* Type representing floating-point environment. */
|
|
||||||
typedef unsigned int fenv_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* If the default argument is used we use this value. */
|
/* If the default argument is used we use this value. */
|
||||||
#define FE_DFL_ENV ((fenv_t *) -1)
|
#define FE_DFL_ENV ((fenv_t *) -1)
|
||||||
@ -83,9 +77,9 @@ typedef unsigned int fenv_t;
|
|||||||
|
|
||||||
/* For internal use only: access the fp state register. */
|
/* For internal use only: access the fp state register. */
|
||||||
#if __WORDSIZE == 64
|
#if __WORDSIZE == 64
|
||||||
#define __fenv_stfsr(X) __asm__ ("stx %%fsr,%0" : "=m" (X))
|
# define __fenv_stfsr(X) __asm__ ("stx %%fsr,%0" : "=m" (X))
|
||||||
#define __fenv_ldfsr(X) __asm__ __volatile__ ("ldx %0,%%fsr" : : "m" (X))
|
# define __fenv_ldfsr(X) __asm__ __volatile__ ("ldx %0,%%fsr" : : "m" (X))
|
||||||
#else
|
#else
|
||||||
#define __fenv_stfsr(X) __asm__ ("st %%fsr,%0" : "=m" (X))
|
# define __fenv_stfsr(X) __asm__ ("st %%fsr,%0" : "=m" (X))
|
||||||
#define __fenv_ldfsr(X) __asm__ __volatile__ ("ld %0,%%fsr" : : "m" (X))
|
# define __fenv_ldfsr(X) __asm__ __volatile__ ("ld %0,%%fsr" : : "m" (X))
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user