1/* $OpenBSD: s_floor.S,v 1.3 2009/04/08 22:30:41 martynas Exp $ */ 2/* 3 * Written by J.T. Conklin <jtc@NetBSD.org>. 4 * Public domain. 5 */ 6 7#include <machine/asm.h> 8 9ENTRY(floor) 10 movsd %xmm0, -8(%rsp) 11 fstcw -12(%rsp) 12 movw -12(%rsp),%dx 13 orw $0x0400,%dx 14 andw $0xf7ff,%dx 15 movw %dx,-16(%rsp) 16 fldcw -16(%rsp) 17 fldl -8(%rsp) 18 frndint 19 fldcw -12(%rsp) 20 fstpl -8(%rsp) 21 movsd -8(%rsp),%xmm0 22 ret 23