xref: /dflybsd-src/contrib/openbsd_libm/arch/amd64/s_scalbnf.S (revision a27bb01fb90c87959b0c0dfacf7dd85d1308a35f)
105a0b428SJohn Marino/*	$OpenBSD: s_scalbnf.S,v 1.4 2009/04/25 11:03:35 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 Marino#include "abi.h"
1005a0b428SJohn Marino
1105a0b428SJohn Marino.global ldexpf
1205a0b428SJohn Marino	ldexpf = scalbnf
1305a0b428SJohn Marino
1405a0b428SJohn MarinoENTRY(scalbnf)
1505a0b428SJohn Marino	movss	%xmm0,-8(%rsp)
1605a0b428SJohn Marino	movl	%edi,-4(%rsp)
1705a0b428SJohn Marino	fildl	-4(%rsp)
1805a0b428SJohn Marino	flds	-8(%rsp)
1905a0b428SJohn Marino	fscale
2005a0b428SJohn Marino	fstp	%st(1)		/* bug fix for fp stack overflow */
2105a0b428SJohn Marino	fstps	-8(%rsp)
2205a0b428SJohn Marino	movss	-8(%rsp),%xmm0
2305a0b428SJohn Marino	ret
24*a27bb01fSJohn MarinoEND(scalbnf)
2505a0b428SJohn Marino
26*a27bb01fSJohn Marino	.section .note.GNU-stack,"",%progbits
27