diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2011-01-30 00:58:45 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2011-01-30 00:58:45 +0000 |
commit | 18770dac2e560c88daa3ca9944917be561c3548f (patch) | |
tree | 5adf8aef7cb7999a6e07ddefcbb9e1d9bf18a15c | |
parent | c0c769c5a86c56c2ab2c9e88515a64da98575182 (diff) | |
download | rockbox-18770dac2e560c88daa3ca9944917be561c3548f.tar.gz rockbox-18770dac2e560c88daa3ca9944917be561c3548f.zip |
Use __builtin_constant_p() to select the best byteswapping method: constant or target optimized. Same macro can then be used for constant values and inits as well as non-constant.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29171 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/codecs/aiff_enc.c | 13 | ||||
-rw-r--r-- | apps/codecs/libffmpegFLAC/shndec.c | 2 | ||||
-rw-r--r-- | apps/codecs/wav_enc.c | 6 | ||||
-rw-r--r-- | apps/codecs/wavpack_enc.c | 6 | ||||
-rw-r--r-- | firmware/export/system.h | 129 | ||||
-rw-r--r-- | firmware/target/arm/system-arm.h | 24 | ||||
-rw-r--r-- | firmware/target/coldfire/system-target.h | 8 | ||||
-rw-r--r-- | firmware/target/sh/system-target.h | 8 |
8 files changed, 110 insertions, 86 deletions
diff --git a/apps/codecs/aiff_enc.c b/apps/codecs/aiff_enc.c index cfbc95196f..2d55dff755 100644 --- a/apps/codecs/aiff_enc.c +++ b/apps/codecs/aiff_enc.c | |||
@@ -56,15 +56,15 @@ struct aiff_header aiff_header = | |||
56 | 0, /* form_size (*) */ | 56 | 0, /* form_size (*) */ |
57 | { 'A', 'I', 'F', 'F' }, /* aiff_id */ | 57 | { 'A', 'I', 'F', 'F' }, /* aiff_id */ |
58 | { 'C', 'O', 'M', 'M' }, /* comm_id */ | 58 | { 'C', 'O', 'M', 'M' }, /* comm_id */ |
59 | H_TO_BE32(18), /* comm_size */ | 59 | htobe32(18), /* comm_size */ |
60 | 0, /* num_channels (*) */ | 60 | 0, /* num_channels (*) */ |
61 | 0, /* num_sample_frames (*) */ | 61 | 0, /* num_sample_frames (*) */ |
62 | H_TO_BE16(PCM_DEPTH_BITS), /* sample_size */ | 62 | htobe16(PCM_DEPTH_BITS), /* sample_size */ |
63 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* sample_rate (*) */ | 63 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* sample_rate (*) */ |
64 | { 'S', 'S', 'N', 'D' }, /* ssnd_id */ | 64 | { 'S', 'S', 'N', 'D' }, /* ssnd_id */ |
65 | 0, /* ssnd_size (*) */ | 65 | 0, /* ssnd_size (*) */ |
66 | H_TO_BE32(0), /* offset */ | 66 | htobe32(0), /* offset */ |
67 | H_TO_BE32(0), /* block_size */ | 67 | htobe32(0), /* block_size */ |
68 | }; | 68 | }; |
69 | 69 | ||
70 | /* (*) updated when finalizing file */ | 70 | /* (*) updated when finalizing file */ |
@@ -96,7 +96,10 @@ STATICIRAM void uint32_h_to_ieee754_extended_be(uint8_t f[10], uint32_t l) | |||
96 | f[1] = (uint8_t)exp; | 96 | f[1] = (uint8_t)exp; |
97 | /* mantissa is value left justified with most significant non-zero | 97 | /* mantissa is value left justified with most significant non-zero |
98 | bit stored in bit 63 - bits 0-63 */ | 98 | bit stored in bit 63 - bits 0-63 */ |
99 | *(uint32_t *)&f[2] = htobe32(l); | 99 | f[2] = (uint8_t)(l >> 24); |
100 | f[3] = (uint8_t)(l >> 16); | ||
101 | f[4] = (uint8_t)(l >> 8); | ||
102 | f[5] = (uint8_t)(l >> 0); | ||
100 | } /* uint32_h_to_ieee754_extended_be */ | 103 | } /* uint32_h_to_ieee754_extended_be */ |
101 | 104 | ||
102 | /* called version often - inline */ | 105 | /* called version often - inline */ |
diff --git a/apps/codecs/libffmpegFLAC/shndec.c b/apps/codecs/libffmpegFLAC/shndec.c index 78914f6252..40e7211b87 100644 --- a/apps/codecs/libffmpegFLAC/shndec.c +++ b/apps/codecs/libffmpegFLAC/shndec.c | |||
@@ -60,7 +60,7 @@ | |||
60 | #define get_le32(gb) bswap_32(get_bits_long(gb, 32)) | 60 | #define get_le32(gb) bswap_32(get_bits_long(gb, 32)) |
61 | 61 | ||
62 | /* converts fourcc string to int */ | 62 | /* converts fourcc string to int */ |
63 | static int ff_get_fourcc(const char *s){ | 63 | static unsigned int ff_get_fourcc(const char *s){ |
64 | //assert( strlen(s)==4 ); | 64 | //assert( strlen(s)==4 ); |
65 | return (s[0]) + (s[1]<<8) + (s[2]<<16) + (s[3]<<24); | 65 | return (s[0]) + (s[1]<<8) + (s[2]<<16) + (s[3]<<24); |
66 | } | 66 | } |
diff --git a/apps/codecs/wav_enc.c b/apps/codecs/wav_enc.c index b11c3a2e99..193181d825 100644 --- a/apps/codecs/wav_enc.c +++ b/apps/codecs/wav_enc.c | |||
@@ -71,14 +71,14 @@ static const struct riff_header riff_header = | |||
71 | /* format header */ | 71 | /* format header */ |
72 | { 'W', 'A', 'V', 'E' }, /* format */ | 72 | { 'W', 'A', 'V', 'E' }, /* format */ |
73 | { 'f', 'm', 't', ' ' }, /* format_id */ | 73 | { 'f', 'm', 't', ' ' }, /* format_id */ |
74 | H_TO_LE32(16), /* format_size */ | 74 | htole32(16), /* format_size */ |
75 | /* format data */ | 75 | /* format data */ |
76 | H_TO_LE16(1), /* audio_format */ | 76 | htole16(1), /* audio_format */ |
77 | 0, /* num_channels (*) */ | 77 | 0, /* num_channels (*) */ |
78 | 0, /* sample_rate (*) */ | 78 | 0, /* sample_rate (*) */ |
79 | 0, /* byte_rate (*) */ | 79 | 0, /* byte_rate (*) */ |
80 | 0, /* block_align (*) */ | 80 | 0, /* block_align (*) */ |
81 | H_TO_LE16(PCM_DEPTH_BITS), /* bits_per_sample */ | 81 | htole16(PCM_DEPTH_BITS), /* bits_per_sample */ |
82 | /* data header */ | 82 | /* data header */ |
83 | { 'd', 'a', 't', 'a' }, /* data_id */ | 83 | { 'd', 'a', 't', 'a' }, /* data_id */ |
84 | 0 /* data_size (*) */ | 84 | 0 /* data_size (*) */ |
diff --git a/apps/codecs/wavpack_enc.c b/apps/codecs/wavpack_enc.c index 652a320546..66263cf1a1 100644 --- a/apps/codecs/wavpack_enc.c +++ b/apps/codecs/wavpack_enc.c | |||
@@ -85,14 +85,14 @@ static const struct riff_header riff_header = | |||
85 | /* format header */ | 85 | /* format header */ |
86 | { 'W', 'A', 'V', 'E' }, /* format */ | 86 | { 'W', 'A', 'V', 'E' }, /* format */ |
87 | { 'f', 'm', 't', ' ' }, /* format_id */ | 87 | { 'f', 'm', 't', ' ' }, /* format_id */ |
88 | H_TO_LE32(16), /* format_size */ | 88 | htole32(16), /* format_size */ |
89 | /* format data */ | 89 | /* format data */ |
90 | H_TO_LE16(1), /* audio_format */ | 90 | htole16(1), /* audio_format */ |
91 | 0, /* num_channels (*) */ | 91 | 0, /* num_channels (*) */ |
92 | 0, /* sample_rate (*) */ | 92 | 0, /* sample_rate (*) */ |
93 | 0, /* byte_rate (*) */ | 93 | 0, /* byte_rate (*) */ |
94 | 0, /* block_align (*) */ | 94 | 0, /* block_align (*) */ |
95 | H_TO_LE16(PCM_DEPTH_BITS), /* bits_per_sample */ | 95 | htole16(PCM_DEPTH_BITS), /* bits_per_sample */ |
96 | /* data header */ | 96 | /* data header */ |
97 | { 'd', 'a', 't', 'a' }, /* data_id */ | 97 | { 'd', 'a', 't', 'a' }, /* data_id */ |
98 | 0 /* data_size (*) */ | 98 | 0 /* data_size (*) */ |
diff --git a/firmware/export/system.h b/firmware/export/system.h index 4a5dcf0ea3..b246d154a4 100644 --- a/firmware/export/system.h +++ b/firmware/export/system.h | |||
@@ -137,61 +137,6 @@ int get_cpu_boost_counter(void); | |||
137 | #undef htobe32 | 137 | #undef htobe32 |
138 | #endif | 138 | #endif |
139 | 139 | ||
140 | /* live endianness conversion */ | ||
141 | #ifdef ROCKBOX_LITTLE_ENDIAN | ||
142 | #define letoh16(x) (x) | ||
143 | #define letoh32(x) (x) | ||
144 | #define htole16(x) (x) | ||
145 | #define htole32(x) (x) | ||
146 | #define betoh16(x) swap16(x) | ||
147 | #define betoh32(x) swap32(x) | ||
148 | #define htobe16(x) swap16(x) | ||
149 | #define htobe32(x) swap32(x) | ||
150 | #define swap_odd_even_be32(x) (x) | ||
151 | #define swap_odd_even_le32(x) swap_odd_even32(x) | ||
152 | #else | ||
153 | #define letoh16(x) swap16(x) | ||
154 | #define letoh32(x) swap32(x) | ||
155 | #define htole16(x) swap16(x) | ||
156 | #define htole32(x) swap32(x) | ||
157 | #define betoh16(x) (x) | ||
158 | #define betoh32(x) (x) | ||
159 | #define htobe16(x) (x) | ||
160 | #define htobe32(x) (x) | ||
161 | #define swap_odd_even_be32(x) swap_odd_even32(x) | ||
162 | #define swap_odd_even_le32(x) (x) | ||
163 | #endif | ||
164 | |||
165 | |||
166 | /* static endianness conversion */ | ||
167 | #define SWAP_16(x) ((typeof(x))(unsigned short)(((unsigned short)(x) >> 8) | \ | ||
168 | ((unsigned short)(x) << 8))) | ||
169 | |||
170 | #define SWAP_32(x) ((typeof(x))(unsigned long)( ((unsigned long)(x) >> 24) | \ | ||
171 | (((unsigned long)(x) & 0xff0000ul) >> 8) | \ | ||
172 | (((unsigned long)(x) & 0xff00ul) << 8) | \ | ||
173 | ((unsigned long)(x) << 24))) | ||
174 | |||
175 | #ifdef ROCKBOX_LITTLE_ENDIAN | ||
176 | #define LE_TO_H16(x) (x) | ||
177 | #define LE_TO_H32(x) (x) | ||
178 | #define H_TO_LE16(x) (x) | ||
179 | #define H_TO_LE32(x) (x) | ||
180 | #define BE_TO_H16(x) SWAP_16(x) | ||
181 | #define BE_TO_H32(x) SWAP_32(x) | ||
182 | #define H_TO_BE16(x) SWAP_16(x) | ||
183 | #define H_TO_BE32(x) SWAP_32(x) | ||
184 | #else | ||
185 | #define LE_TO_H16(x) SWAP_16(x) | ||
186 | #define LE_TO_H32(x) SWAP_32(x) | ||
187 | #define H_TO_LE16(x) SWAP_16(x) | ||
188 | #define H_TO_LE32(x) SWAP_32(x) | ||
189 | #define BE_TO_H16(x) (x) | ||
190 | #define BE_TO_H32(x) (x) | ||
191 | #define H_TO_BE16(x) (x) | ||
192 | #define H_TO_BE32(x) (x) | ||
193 | #endif | ||
194 | |||
195 | /* Get the byte offset of a type's member */ | 140 | /* Get the byte offset of a type's member */ |
196 | #define OFFSETOF(type, membername) ((off_t)&((type *)0)->membername) | 141 | #define OFFSETOF(type, membername) ((off_t)&((type *)0)->membername) |
197 | 142 | ||
@@ -237,7 +182,7 @@ enum { | |||
237 | #endif | 182 | #endif |
238 | 183 | ||
239 | #ifdef NEED_GENERIC_BYTESWAPS | 184 | #ifdef NEED_GENERIC_BYTESWAPS |
240 | static inline uint16_t swap16(uint16_t value) | 185 | static inline uint16_t swap16_hw(uint16_t value) |
241 | /* | 186 | /* |
242 | result[15..8] = value[ 7..0]; | 187 | result[15..8] = value[ 7..0]; |
243 | result[ 7..0] = value[15..8]; | 188 | result[ 7..0] = value[15..8]; |
@@ -246,7 +191,7 @@ static inline uint16_t swap16(uint16_t value) | |||
246 | return (value >> 8) | (value << 8); | 191 | return (value >> 8) | (value << 8); |
247 | } | 192 | } |
248 | 193 | ||
249 | static inline uint32_t swap32(uint32_t value) | 194 | static inline uint32_t swap32_hw(uint32_t value) |
250 | /* | 195 | /* |
251 | result[31..24] = value[ 7.. 0]; | 196 | result[31..24] = value[ 7.. 0]; |
252 | result[23..16] = value[15.. 8]; | 197 | result[23..16] = value[15.. 8]; |
@@ -254,12 +199,12 @@ static inline uint32_t swap32(uint32_t value) | |||
254 | result[ 7.. 0] = value[31..24]; | 199 | result[ 7.. 0] = value[31..24]; |
255 | */ | 200 | */ |
256 | { | 201 | { |
257 | uint32_t hi = swap16(value >> 16); | 202 | uint32_t hi = swap16_hw(value >> 16); |
258 | uint32_t lo = swap16(value & 0xffff); | 203 | uint32_t lo = swap16_hw(value & 0xffff); |
259 | return (lo << 16) | hi; | 204 | return (lo << 16) | hi; |
260 | } | 205 | } |
261 | 206 | ||
262 | static inline uint32_t swap_odd_even32(uint32_t value) | 207 | static inline uint32_t swap_odd_even32_hw(uint32_t value) |
263 | { | 208 | { |
264 | /* | 209 | /* |
265 | result[31..24],[15.. 8] = value[23..16],[ 7.. 0] | 210 | result[31..24],[15.. 8] = value[23..16],[ 7.. 0] |
@@ -269,8 +214,72 @@ static inline uint32_t swap_odd_even32(uint32_t value) | |||
269 | return (t >> 8) | ((t ^ value) << 8); | 214 | return (t >> 8) | ((t ^ value) << 8); |
270 | } | 215 | } |
271 | 216 | ||
217 | static inline uint32_t swaw32_hw(uint32_t value) | ||
218 | { | ||
219 | /* | ||
220 | result[31..16] = value[15.. 0]; | ||
221 | result[15.. 0] = value[31..16]; | ||
222 | */ | ||
223 | return (value >> 16) | (value << 16); | ||
224 | } | ||
225 | |||
272 | #endif /* NEED_GENERIC_BYTESWAPS */ | 226 | #endif /* NEED_GENERIC_BYTESWAPS */ |
273 | 227 | ||
228 | /* static endianness conversion */ | ||
229 | #define SWAP16_CONST(x) \ | ||
230 | ((typeof(x))( ((uint16_t)(x) >> 8) | ((uint16_t)(x) << 8) )) | ||
231 | |||
232 | #define SWAP32_CONST(x) \ | ||
233 | ((typeof(x))( ((uint32_t)(x) >> 24) | \ | ||
234 | (((uint32_t)(x) & 0xff0000) >> 8) | \ | ||
235 | (((uint32_t)(x) & 0xff00) << 8) | \ | ||
236 | ((uint32_t)(x) << 24) )) | ||
237 | |||
238 | #define SWAP_ODD_EVEN32_CONST(x) \ | ||
239 | ((typeof(x))( ((uint32_t)SWAP16_CONST((uint32_t)(x) >> 16) << 16) | \ | ||
240 | SWAP16_CONST((uint32_t)(x))) ) | ||
241 | |||
242 | #define SWAW32_CONST(x) \ | ||
243 | ((typeof(x))( ((uint32_t)(x) << 16) | ((uint32_t)(x) >> 16) )) | ||
244 | |||
245 | /* Select best method based upon whether x is a constant expression */ | ||
246 | #define swap16(x) \ | ||
247 | ( __builtin_constant_p(x) ? SWAP16_CONST(x) : (typeof(x))swap16_hw(x) ) | ||
248 | |||
249 | #define swap32(x) \ | ||
250 | ( __builtin_constant_p(x) ? SWAP32_CONST(x) : (typeof(x))swap32_hw(x) ) | ||
251 | |||
252 | #define swap_odd_even32(x) \ | ||
253 | ( __builtin_constant_p(x) ? SWAP_ODD_EVEN32_CONST(x) : (typeof(x))swap_odd_even32_hw(x) ) | ||
254 | |||
255 | #define swaw32(x) \ | ||
256 | ( __builtin_constant_p(x) ? SWAW32_CONST(x) : (typeof(x))swaw32_hw(x) ) | ||
257 | |||
258 | |||
259 | #ifdef ROCKBOX_LITTLE_ENDIAN | ||
260 | #define letoh16(x) (x) | ||
261 | #define letoh32(x) (x) | ||
262 | #define htole16(x) (x) | ||
263 | #define htole32(x) (x) | ||
264 | #define betoh16(x) swap16(x) | ||
265 | #define betoh32(x) swap32(x) | ||
266 | #define htobe16(x) swap16(x) | ||
267 | #define htobe32(x) swap32(x) | ||
268 | #define swap_odd_even_be32(x) (x) | ||
269 | #define swap_odd_even_le32(x) swap_odd_even32(x) | ||
270 | #else | ||
271 | #define letoh16(x) swap16(x) | ||
272 | #define letoh32(x) swap32(x) | ||
273 | #define htole16(x) swap16(x) | ||
274 | #define htole32(x) swap32(x) | ||
275 | #define betoh16(x) (x) | ||
276 | #define betoh32(x) (x) | ||
277 | #define htobe16(x) (x) | ||
278 | #define htobe32(x) (x) | ||
279 | #define swap_odd_even_be32(x) swap_odd_even32(x) | ||
280 | #define swap_odd_even_le32(x) (x) | ||
281 | #endif | ||
282 | |||
274 | #ifndef BIT_N | 283 | #ifndef BIT_N |
275 | #define BIT_N(n) (1U << (n)) | 284 | #define BIT_N(n) (1U << (n)) |
276 | #endif | 285 | #endif |
diff --git a/firmware/target/arm/system-arm.h b/firmware/target/arm/system-arm.h index 0608f50a02..e77b786866 100644 --- a/firmware/target/arm/system-arm.h +++ b/firmware/target/arm/system-arm.h | |||
@@ -90,7 +90,7 @@ static inline void restore_interrupt(int cpsr) | |||
90 | /* ARM_ARCH version section for architecture*/ | 90 | /* ARM_ARCH version section for architecture*/ |
91 | 91 | ||
92 | #if ARM_ARCH >= 6 | 92 | #if ARM_ARCH >= 6 |
93 | static inline uint16_t swap16(uint16_t value) | 93 | static inline uint16_t swap16_hw(uint16_t value) |
94 | /* | 94 | /* |
95 | result[15..8] = value[ 7..0]; | 95 | result[15..8] = value[ 7..0]; |
96 | result[ 7..0] = value[15..8]; | 96 | result[ 7..0] = value[15..8]; |
@@ -102,7 +102,7 @@ static inline uint16_t swap16(uint16_t value) | |||
102 | return retval; | 102 | return retval; |
103 | } | 103 | } |
104 | 104 | ||
105 | static inline uint32_t swap32(uint32_t value) | 105 | static inline uint32_t swap32_hw(uint32_t value) |
106 | /* | 106 | /* |
107 | result[31..24] = value[ 7.. 0]; | 107 | result[31..24] = value[ 7.. 0]; |
108 | result[23..16] = value[15.. 8]; | 108 | result[23..16] = value[15.. 8]; |
@@ -116,7 +116,7 @@ static inline uint32_t swap32(uint32_t value) | |||
116 | return retval; | 116 | return retval; |
117 | } | 117 | } |
118 | 118 | ||
119 | static inline uint32_t swap_odd_even32(uint32_t value) | 119 | static inline uint32_t swap_odd_even32_hw(uint32_t value) |
120 | { | 120 | { |
121 | /* | 121 | /* |
122 | result[31..24],[15.. 8] = value[23..16],[ 7.. 0] | 122 | result[31..24],[15.. 8] = value[23..16],[ 7.. 0] |
@@ -190,7 +190,7 @@ static inline int disable_interrupt_save(int mask) | |||
190 | 190 | ||
191 | #else /* ARM_ARCH < 6 */ | 191 | #else /* ARM_ARCH < 6 */ |
192 | 192 | ||
193 | static inline uint16_t swap16(uint16_t value) | 193 | static inline uint16_t swap16_hw(uint16_t value) |
194 | /* | 194 | /* |
195 | result[15..8] = value[ 7..0]; | 195 | result[15..8] = value[ 7..0]; |
196 | result[ 7..0] = value[15..8]; | 196 | result[ 7..0] = value[15..8]; |
@@ -199,7 +199,7 @@ static inline uint16_t swap16(uint16_t value) | |||
199 | return (value >> 8) | (value << 8); | 199 | return (value >> 8) | (value << 8); |
200 | } | 200 | } |
201 | 201 | ||
202 | static inline uint32_t swap32(uint32_t value) | 202 | static inline uint32_t swap32_hw(uint32_t value) |
203 | /* | 203 | /* |
204 | result[31..24] = value[ 7.. 0]; | 204 | result[31..24] = value[ 7.. 0]; |
205 | result[23..16] = value[15.. 8]; | 205 | result[23..16] = value[15.. 8]; |
@@ -218,7 +218,7 @@ static inline uint32_t swap32(uint32_t value) | |||
218 | return value; | 218 | return value; |
219 | } | 219 | } |
220 | 220 | ||
221 | static inline uint32_t swap_odd_even32(uint32_t value) | 221 | static inline uint32_t swap_odd_even32_hw(uint32_t value) |
222 | { | 222 | { |
223 | /* | 223 | /* |
224 | result[31..24],[15.. 8] = value[23..16],[ 7.. 0] | 224 | result[31..24],[15.. 8] = value[23..16],[ 7.. 0] |
@@ -272,4 +272,16 @@ static inline int disable_interrupt_save(int mask) | |||
272 | 272 | ||
273 | #endif /* ARM_ARCH */ | 273 | #endif /* ARM_ARCH */ |
274 | 274 | ||
275 | static inline uint32_t swaw32_hw(uint32_t value) | ||
276 | { | ||
277 | /* | ||
278 | result[31..16] = value[15.. 0]; | ||
279 | result[15.. 0] = value[31..16]; | ||
280 | */ | ||
281 | uint32_t retval; | ||
282 | asm volatile ("mov %0, %1, ror #16" : | ||
283 | "=r"(retval) : "r"(value)); | ||
284 | return retval; | ||
285 | } | ||
286 | |||
275 | #endif /* SYSTEM_ARM_H */ | 287 | #endif /* SYSTEM_ARM_H */ |
diff --git a/firmware/target/coldfire/system-target.h b/firmware/target/coldfire/system-target.h index 2de8fd06c2..d1a2a1f115 100644 --- a/firmware/target/coldfire/system-target.h +++ b/firmware/target/coldfire/system-target.h | |||
@@ -132,7 +132,7 @@ static inline void restore_irq(int oldlevel) | |||
132 | asm volatile ("move.w %0, %%sr" : : "d"(oldlevel)); | 132 | asm volatile ("move.w %0, %%sr" : : "d"(oldlevel)); |
133 | } | 133 | } |
134 | 134 | ||
135 | static inline uint16_t swap16(uint16_t value) | 135 | static inline uint16_t swap16_hw(uint16_t value) |
136 | /* | 136 | /* |
137 | result[15..8] = value[ 7..0]; | 137 | result[15..8] = value[ 7..0]; |
138 | result[ 7..0] = value[15..8]; | 138 | result[ 7..0] = value[15..8]; |
@@ -141,7 +141,7 @@ static inline uint16_t swap16(uint16_t value) | |||
141 | return (value >> 8) | (value << 8); | 141 | return (value >> 8) | (value << 8); |
142 | } | 142 | } |
143 | 143 | ||
144 | static inline uint32_t SWAW32(uint32_t value) | 144 | static inline uint32_t swaw32_hw(uint32_t value) |
145 | /* | 145 | /* |
146 | result[31..16] = value[15.. 0]; | 146 | result[31..16] = value[15.. 0]; |
147 | result[15.. 0] = value[31..16]; | 147 | result[15.. 0] = value[31..16]; |
@@ -151,7 +151,7 @@ static inline uint32_t SWAW32(uint32_t value) | |||
151 | return value; | 151 | return value; |
152 | } | 152 | } |
153 | 153 | ||
154 | static inline uint32_t swap32(uint32_t value) | 154 | static inline uint32_t swap32_hw(uint32_t value) |
155 | /* | 155 | /* |
156 | result[31..24] = value[ 7.. 0]; | 156 | result[31..24] = value[ 7.. 0]; |
157 | result[23..16] = value[15.. 8]; | 157 | result[23..16] = value[15.. 8]; |
@@ -174,7 +174,7 @@ static inline uint32_t swap32(uint32_t value) | |||
174 | return value; | 174 | return value; |
175 | } | 175 | } |
176 | 176 | ||
177 | static inline uint32_t swap_odd_even32(uint32_t value) | 177 | static inline uint32_t swap_odd_even32_hw(uint32_t value) |
178 | { | 178 | { |
179 | /* | 179 | /* |
180 | result[31..24],[15.. 8] = value[23..16],[ 7.. 0] | 180 | result[31..24],[15.. 8] = value[23..16],[ 7.. 0] |
diff --git a/firmware/target/sh/system-target.h b/firmware/target/sh/system-target.h index a84ce07af9..1693a132a6 100644 --- a/firmware/target/sh/system-target.h +++ b/firmware/target/sh/system-target.h | |||
@@ -77,7 +77,7 @@ static inline void enable_irq(void) | |||
77 | #define restore_irq(i) \ | 77 | #define restore_irq(i) \ |
78 | ((void)set_irq_level(i)) | 78 | ((void)set_irq_level(i)) |
79 | 79 | ||
80 | static inline uint16_t swap16(uint16_t value) | 80 | static inline uint16_t swap16_hw(uint16_t value) |
81 | /* | 81 | /* |
82 | result[15..8] = value[ 7..0]; | 82 | result[15..8] = value[ 7..0]; |
83 | result[ 7..0] = value[15..8]; | 83 | result[ 7..0] = value[15..8]; |
@@ -88,7 +88,7 @@ static inline uint16_t swap16(uint16_t value) | |||
88 | return result; | 88 | return result; |
89 | } | 89 | } |
90 | 90 | ||
91 | static inline uint32_t SWAW32(uint32_t value) | 91 | static inline uint32_t swaw32_hw(uint32_t value) |
92 | /* | 92 | /* |
93 | result[31..16] = value[15.. 0]; | 93 | result[31..16] = value[15.. 0]; |
94 | result[15.. 0] = value[31..16]; | 94 | result[15.. 0] = value[31..16]; |
@@ -99,7 +99,7 @@ static inline uint32_t SWAW32(uint32_t value) | |||
99 | return result; | 99 | return result; |
100 | } | 100 | } |
101 | 101 | ||
102 | static inline uint32_t swap32(uint32_t value) | 102 | static inline uint32_t swap32_hw(uint32_t value) |
103 | /* | 103 | /* |
104 | result[31..24] = value[ 7.. 0]; | 104 | result[31..24] = value[ 7.. 0]; |
105 | result[23..16] = value[15.. 8]; | 105 | result[23..16] = value[15.. 8]; |
@@ -113,7 +113,7 @@ static inline uint32_t swap32(uint32_t value) | |||
113 | return value; | 113 | return value; |
114 | } | 114 | } |
115 | 115 | ||
116 | static inline uint32_t swap_odd_even32(uint32_t value) | 116 | static inline uint32_t swap_odd_even32_hw(uint32_t value) |
117 | { | 117 | { |
118 | /* | 118 | /* |
119 | result[31..24],[15.. 8] = value[23..16],[ 7.. 0] | 119 | result[31..24],[15.. 8] = value[23..16],[ 7.. 0] |