------- Comment #3 from hjl dot tools at gmail dot com 2010-09-11 13:49 ------- (In reply to comment #2) > GCC snapshot has regressed compared to gcc-4.5: > > #include <assert.h> > #include <stdint.h> > > #define LIKELY(x) __builtin_expect(!!(x), 1) > #define UNLIKELY(x) __builtin_expect(!!(x), 0) > > register uint32_t *Iptr __asm__("rbp"); > > typedef void (*inst_t)(uint64_t types, uint64_t a, uint64_t b); > > __attribute__ ((noinline)) void dec_helper(uint64_t types, uint64_t a, > uint64_t > b) { > assert("FIXME"==""); > } > > void dec(uint64_t types, uint64_t a, uint64_t b) { > if (LIKELY((types & 0xFF) == 1)) { > uint32_t next = Iptr[1]; > --a; > ++Iptr; > ((inst_t) (uint64_t) next)(types, a, b); > } else dec_helper(types, a, b); > }
This is caused by revision 160124: http://gcc.gnu.org/ml/gcc-cvs/2010-06/msg00036.html -- hjl dot tools at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44281