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