xref: /openbsd-src/lib/libm/arch/amd64/e_scalb.S (revision eb4b46e17f51cdf955e1d0c669661b9580de80f1)
1*eb4b46e1Stb/*	$OpenBSD: e_scalb.S,v 1.6 2022/08/27 08:30:18 tb Exp $ */
23ccbf660Sderaadt/*
33ccbf660Sderaadt * Written by J.T. Conklin <jtc@NetBSD.org>.
43ccbf660Sderaadt * Public domain.
53ccbf660Sderaadt */
63ccbf660Sderaadt
73ccbf660Sderaadt#include <machine/asm.h>
83ccbf660Sderaadt
93ccbf660Sderaadt#include "abi.h"
103ccbf660Sderaadt
11*eb4b46e1StbENTRY_NB(scalb)
123ba7702bSmortimer	RETGUARD_SETUP(scalb, r11)
133ccbf660Sderaadt	XMM_TWO_ARG_DOUBLE_PROLOGUE
143ccbf660Sderaadt	fldl	ARG_DOUBLE_TWO
153ccbf660Sderaadt	fldl	ARG_DOUBLE_ONE
163ccbf660Sderaadt	fscale
173ccbf660Sderaadt	fstp	%st(1)			/* bug fix for fp stack overflow */
183ccbf660Sderaadt	XMM_DOUBLE_EPILOGUE
193ba7702bSmortimer	RETGUARD_CHECK(scalb, r11)
203ccbf660Sderaadt	ret
212f2c0062SguentherEND_NONSTD(scalb)
22