svn commit: r267307 - in head/lib/libc: amd64/gen i386/gen
Jilles Tjoelker
jilles at FreeBSD.org
Mon Jun 9 21:35:37 UTC 2014
Author: jilles
Date: Mon Jun 9 21:35:36 2014
New Revision: 267307
URL: http://svnweb.freebsd.org/changeset/base/267307
Log:
siglongjmp(): Preserve floating point exception flags on i386 and amd64.
Per POSIX, siglongjmp() shall be equivalent to longjmp() except that it must
match sigsetjmp() instead of setjmp() and except for the effect on the
signal mask. Therefore, it should preserve the floating point exception
flags.
This was fixed for longjmp() and _longjmp() in r180080 and r180081 for amd64
and i386 respectively.
Modified:
head/lib/libc/amd64/gen/sigsetjmp.S
head/lib/libc/i386/gen/sigsetjmp.S
Modified: head/lib/libc/amd64/gen/sigsetjmp.S
==============================================================================
--- head/lib/libc/amd64/gen/sigsetjmp.S Mon Jun 9 21:06:46 2014 (r267306)
+++ head/lib/libc/amd64/gen/sigsetjmp.S Mon Jun 9 21:35:36 2014 (r267307)
@@ -105,7 +105,6 @@ ENTRY(__siglongjmp)
movq 40(%rdx),%r13
movq 48(%rdx),%r14
movq 56(%rdx),%r15
- fninit
fldcw 64(%rdx)
testq %rax,%rax
jnz 1f
Modified: head/lib/libc/i386/gen/sigsetjmp.S
==============================================================================
--- head/lib/libc/i386/gen/sigsetjmp.S Mon Jun 9 21:06:46 2014 (r267306)
+++ head/lib/libc/i386/gen/sigsetjmp.S Mon Jun 9 21:35:36 2014 (r267307)
@@ -115,7 +115,6 @@ ENTRY(__siglongjmp)
movl 12(%edx),%ebp
movl 16(%edx),%esi
movl 20(%edx),%edi
- fninit
fldcw 24(%edx)
testl %eax,%eax
jnz 1f
More information about the svn-src-all
mailing list