Commit 4d14a459857bd151ecbd14bcd37b4628da00792b
1 parent
fb34035e7b
Exists in
master
and in
7 other branches
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
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
arch/sparc/lib/memset.S