xref: /dragonfly/contrib/openbsd_libm/arch/amd64/s_copysign.S (revision a27bb01fb90c87959b0c0dfacf7dd85d1308a35f)
1/*        $OpenBSD: s_copysign.S,v 1.4 2011/07/09 18:00:53 martynas Exp $ */
2/*
3 * Written by J.T. Conklin <jtc@NetBSD.org>.
4 * Public domain.
5 */
6
7#include <machine/asm.h>
8
9.Lpos:
10          .quad     0x8000000000000000
11.Lneg:
12          .quad     0x7fffffffffffffff
13
14ENTRY(copysign)
15          movq      .Lpos(%rip),%xmm2
16          movq      .Lneg(%rip),%xmm3
17          pand      %xmm2,%xmm1
18          pand      %xmm3,%xmm0
19          por       %xmm1,%xmm0
20          ret
21END(copysign)
22
23          .section .note.GNU-stack,"",%progbits
24