summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorNils Wallménius <nils@rockbox.org>2008-11-20 20:20:43 +0000
committerNils Wallménius <nils@rockbox.org>2008-11-20 20:20:43 +0000
commit1284c127f8e1f2ab693d523a009b7b2e553024a5 (patch)
treed3f8ed90717b8e112ce4f7196174e950eb2c2344 /firmware
parent7bdf9a339245058e0b394a3d3088698092c27f6f (diff)
downloadrockbox-1284c127f8e1f2ab693d523a009b7b2e553024a5.tar.gz
rockbox-1284c127f8e1f2ab693d523a009b7b2e553024a5.zip
Introduce likely() and unlikely() macros, use to give gcc hints about which branch is likely to be taken in a conditional, use them in the midi player for a small speedup, use instead of similar EXPECT macros in tremor and use in mpegplayer
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19162 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/export/system.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/firmware/export/system.h b/firmware/export/system.h
index 71422e17d6..cce7df6884 100644
--- a/firmware/export/system.h
+++ b/firmware/export/system.h
@@ -168,6 +168,15 @@ int get_cpu_boost_counter(void);
168#define TYPE_FROM_MEMBER(type, memberptr, membername) \ 168#define TYPE_FROM_MEMBER(type, memberptr, membername) \
169 ((type *)((intptr_t)(memberptr) - OFFSETOF(type, membername))) 169 ((type *)((intptr_t)(memberptr) - OFFSETOF(type, membername)))
170 170
171/* Use to give gcc hints on which branch is most likely taken */
172#if defined(__GNUC__) && __GNUC__ >= 3
173#define likely(x) __builtin_expect(!!(x), 1)
174#define unlikely(x) __builtin_expect(!!(x), 0)
175#else
176#define likely(x) (x)
177#define unlikely(x) (x)
178#endif
179
171/* returns index of first set bit + 1 or 0 if no bits are set */ 180/* returns index of first set bit + 1 or 0 if no bits are set */
172int find_first_set_bit(uint32_t val); 181int find_first_set_bit(uint32_t val);
173 182