summaryrefslogtreecommitdiffstats
path: root/lib/libc/arch/amd64/gen/fabs.S
blob: 441bccc17ab0c73473e3b3ac070aab4b8a4e67e7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*	$OpenBSD: fabs.S,v 1.7 2015/05/29 08:50:12 uebayasi Exp $	*/
/*	$NetBSD: fabs.S,v 1.1 2001/06/19 00:25:02 fvdl Exp $	*/

#include <machine/asm.h>

/*
 * Ok, this sucks. Is there really no way to push an xmm register onto
 * the FP stack directly?
 */

ENTRY(fabs)
	movsd	%xmm0, -8(%rsp)
	fldl	-8(%rsp)
	fabs
	fstpl	-8(%rsp)
	movsd	-8(%rsp),%xmm0
	ret
END(fabs)