#define _label _label_(__LINE__)
#define _packed \
- __attribute__((packed))
+ __attribute__((__packed__))
+#define _finline \
+ inline __attribute__((__always_inline__))
-//#define _finline __attribute__((force_inline))
-#define _finline inline
+#define _assume(e) \
+ _assert(e)
+
+#define _nodefault \
+ default: \
+ _assume(false); \
+ throw;
+
+#define _likely(expr) \
+ __builtin_expect(expr, 1)
+
+#define _unlikely(expr) \
+ __builtin_expect(expr, 0)