Commit 4d14a459857bd151ecbd14bcd37b4628da00792b

Authored by David S. Miller
1 parent fb34035e7b

sparc: Stop trying to be so fancy and use __builtin_{memcpy,memset}()

This mirrors commit ff60fab71bb3b4fdbf8caf57ff3739ffd0887396
(x86: Use __builtin_memset and __builtin_memcpy for memset/memcpy)

Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 7 changed files with 6 additions and 112 deletions Side-by-side Diff

arch/sparc/include/asm/string_32.h
... ... @@ -16,8 +16,6 @@
16 16 #ifdef __KERNEL__
17 17  
18 18 extern void __memmove(void *,const void *,__kernel_size_t);
19   -extern __kernel_size_t __memcpy(void *,const void *,__kernel_size_t);
20   -extern __kernel_size_t __memset(void *,int,__kernel_size_t);
21 19  
22 20 #ifndef EXPORT_SYMTAB_STROPS
23 21  
24 22  
25 23  
... ... @@ -32,82 +30,10 @@
32 30 })
33 31  
34 32 #define __HAVE_ARCH_MEMCPY
  33 +#define memcpy(t, f, n) __builtin_memcpy(t, f, n)
35 34  
36   -static inline void *__constant_memcpy(void *to, const void *from, __kernel_size_t n)
37   -{
38   - extern void __copy_1page(void *, const void *);
39   -
40   - if(n <= 32) {
41   - __builtin_memcpy(to, from, n);
42   - } else if (((unsigned int) to & 7) != 0) {
43   - /* Destination is not aligned on the double-word boundary */
44   - __memcpy(to, from, n);
45   - } else {
46   - switch(n) {
47   - case PAGE_SIZE:
48   - __copy_1page(to, from);
49   - break;
50   - default:
51   - __memcpy(to, from, n);
52   - break;
53   - }
54   - }
55   - return to;
56   -}
57   -
58   -static inline void *__nonconstant_memcpy(void *to, const void *from, __kernel_size_t n)
59   -{
60   - __memcpy(to, from, n);
61   - return to;
62   -}
63   -
64   -#undef memcpy
65   -#define memcpy(t, f, n) \
66   -(__builtin_constant_p(n) ? \
67   - __constant_memcpy((t),(f),(n)) : \
68   - __nonconstant_memcpy((t),(f),(n)))
69   -
70 35 #define __HAVE_ARCH_MEMSET
71   -
72   -static inline void *__constant_c_and_count_memset(void *s, char c, __kernel_size_t count)
73   -{
74   - extern void bzero_1page(void *);
75   - extern __kernel_size_t __bzero(void *, __kernel_size_t);
76   -
77   - if(!c) {
78   - if(count == PAGE_SIZE)
79   - bzero_1page(s);
80   - else
81   - __bzero(s, count);
82   - } else {
83   - __memset(s, c, count);
84   - }
85   - return s;
86   -}
87   -
88   -static inline void *__constant_c_memset(void *s, char c, __kernel_size_t count)
89   -{
90   - extern __kernel_size_t __bzero(void *, __kernel_size_t);
91   -
92   - if(!c)
93   - __bzero(s, count);
94   - else
95   - __memset(s, c, count);
96   - return s;
97   -}
98   -
99   -static inline void *__nonconstant_memset(void *s, char c, __kernel_size_t count)
100   -{
101   - __memset(s, c, count);
102   - return s;
103   -}
104   -
105   -#undef memset
106   -#define memset(s, c, count) \
107   -(__builtin_constant_p(c) ? (__builtin_constant_p(count) ? \
108   - __constant_c_and_count_memset((s), (c), (count)) : \
109   - __constant_c_memset((s), (c), (count))) \
110   - : __nonconstant_memset((s), (c), (count)))
  36 +#define memset(s, c, count) __builtin_memset(s, c, count)
