mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 04:50:07 +00:00
Also retrieve SSE exceptions in x86-32 fegetexceptflag
This commit is contained in:
parent
f311e884ec
commit
db910efdbd
@ -1,3 +1,9 @@
|
||||
2011-12-22 Ulrich Drepper <drepper@gmail.com>
|
||||
|
||||
[BZ #13185]
|
||||
* sysdeps/i386/fpu/fgetexcptflg.c (__fegetexceptflag): Also return
|
||||
SSE flags if possible.
|
||||
|
||||
2011-12-22 Liubov Dmitrieva <liubov.dmitrieva@gmail.com>
|
||||
|
||||
* sysdeps/i386/i686/multiarch/strcpy-ssse3.S: Fix wrong copying
|
||||
|
8
NEWS
8
NEWS
@ -11,10 +11,10 @@ Version 2.15
|
||||
|
||||
6779, 6783, 9696, 10103, 10709, 11589, 12403, 12847, 12868, 12852, 12874,
|
||||
12885, 12892, 12907, 12922, 12935, 13007, 13021, 13067, 13068, 13090,
|
||||
13092, 13114, 13118, 13123, 13134, 13138, 13147, 13150, 13179, 13189,
|
||||
13192, 13268, 13276, 13282, 13291, 13305, 13328, 13335, 13337, 13344,
|
||||
13358, 13367, 13413, 13416, 13423, 13439, 13446, 13472, 13484, 13506,
|
||||
13515, 13523, 13524, 13538
|
||||
13092, 13114, 13118, 13123, 13134, 13138, 13147, 13150, 13179, 13185,
|
||||
13189, 13192, 13268, 13276, 13282, 13291, 13305, 13328, 13335, 13337,
|
||||
13344, 13358, 13367, 13413, 13416, 13423, 13439, 13446, 13472, 13484,
|
||||
13506, 13515, 13523, 13524, 13538
|
||||
|
||||
* New program pldd to list loaded object of a process
|
||||
Implemented by Ulrich Drepper.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Store current representation for exceptions.
|
||||
Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997,99,2000,01,11 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
@ -19,7 +19,10 @@
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <fenv.h>
|
||||
#include <bp-sym.h>
|
||||
#include <unistd.h>
|
||||
#include <ldsodefs.h>
|
||||
#include <dl-procinfo.h>
|
||||
|
||||
|
||||
int
|
||||
__fegetexceptflag (fexcept_t *flagp, int excepts)
|
||||
@ -31,6 +34,17 @@ __fegetexceptflag (fexcept_t *flagp, int excepts)
|
||||
|
||||
*flagp = temp & excepts & FE_ALL_EXCEPT;
|
||||
|
||||
/* If the CPU supports SSE, we clear the MXCSR as well. */
|
||||
if ((GLRO(dl_hwcap) & HWCAP_I386_XMM) != 0)
|
||||
{
|
||||
unsigned int sse_exc;
|
||||
|
||||
/* Get the current MXCSR. */
|
||||
__asm__ ("stmxcsr %0" : "=m" (*&sse_exc));
|
||||
|
||||
*flagp |= sse_exc & excepts & FE_ALL_EXCEPT;
|
||||
}
|
||||
|
||||
/* Success. */
|
||||
return 0;
|
||||
}
|
||||
@ -38,7 +52,7 @@ __fegetexceptflag (fexcept_t *flagp, int excepts)
|
||||
#include <shlib-compat.h>
|
||||
#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
|
||||
strong_alias (__fegetexceptflag, __old_fegetexceptflag)
|
||||
compat_symbol (libm, BP_SYM (__old_fegetexceptflag), BP_SYM (fegetexceptflag), GLIBC_2_1);
|
||||
compat_symbol (libm, __old_fegetexceptflag, fegetexceptflag, GLIBC_2_1);
|
||||
#endif
|
||||
|
||||
versioned_symbol (libm, BP_SYM (__fegetexceptflag), BP_SYM (fegetexceptflag), GLIBC_2_2);
|
||||
versioned_symbol (libm, __fegetexceptflag, fegetexceptflag, GLIBC_2_2);
|
||||
|
Loading…
Reference in New Issue
Block a user