uClibc: add copysign, copysignf, copysignl for i386
[openwrt/svn-archive/archive.git] / toolchain / uClibc / patches-0.9.30.1 / 430-i386_copysign.patch
1 --- a/libc/sysdeps/linux/i386/Makefile.arch
2 +++ b/libc/sysdeps/linux/i386/Makefile.arch
3 @@ -9,6 +9,7 @@ CSRC := brk.c sigaction.c __syscall_erro
4
5 SSRC := \
6 __longjmp.S vfork.S clone.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
7 - sync_file_range.S syscall.S mmap.S mmap64.S posix_fadvise64.S
8 + sync_file_range.S syscall.S mmap.S mmap64.S posix_fadvise64.S \
9 + s_copysign.S s_copysignf.S s_copysignl.S
10
11 include $(top_srcdir)libc/sysdeps/linux/Makefile.commonarch
12 --- /dev/null
13 +++ b/libc/sysdeps/linux/i386/s_copysign.S
14 @@ -0,0 +1,25 @@
15 +/*
16 + * Written by J.T. Conklin <jtc@netbsd.org>.
17 + * Public domain.
18 + */
19 +
20 +#define _ERRNO_H 1
21 +#include <features.h>
22 +#include <bits/errno.h>
23 +
24 +.text
25 +.global copysign
26 +.type copysign,%function
27 +copysign:
28 + movl 16(%esp),%edx
29 + movl 8(%esp),%eax
30 + andl $0x80000000,%edx
31 + andl $0x7fffffff,%eax
32 + orl %edx,%eax
33 + movl %eax,8(%esp)
34 + fldl 4(%esp)
35 + ret
36 +.size copysign,.-copysign
37 +
38 +libc_hidden_def(copysign)
39 +
40 --- /dev/null
41 +++ b/libc/sysdeps/linux/i386/s_copysignf.S
42 @@ -0,0 +1,25 @@
43 +/*
44 + * Written by J.T. Conklin <jtc@netbsd.org>.
45 + * Public domain.
46 + */
47 +
48 +#define _ERRNO_H 1
49 +#include <features.h>
50 +#include <bits/errno.h>
51 +
52 +.text
53 +.global copysignf
54 +.type copysignf,%function
55 +copysignf:
56 + movl 8(%esp),%edx
57 + movl 4(%esp),%eax
58 + andl $0x80000000,%edx
59 + andl $0x7fffffff,%eax
60 + orl %edx,%eax
61 + movl %eax,4(%esp)
62 + flds 4(%esp)
63 + ret
64 +.size copysignf,.-copysignf
65 +
66 +libc_hidden_def(copysignf)
67 +
68 --- /dev/null
69 +++ b/libc/sysdeps/linux/i386/s_copysignl.S
70 @@ -0,0 +1,26 @@
71 +/*
72 + * Written by J.T. Conklin <jtc@netbsd.org>.
73 + * Changes for long double by Ulrich Drepper <drepper@cygnus.com>
74 + * Public domain.
75 + */
76 +
77 +#define _ERRNO_H 1
78 +#include <features.h>
79 +#include <bits/errno.h>
80 +
81 +.text
82 +.global copysignl
83 +.type copysignl,%function
84 +copysignl:
85 + movl 24(%esp),%edx
86 + movl 12(%esp),%eax
87 + andl $0x8000,%edx
88 + andl $0x7fff,%eax
89 + orl %edx,%eax
90 + movl %eax,12(%esp)
91 + fldt 4(%esp)
92 + ret
93 +.size copysignl,.-copysignl
94 +
95 +libc_hidden_def(copysignl)
96 +