Fixed fiddling with the control word. Use the stack space reserved for

that purpose instead of space below the stack.
This commit is contained in:
Bruce Evans 1996-12-14 16:43:53 +00:00
parent fac5450c4f
commit c5dd403925
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=20447
2 changed files with 12 additions and 12 deletions

View file

@ -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

View file

@ -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