xref: /openbsd-src/lib/libm/arch/amd64/e_fmod.S (revision 3ba7702be0c7af3f580acc0a15f2fb78868ef980)
1*3ba7702bSmortimer/*	$OpenBSD: e_fmod.S,v 1.5 2018/07/03 22:43:34 mortimer 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
113ccbf660Sderaadt
127b36286aSmartynasENTRY(fmod)
13*3ba7702bSmortimer	RETGUARD_SETUP(fmod, r11)
143ccbf660Sderaadt	XMM_TWO_ARG_DOUBLE_PROLOGUE
153ccbf660Sderaadt	fldl	ARG_DOUBLE_TWO
163ccbf660Sderaadt	fldl	ARG_DOUBLE_ONE
173ccbf660Sderaadt1:	fprem
183ccbf660Sderaadt	fstsw	%ax
193ccbf660Sderaadt	btw	$10,%ax
203ccbf660Sderaadt	jc	1b
213ccbf660Sderaadt	fstp	%st(1)
223ccbf660Sderaadt	XMM_DOUBLE_EPILOGUE
23*3ba7702bSmortimer	RETGUARD_CHECK(fmod, r11)
243ccbf660Sderaadt	ret
252f2c0062SguentherEND(fmod)
26