xref: /openbsd-src/lib/libm/arch/amd64/s_copysignf.S (revision f2da64fbbbf1b03f09f390ab01267c93dfd77c4c)
1/*	$OpenBSD: s_copysignf.S,v 1.5 2016/09/12 19:47:01 guenther 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