diff options
| author | Rich Felker <dalias@aerifal.cx> | 2012-03-17 18:02:20 -0400 | 
|---|---|---|
| committer | Rich Felker <dalias@aerifal.cx> | 2012-03-17 18:02:20 -0400 | 
| commit | 9cb6878e747909c7a45dd1c4dd550ac62e1f7690 (patch) | |
| tree | c98ee43beccfaa6f900df529de01eeee00d48aad | |
| parent | d5e576c7527c42b376d20ef38669ffc2a78b0a76 (diff) | |
| download | musl-9cb6878e747909c7a45dd1c4dd550ac62e1f7690.tar.gz | |
fix x86_64 fe[gs]etround, analogous to nsz's x86 changes
| -rw-r--r-- | src/fenv/x86_64/fenv.s | 17 | 
1 files changed, 9 insertions, 8 deletions
| diff --git a/src/fenv/x86_64/fenv.s b/src/fenv/x86_64/fenv.s index 8226b52b..11aa3da2 100644 --- a/src/fenv/x86_64/fenv.s +++ b/src/fenv/x86_64/fenv.s @@ -32,18 +32,19 @@ feraiseexcept:  .global fesetround  .type fesetround,@function  fesetround: +	push %rax  	xor %eax,%eax -	sub $32,%rsp -	fnstenv (%rsp) +	mov %edi,%ecx +	fnstcw (%rsp)  	andb $0xf3,1(%rsp) -	or %edi,(%rsp) -	fldenv (%rsp) +	or %ch,1(%rsp) +	fldcw (%rsp)  	stmxcsr (%rsp) -	shl $3,%edi +	shl $3,%ch  	andb $0x9f,1(%rsp) -	or %edi,(%rsp) +	or %ch,1(%rsp)  	ldmxcsr (%rsp) -	add $32,%rsp +	pop %rcx  	ret  .global fegetround @@ -53,7 +54,7 @@ fegetround:  	stmxcsr (%rsp)  	pop %rax  	shr $3,%eax -	and $0xc,%ah +	and $0xc00,%eax  	ret  .global fegetenv | 