111 37  
112 38 #define __HAVE_ARCH_MEMSCAN
113 39  
arch/sparc/include/asm/string_64.h
... ... @@ -15,8 +15,6 @@
15 15  
16 16 #include <asm/asi.h>
17 17  
18   -extern void *__memset(void *,int,__kernel_size_t);
19   -
20 18 #ifndef EXPORT_SYMTAB_STROPS
21 19  
22 20 /* First the mem*() things. */
23 21  
... ... @@ -24,29 +22,10 @@
24 22 extern void *memmove(void *, const void *, __kernel_size_t);
25 23  
26 24 #define __HAVE_ARCH_MEMCPY
27   -extern void *memcpy(void *, const void *, __kernel_size_t);
  25 +#define memcpy(t, f, n) __builtin_memcpy(t, f, n)
28 26  
29 27 #define __HAVE_ARCH_MEMSET
30   -extern void *__builtin_memset(void *,int,__kernel_size_t);
31   -
32   -static inline void *__constant_memset(void *s, int c, __kernel_size_t count)
33   -{
34   - extern __kernel_size_t __bzero(void *, __kernel_size_t);
35   -
36   - if (!c) {
37   - __bzero(s, count);
38   - return s;
39   - } else
40   - return __memset(s, c, count);
41   -}
42   -
43   -#undef memset
44   -#define memset(s, c, count) \
45   -((__builtin_constant_p(count) && (count) <= 32) ? \
46   - __builtin_memset((s), (c), (count)) : \
47   - (__builtin_constant_p(c) ? \
48   - __constant_memset((s), (c), (count)) : \
49   - __memset((s), (c), (count))))
  28 +#define memset(s, c, count) __builtin_memset(s, c, count)
50 29  
51 30 #define __HAVE_ARCH_MEMSCAN
52 31  
arch/sparc/lib/bzero.S
... ... @@ -6,10 +6,6 @@
6 6  
7 7 .text
8 8  
9   - .globl __memset
10   - .type __memset, #function
11   -__memset: /* %o0=buf, %o1=pat, %o2=len */
12   -
13 9 .globl memset
14 10 .type memset, #function
15 11 memset: /* %o0=buf, %o1=pat, %o2=len */
... ... @@ -83,7 +79,6 @@
83 79 retl
84 80 mov %o3, %o0
85 81 .size __bzero, .-__bzero
86   - .size __memset, .-__memset
87 82 .size memset, .-memset
88 83  
89 84 #define EX_ST(x,y) \
arch/sparc/lib/checksum_32.S
... ... @@ -560,7 +560,7 @@
560 560 mov %i0, %o1
561 561 mov %i1, %o0
562 562 5:
563   - call __memcpy
  563 + call memcpy
564 564 mov %i2, %o2
565 565 tst %o0
566 566 bne,a 2f
arch/sparc/lib/ksyms.c
... ... @@ -30,7 +30,6 @@
30 30 EXPORT_SYMBOL(memcmp);
31 31 EXPORT_SYMBOL(memcpy);
32 32 EXPORT_SYMBOL(memset);
33   -EXPORT_SYMBOL(__memset);
34 33 EXPORT_SYMBOL(memmove);
35 34 EXPORT_SYMBOL(__bzero);
36 35  
... ... @@ -81,7 +80,6 @@
81 80  
82 81 /* Special internal versions of library functions. */
83 82 EXPORT_SYMBOL(__copy_1page);
84   -EXPORT_SYMBOL(__memcpy);
85 83 EXPORT_SYMBOL(__memmove);
86 84 EXPORT_SYMBOL(bzero_1page);
87 85  
arch/sparc/lib/memcpy.S
... ... @@ -543,9 +543,6 @@
543 543 b 3f
544 544 add %o0, 2, %o0
545 545  
546   -#ifdef __KERNEL__
547   -FUNC(__memcpy)
548   -#endif
549 546 FUNC(memcpy) /* %o0=dst %o1=src %o2=len */
550 547  
551 548 sub %o0, %o1, %o4
arch/sparc/lib/memset.S
... ... @@ -60,11 +60,10 @@
60 60 .globl __bzero_begin
61 61 __bzero_begin:
62 62  
63   - .globl __bzero, __memset,
  63 + .globl __bzero
64 64 .globl memset
65 65 .globl __memset_start, __memset_end
66 66 __memset_start:
67   -__memset:
68 67 memset:
69 68 and %o1, 0xff, %g3
70 69 sll %g3, 8, %g2