12fe8fb19SBen Gras/* 22fe8fb19SBen Gras * Written by J.T. Conklin <jtc@NetBSD.org>. 32fe8fb19SBen Gras * Public domain. 42fe8fb19SBen Gras */ 52fe8fb19SBen Gras 62fe8fb19SBen Gras#include <machine/asm.h> 72fe8fb19SBen Gras 82fe8fb19SBen Gras/* 92fe8fb19SBen Gras * XXXfvdl split this file. 102fe8fb19SBen Gras */ 112fe8fb19SBen Gras 12*84d9c625SLionel SambucRCSID("$NetBSD: s_copysignf.S,v 1.7 2011/06/21 21:52:49 joerg Exp $") 132fe8fb19SBen Gras 142fe8fb19SBen Gras#ifdef __x86_64__ 152fe8fb19SBen Gras.Lneg: 162fe8fb19SBen Gras .long 0x7fffffff 172fe8fb19SBen Gras.Lpos: 182fe8fb19SBen Gras .long 0x80000000 192fe8fb19SBen Gras#endif 202fe8fb19SBen Gras 212fe8fb19SBen GrasENTRY(copysignf) 222fe8fb19SBen Gras#ifdef __i386__ 232fe8fb19SBen Gras movl 8(%esp),%edx 242fe8fb19SBen Gras andl $0x80000000,%edx 252fe8fb19SBen Gras movl 4(%esp),%eax 262fe8fb19SBen Gras andl $0x7fffffff,%eax 272fe8fb19SBen Gras orl %edx,%eax 282fe8fb19SBen Gras movl %eax,4(%esp) 292fe8fb19SBen Gras flds 4(%esp) 302fe8fb19SBen Gras#else 312fe8fb19SBen Gras movss .Lpos(%rip),%xmm2 322fe8fb19SBen Gras movss .Lneg(%rip),%xmm3 33*84d9c625SLionel Sambuc pand %xmm2,%xmm1 34*84d9c625SLionel Sambuc pand %xmm3,%xmm0 35*84d9c625SLionel Sambuc por %xmm1,%xmm0 362fe8fb19SBen Gras#endif 372fe8fb19SBen Gras ret 38