Make x86_64 fegetenv preserve exception mask (bug 16198).
authorJoseph Myers <joseph@codesourcery.com>
Wed, 26 Mar 2014 18:59:08 +0000 (18:59 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 26 Mar 2014 18:59:08 +0000 (18:59 +0000)
commit9be36fb8cb5bcdab5bbbc7a36388dc9a3d1cc397
tree2cc35309dc7cb65fbe9f8fe46762edf8a50a7f02
parent60a2f3c166cebf56048d00cee47b9ed1969844d6
Make x86_64 fegetenv preserve exception mask (bug 16198).

Bug 16198 is x86_64 fegetenv wrongly masking exceptions for which
traps are enabled, because that's a side-effect of the fnstenv
instruction.  This patch fixes it to use fldenv immediately after
fnstenv, like the i386 version.  Tested x86_64 and x86.

[BZ #16198]
* sysdeps/x86_64/fpu/fegetenv.c (fegetenv): Use fldenv after
fnstenv.
* math/test-fenv-preserve.c: New file.
* math/Makefile (tests): Add test-fenv-preserve.
ChangeLog
NEWS
math/Makefile
math/test-fenv-preserve.c [new file with mode: 0644]
sysdeps/x86_64/fpu/fegetenv.c