1/* $OpenBSD: s_floor.S,v 1.5 2022/12/27 17:10:07 jmc Exp $ */ 2/* 3 * Written by J.T. Conklin <jtc@netbsd.org>. 4 * Public domain. 5 */ 6 7#include "DEFS.h" 8 9ENTRY(floor) 10 subl $8,%esp 11 12 fstcw 4(%esp) /* store fpu control word */ 13 movw 4(%esp),%dx 14 orw $0x0400,%dx /* round towards -oo */ 15 andw $0xf7ff,%dx 16 movw %dx,(%esp) 17 fldcw (%esp) /* load modified control word */ 18 19 fldl 12(%esp); /* round */ 20 frndint 21 22 fldcw 4(%esp) /* restore original control word */ 23 24 addl $8,%esp 25 ret 26END_STD(floor) 27