* gendef (_setjmp (x86)): Save FPU control word location in sequential

location.  Adjust sigstack save accordingly.
(_longjmp (x86)): Ditto for restore.
This commit is contained in:
Christopher Faylor 2014-01-27 20:53:02 +00:00
parent ed89fbc3ff
commit 249059b70e
2 changed files with 10 additions and 4 deletions

View File

@ -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.

View File

@ -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