xref: /minix3/lib/libc/arch/x86_64/stdlib/labs.S (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc/*	$NetBSD: labs.S,v 1.3 2014/05/22 15:01:56 uebayasi Exp $	*/
22fe8fb19SBen Gras
32fe8fb19SBen Gras/*
42fe8fb19SBen Gras * Written by Frank van der Linden (fvdl@wasabisystems.com)
52fe8fb19SBen Gras * Public Domain.
62fe8fb19SBen Gras */
72fe8fb19SBen Gras
82fe8fb19SBen Gras#include <machine/asm.h>
92fe8fb19SBen Gras
102fe8fb19SBen Gras#if defined(LIBC_SCCS)
11*0a6a1f1dSLionel Sambuc	RCSID("$NetBSD: labs.S,v 1.3 2014/05/22 15:01:56 uebayasi Exp $")
122fe8fb19SBen Gras#endif
132fe8fb19SBen Gras
142fe8fb19SBen Gras#ifdef WEAK_ALIAS
152fe8fb19SBen GrasWEAK_ALIAS(imaxabs, _llabs)
162fe8fb19SBen GrasWEAK_ALIAS(llabs, _llabs)
172fe8fb19SBen GrasWEAK_ALIAS(labs, _labs)
182fe8fb19SBen Gras#endif
192fe8fb19SBen Gras
202fe8fb19SBen Gras#ifdef WEAK_ALIAS
212fe8fb19SBen GrasENTRY(_llabs)
222fe8fb19SBen GrasENTRY(_labs)
232fe8fb19SBen Gras#else
242fe8fb19SBen GrasENTRY(llabs)
252fe8fb19SBen GrasENTRY(labs)
262fe8fb19SBen Gras#endif
272fe8fb19SBen Gras        movq    %rdi,%rax
282fe8fb19SBen Gras        testq   %rax,%rax
292fe8fb19SBen Gras        jns     1f
302fe8fb19SBen Gras        negq    %rax
312fe8fb19SBen Gras1:      ret
32*0a6a1f1dSLionel Sambuc#ifdef WEAK_ALIAS
33*0a6a1f1dSLionel SambucEND(_llabs)
34*0a6a1f1dSLionel SambucEND(_labs)
35*0a6a1f1dSLionel Sambuc#else
36*0a6a1f1dSLionel SambucEND(llabs)
37*0a6a1f1dSLionel SambucEND(labs)
38*0a6a1f1dSLionel Sambuc#endif
39