OpenLIBM: local modification - elf notes on assembly
[dragonfly.git] / contrib / openbsd_libm / arch / amd64 / s_copysignf.S
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
14 ENTRY(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
21 END(copysignf)
22
23         .section .note.GNU-stack,"",%progbits