xref: /dragonfly/contrib/openbsd_libm/arch/amd64/s_copysignf.S (revision a27bb01fb90c87959b0c0dfacf7dd85d1308a35f)
1/*        $OpenBSD: s_copysignf.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.Lneg:
10          .long 0x7fffffff
11.Lpos:
12          .long 0x80000000
13
14ENTRY(copysignf)
15          movss    .Lpos(%rip),%xmm2
16          movss    .Lneg(%rip),%xmm3
17          pand    %xmm2,%xmm1
18          pand    %xmm3,%xmm0
19          por     %xmm1,%xmm0
20          ret
21END(copysignf)
22
23          .section .note.GNU-stack,"",%progbits
24