1/* $OpenBSD: s_copysign.S,v 1.8 2018/07/03 22:43:34 mortimer Exp $ */ 2/* 3 * Written by J.T. Conklin <jtc@NetBSD.org>. 4 * Public domain. 5 */ 6 7#include <machine/asm.h> 8 9#include "abi.h" 10 11 .section .rodata 12.Lpos: 13 .quad 0x8000000000000000 14.Lneg: 15 .quad 0x7fffffffffffffff 16 17ENTRY(copysign) 18 RETGUARD_SETUP(copysign, r11) 19 movq .Lpos(%rip),%xmm2 20 movq .Lneg(%rip),%xmm3 21 pand %xmm2,%xmm1 22 pand %xmm3,%xmm0 23 por %xmm1,%xmm0 24 RETGUARD_CHECK(copysign, r11) 25 ret 26END_STD(copysign) 27