* 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>
|
||||
|
||||
* gendef (sigdelayed (x86_64)): Save and restore FPU control word.
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user