105a0b428SJohn Marino/* $OpenBSD: s_floorf.S,v 1.4 2009/04/08 22:30:41 martynas Exp $ */ 205a0b428SJohn Marino/* 305a0b428SJohn Marino * Written by J.T. Conklin <jtc@NetBSD.org>. 405a0b428SJohn Marino * Public domain. 505a0b428SJohn Marino */ 605a0b428SJohn Marino 705a0b428SJohn Marino#include <machine/asm.h> 805a0b428SJohn Marino 905a0b428SJohn MarinoENTRY(floorf) 1005a0b428SJohn Marino movss %xmm0, -4(%rsp) 1105a0b428SJohn Marino fstcw -8(%rsp) 1205a0b428SJohn Marino movw -8(%rsp),%dx 1305a0b428SJohn Marino orw $0x0400,%dx 1405a0b428SJohn Marino andw $0xf7ff,%dx 1505a0b428SJohn Marino movw %dx,-12(%rsp) 1605a0b428SJohn Marino fldcw -12(%rsp) 1705a0b428SJohn Marino flds -4(%rsp) 1805a0b428SJohn Marino frndint 1905a0b428SJohn Marino fldcw -8(%rsp) 2005a0b428SJohn Marino fstps -4(%rsp) 2105a0b428SJohn Marino movss -4(%rsp),%xmm0 2205a0b428SJohn Marino ret 23*a27bb01fSJohn MarinoEND(floorf) 24*a27bb01fSJohn Marino 25*a27bb01fSJohn Marino .section .note.GNU-stack,"",%progbits 26