summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rwxr-xr-xwinsup/cygwin/gendef2
2 files changed, 7 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 474bbc875..8bffa819e 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2015-11-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * gendef (sigdelayed): Save and restore content of the MXCSR register
+ on x86_64.
+
2015-11-27 Corinna Vinschen <corinna@vinschen.de>
* cygtls.h (_cygtls::wait_signal_arrived): Renamed from
diff --git a/winsup/cygwin/gendef b/winsup/cygwin/gendef
index 986827773..9d6f1b40b 100755
--- a/winsup/cygwin/gendef
+++ b/winsup/cygwin/gendef
@@ -229,6 +229,7 @@ sigdelayed:
.seh_pushreg %rax
subq \$0x128,%rsp
.seh_stackalloc 0x128
+ stmxcsr 0x124(%rsp)
fnstcw 0x120(%rsp)
movdqa %xmm15,0x110(%rsp)
movdqa %xmm14,0x100(%rsp)
@@ -290,6 +291,7 @@ sigdelayed:
movdqa 0x110(%rsp),%xmm15
fninit
fldcw 0x120(%rsp)
+ ldmxcsr 0x124(%rsp)
addq \$0x128,%rsp
popq %rax
popq %rbx