xref: /openbsd-src/lib/libm/arch/amd64/e_scalb.S (revision eb4b46e17f51cdf955e1d0c669661b9580de80f1)
1/*	$OpenBSD: e_scalb.S,v 1.6 2022/08/27 08:30:18 tb Exp $ */
2/*
3 * Written by J.T. Conklin <jtc@NetBSD.org>.
4 * Public domain.
5 */
6
7#include <machine/asm.h>
8
9#include "abi.h"
10
11ENTRY_NB(scalb)
12	RETGUARD_SETUP(scalb, r11)
13	XMM_TWO_ARG_DOUBLE_PROLOGUE
14	fldl	ARG_DOUBLE_TWO
15	fldl	ARG_DOUBLE_ONE
16	fscale
17	fstp	%st(1)			/* bug fix for fp stack overflow */
18	XMM_DOUBLE_EPILOGUE
19	RETGUARD_CHECK(scalb, r11)
20	ret
21END_NONSTD(scalb)
22