summaryrefslogtreecommitdiffstats
path: root/lib/libc/i386/gen/sigsetjmp.S
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2014-06-09 21:35:36 +0000
committerjilles <jilles@FreeBSD.org>2014-06-09 21:35:36 +0000
commitfe13779dda3878ced9ebc571bcac78c79b1fc19b (patch)
tree6b964251625d0c6c34eef8893f0b237dd311c015 /lib/libc/i386/gen/sigsetjmp.S
parent17863b4bce26877f2514e7e6fc8157ed57011028 (diff)
downloadFreeBSD-src-fe13779dda3878ced9ebc571bcac78c79b1fc19b.zip
FreeBSD-src-fe13779dda3878ced9ebc571bcac78c79b1fc19b.tar.gz
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.
Diffstat (limited to 'lib/libc/i386/gen/sigsetjmp.S')
-rw-r--r--lib/libc/i386/gen/sigsetjmp.S1
1 files changed, 0 insertions, 1 deletions
diff --git a/lib/libc/i386/gen/sigsetjmp.S b/lib/libc/i386/gen/sigsetjmp.S
index 0920b6d..1c63649 100644
--- a/lib/libc/i386/gen/sigsetjmp.S
+++ b/lib/libc/i386/gen/sigsetjmp.S
@@ -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
OpenPOWER on IntegriCloud