* 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:
parent
ed89fbc3ff
commit
249059b70e
|
@ -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>
|
2014-01-27 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* gendef (sigdelayed (x86_64)): Save and restore FPU control word.
|
* gendef (sigdelayed (x86_64)): Save and restore FPU control word.
|
||||||
|
|
|
@ -771,13 +771,13 @@ _setjmp:
|
||||||
movw %ax,42(%edi)
|
movw %ax,42(%edi)
|
||||||
movl %fs:0,%eax
|
movl %fs:0,%eax
|
||||||
movl %eax,44(%edi)
|
movl %eax,44(%edi)
|
||||||
fnstcw 56(%edi)
|
fnstcw 48(%edi)
|
||||||
pushl %ebx
|
pushl %ebx
|
||||||
call stabilize_sig_stack
|
call stabilize_sig_stack
|
||||||
movl $tls::stackptr(%ebx),%eax # save stack pointer contents
|
movl $tls::stackptr(%ebx),%eax # save stack pointer contents
|
||||||
decl $tls::stacklock(%ebx)
|
decl $tls::stacklock(%ebx)
|
||||||
popl %ebx
|
popl %ebx
|
||||||
movl %eax,48(%edi)
|
movl %eax,52(%edi)
|
||||||
popl %edi
|
popl %edi
|
||||||
movl \$0,%eax
|
movl \$0,%eax
|
||||||
leave
|
leave
|
||||||
|
@ -859,7 +859,7 @@ _longjmp:
|
||||||
movl %esp,%ebp
|
movl %esp,%ebp
|
||||||
movl 8(%ebp),%edi # address of buffer
|
movl 8(%ebp),%edi # address of buffer
|
||||||
call stabilize_sig_stack
|
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
|
movl %eax,$tls::stackptr(%ebx) # restore
|
||||||
decl $tls::stacklock(%ebx) # relinquish lock
|
decl $tls::stacklock(%ebx) # relinquish lock
|
||||||
xorl %eax,%eax
|
xorl %eax,%eax
|
||||||
|
@ -875,7 +875,7 @@ _longjmp:
|
||||||
pushfl
|
pushfl
|
||||||
popl %ebx
|
popl %ebx
|
||||||
fninit
|
fninit
|
||||||
fldcw 56(%edi)
|
fldcw 48(%edi)
|
||||||
movl 44(%edi),%eax
|
movl 44(%edi),%eax
|
||||||
movl %eax,%fs:0
|
movl %eax,%fs:0
|
||||||
movw 42(%edi),%ax
|
movw 42(%edi),%ax
|
||||||
|
|
Loading…
Reference in New Issue