mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-10 07:10:06 +00:00
Fix powerpc fpu_control.h namespace and parenthesis issues (bug 15966).
This commit is contained in:
parent
cd90698b54
commit
11ca09e932
@ -1,3 +1,12 @@
|
||||
2013-09-17 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[BZ #15966]
|
||||
* sysdeps/powerpc/fpu_control.h [!_SOFT_FLOAT && !__NO_FPRS__]
|
||||
(_FPU_GETCW): Use initial "__" on variable and field names but not
|
||||
on macro parameter name.
|
||||
[!_SOFT_FLOAT && !__NO_FPRS__] (_FPU_SETCW): Likewise. Use
|
||||
parentheses around reference to macro parameter.
|
||||
|
||||
2013-09-13 Richard Sandiford <richard@codesourcery.com>
|
||||
|
||||
* locale/programs/ld-ctype.c (find_idx): Use uint32_t in
|
||||
|
2
NEWS
2
NEWS
@ -11,7 +11,7 @@ Version 2.19
|
||||
|
||||
14155, 14699, 15427, 15522, 15531, 15532, 15736, 15748, 15749, 15797,
|
||||
15844, 15849, 15855, 15856, 15857, 15867, 15886, 15887, 15890, 15892,
|
||||
15893, 15895, 15897, 15905, 15909, 15921, 15939.
|
||||
15893, 15895, 15897, 15905, 15909, 15921, 15939, 15966.
|
||||
|
||||
* CVE-2013-4237 The readdir_r function could write more than NAME_MAX bytes
|
||||
to the d_name member of struct dirent, or omit the terminating NUL
|
||||
|
@ -59,18 +59,18 @@ extern fpu_control_t __fpu_control;
|
||||
typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
|
||||
|
||||
/* Macros for accessing the hardware control word. */
|
||||
# define _FPU_GETCW(__cw) ( { \
|
||||
union { double d; fpu_control_t cw[2]; } \
|
||||
tmp __attribute__ ((__aligned__(8))); \
|
||||
__asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \
|
||||
(__cw)=tmp.cw[1]; \
|
||||
tmp.cw[1]; } )
|
||||
# define _FPU_SETCW(__cw) { \
|
||||
union { double d; fpu_control_t cw[2]; } \
|
||||
tmp __attribute__ ((__aligned__(8))); \
|
||||
tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
|
||||
tmp.cw[1] = __cw; \
|
||||
__asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \
|
||||
# define _FPU_GETCW(cw) ( { \
|
||||
union { double __d; fpu_control_t __cw[2]; } \
|
||||
__tmp __attribute__ ((__aligned__(8))); \
|
||||
__asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (__tmp.__d) : : "fr0"); \
|
||||
(cw) = __tmp.__cw[1]; \
|
||||
__tmp.__cw[1]; } )
|
||||
# define _FPU_SETCW(cw) { \
|
||||
union { double __d; fpu_control_t __cw[2]; } \
|
||||
__tmp __attribute__ ((__aligned__(8))); \
|
||||
__tmp.__cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
|
||||
__tmp.__cw[1] = (cw); \
|
||||
__asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (__tmp.__d) : "fr0"); \
|
||||
}
|
||||
|
||||
/* Default control word set at startup. */
|
||||
|
Loading…
Reference in New Issue
Block a user