Include SSE state in i386 fenv_t (bug 16064)
H.J. Lu
hjl.tools@gmail.com
Fri May 9 16:51:00 GMT 2014
On Fri, May 9, 2014 at 9:45 AM, Joseph S. Myers <joseph@codesourcery.com> wrote:
> On Fri, 9 May 2014, H.J. Lu wrote:
>
>> When loading load x87 fenv_t, we should either not to
>> change __eip or set it to 0 together with other fields,
>> similar to other code paths in __fesetenv, to avoid any
>> potential issues.
>
> This patch sets all those fields to 0 unconditionally.
>
> 2014-05-09 Joseph Myers <joseph@codesourcery.com>
>
> [BZ #16064]
> * sysdeps/i386/fpu/fegetenv.c: Include <unistd.h>, <ldsodefs.h>
> and <dl-procinfo.h>.
> (__fegetenv): Save SSE state in envp->__eip if supported.
> * sysdeps/i386/fpu/feholdexcpt.c (feholdexcept): Save SSE state in
> envp->__eip if supported.
> * sysdeps/i386/fpu/fesetenv.c: Include <unistd.h>, <ldsodefs.h>
> and <dl-procinfo.h>.
> (__fesetenv): Always set __eip, __cs_selector, __opcode,
> __data_offset and __data_selector in environment to 0. Set SSE
> state if supported.
> * sysdeps/x86/fpu/Makefile [$(subdir) = math] (tests): Add
> test-fenv-sse.
> [$(subdir) = math] (CFLAGS-test-fenv-sse.c): Add -msse2
> -mfpmath=sse.
> * sysdeps/x86/fpu/test-fenv-sse.c: New file.
>
Looks good to me.
Thanks.
--
H.J.
More information about the Libc-alpha
mailing list