xref: /netbsd-src/lib/libc/arch/powerpc64/gen/fabs.c (revision 3e49d37969de969321afabfd12533190ccf5c087)
1*3e49d379Sriastradh /*	$NetBSD: fabs.c,v 1.3 2018/11/08 16:31:46 riastradh Exp $	*/
2d48f1466Sross 
3d48f1466Sross #include <math.h>
4d48f1466Sross 
__strong_alias(fabsl,fabs)5*3e49d379Sriastradh __strong_alias(fabsl, fabs)
6*3e49d379Sriastradh 
7d48f1466Sross double
8d48f1466Sross fabs(double x)
9d48f1466Sross {
10d48f1466Sross #ifdef _SOFT_FLOAT
11d48f1466Sross 	if (x < 0)
12d48f1466Sross 		x = -x;
13d48f1466Sross #else
14d48f1466Sross 	__asm volatile("fabs %0,%1" : "=f"(x) : "f"(x));
15d48f1466Sross #endif
16d48f1466Sross 	return (x);
17d48f1466Sross }
18