* 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