xref: /openbsd/lib/libc/arch/amd64/gen/fabs.S (revision 73471bf0)
1/*	$OpenBSD: fabs.S,v 1.8 2018/07/03 23:14:05 mortimer Exp $	*/
2/*	$NetBSD: fabs.S,v 1.1 2001/06/19 00:25:02 fvdl Exp $	*/
3
4#include <machine/asm.h>
5
6/*
7 * Ok, this sucks. Is there really no way to push an xmm register onto
8 * the FP stack directly?
9 */
10
11ENTRY(fabs)
12	RETGUARD_SETUP(fabs, r11)
13	movsd	%xmm0, -8(%rsp)
14	fldl	-8(%rsp)
15	fabs
16	fstpl	-8(%rsp)
17	movsd	-8(%rsp),%xmm0
18	RETGUARD_CHECK(fabs, r11)
19	ret
20END(fabs)
21