Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2014-01-28 00:53:02 +0400
committerChristopher Faylor <me@cgf.cx>2014-01-28 00:53:02 +0400
commit249059b70e4fe1ea3368a092e1b0f57571f58e55 (patch)
tree6a5c49e033cff3de4265129b1a2b2b72bbb97bc5
parented89fbc3ff110b01f753010bda1e770d14908875 (diff)
* gendef (_setjmp (x86)): Save FPU control word location in sequential
location. Adjust sigstack save accordingly. (_longjmp (x86)): Ditto for restore.
-rw-r--r--winsup/cygwin/ChangeLog6
-rwxr-xr-xwinsup/cygwin/gendef8
2 files changed, 10 insertions, 4 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 43c4fe86a..f96e8f0dc 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,9 @@
+2014-01-27 Christopher Faylor <me.cygwin2014@cgf.cx>
+
+ * gendef (_setjmp (x86)): Save FPU control word location in sequential
+ location. Adjust sigstack save accordingly.
+ (_longjmp (x86)): Ditto for restore.
+
2014-01-27 Corinna Vinschen <corinna@vinschen.de>
* gendef (sigdelayed (x86_64)): Save and restore FPU control word.
diff --git a/winsup/cygwin/gendef b/winsup/cygwin/gendef
index fc033b530..a7c036f61 100755
--- a/winsup/cygwin/gendef
+++ b/winsup/cygwin/gendef
@@ -771,13 +771,13 @@ _setjmp:
movw %ax,42(%edi)
movl %fs:0,%eax
movl %eax,44(%edi)
- fnstcw 56(%edi)
+ fnstcw 48(%edi)
pushl %ebx
call stabilize_sig_stack
movl $tls::stackptr(%ebx),%eax # save stack pointer contents
decl $tls::stacklock(%ebx)
popl %ebx
- movl %eax,48(%edi)
+ movl %eax,52(%edi)
popl %edi
movl \$0,%eax
leave
@@ -859,7 +859,7 @@ _longjmp:
movl %esp,%ebp
movl 8(%ebp),%edi # address of buffer
call stabilize_sig_stack
- movl 48(%edi),%eax # get old signal stack
+ movl 52(%edi),%eax # get old signal stack
movl %eax,$tls::stackptr(%ebx) # restore
decl $tls::stacklock(%ebx) # relinquish lock
xorl %eax,%eax
@@ -875,7 +875,7 @@ _longjmp:
pushfl
popl %ebx
fninit
- fldcw 56(%edi)
+ fldcw 48(%edi)
movl 44(%edi),%eax
movl %eax,%fs:0
movw 42(%edi),%ax