projects
/
platform
/
upstream
/
libaec.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
b9f9312
)
Increase code sharing between CLZ implementations.
author
Mathis Rosenhauer
<rosenhauer@dkrz.de>
Wed, 29 Oct 2014 10:35:56 +0000
(11:35 +0100)
committer
Mathis Rosenhauer
<rosenhauer@dkrz.de>
Wed, 29 Oct 2014 10:35:56 +0000
(11:35 +0100)
src/decode.c
patch
|
blob
|
history
diff --git
a/src/decode.c
b/src/decode.c
index
ead9464
..
1637a65
100644
(file)
--- a/
src/decode.c
+++ b/
src/decode.c
@@
-271,10
+271,10
@@
static inline uint32_t direct_get_fs(struct aec_stream *strm)
*/
uint32_t fs = 0;
*/
uint32_t fs = 0;
-#if HAVE_
DECL___BUILTIN_CLZLL
-
int lz
;
-#el
if HAVE_BSR64
-
unsigned long lz
;
+#if HAVE_
BSR64
+
unsigned long i
;
+#el
se
+
int i
;
#endif
struct internal_state *state = strm->state;
#endif
struct internal_state *state = strm->state;
@@
-290,20
+290,16
@@
static inline uint32_t direct_get_fs(struct aec_stream *strm)
}
#if HAVE_DECL___BUILTIN_CLZLL
}
#if HAVE_DECL___BUILTIN_CLZLL
- lz = __builtin_clzll(state->acc);
- fs += lz + state->bitp - 64;
- state->bitp = 63 - lz;
+ i = 63 - __builtin_clzll(state->acc);
#elif HAVE_BSR64
#elif HAVE_BSR64
- _BitScanReverse64(&lz, state->acc);
- fs += state->bitp - 1 - lz;
- state->bitp = lz;
+ _BitScanReverse64(&i, state->acc);
#else
#else
- state->bitp--;
- while ((state->acc & (UINT64_C(1) << state->bitp)) == 0) {
- state->bitp--;
- fs++;
- }
+ i = state->bitp - 1;
+ while ((state->acc & (UINT64_C(1) << i)) == 0)
+ i--;
#endif
#endif
+ fs += state->bitp - i - 1;
+ state->bitp = i;
return fs;
}
return fs;
}