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