diff options
author | bde <bde@FreeBSD.org> | 1996-12-14 16:43:53 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1996-12-14 16:43:53 +0000 |
commit | d859e7c0e5df793d2dff42afadfa39b0edc09672 (patch) | |
tree | ba315c3fd1aa26858973103cd6edb93dbf408e58 /lib/msun/i387 | |
parent | 0f43fda518bf59e5821d50ef8f4d6fe42e6e7729 (diff) | |
download | FreeBSD-src-d859e7c0e5df793d2dff42afadfa39b0edc09672.zip FreeBSD-src-d859e7c0e5df793d2dff42afadfa39b0edc09672.tar.gz |
Fixed fiddling with the control word. Use the stack space reserved for
that purpose instead of space below the stack.
Diffstat (limited to 'lib/msun/i387')
-rw-r--r-- | lib/msun/i387/s_ceil.S | 12 | ||||
-rw-r--r-- | lib/msun/i387/s_floor.S | 12 |
2 files changed, 12 insertions, 12 deletions
diff --git a/lib/msun/i387/s_ceil.S b/lib/msun/i387/s_ceil.S index c500263..84a1b7a 100644 --- a/lib/msun/i387/s_ceil.S +++ b/lib/msun/i387/s_ceil.S @@ -35,24 +35,24 @@ #include <machine/asmacros.h> -RCSID("$Id: s_ceil.S,v 1.1.1.1 1994/08/19 09:40:00 jkh Exp $") +RCSID("$Id: s_ceil.S,v 1.2 1994/08/19 11:14:21 jkh Exp $") ENTRY(ceil) pushl %ebp movl %esp,%ebp subl $8,%esp - fstcw -12(%ebp) /* store fpu control word */ - movw -12(%ebp),%dx + fstcw -4(%ebp) /* store fpu control word */ + movw -4(%ebp),%dx orw $0x0800,%dx /* round towards +oo */ andw $0xfbff,%dx - movw %dx,-16(%ebp) - fldcw -16(%ebp) /* load modfied control word */ + movw %dx,-8(%ebp) + fldcw -8(%ebp) /* load modfied control word */ fldl 8(%ebp); /* round */ frndint - fldcw -12(%ebp) /* restore original control word */ + fldcw -4(%ebp) /* restore original control word */ leave ret diff --git a/lib/msun/i387/s_floor.S b/lib/msun/i387/s_floor.S index 129b01e..7abc424 100644 --- a/lib/msun/i387/s_floor.S +++ b/lib/msun/i387/s_floor.S @@ -35,24 +35,24 @@ #include <machine/asmacros.h> -RCSID("$Id: s_floor.S,v 1.1.1.1 1994/08/19 09:40:01 jkh Exp $") +RCSID("$Id: s_floor.S,v 1.2 1994/08/19 11:14:25 jkh Exp $") ENTRY(floor) pushl %ebp movl %esp,%ebp subl $8,%esp - fstcw -12(%ebp) /* store fpu control word */ - movw -12(%ebp),%dx + fstcw -4(%ebp) /* store fpu control word */ + movw -4(%ebp),%dx orw $0x0400,%dx /* round towards -oo */ andw $0xf7ff,%dx - movw %dx,-16(%ebp) - fldcw -16(%ebp) /* load modfied control word */ + movw %dx,-8(%ebp) + fldcw -8(%ebp) /* load modfied control word */ fldl 8(%ebp); /* round */ frndint - fldcw -12(%ebp) /* restore original control word */ + fldcw -4(%ebp) /* restore original control word */ leave ret |