X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/28c176b668c841a3b7fb093faccf0efa39257603..34f6af4f61e0eec9c96113e07f140b609b4113c8:/lunaix-os/includes/lunaix/compiler.h?ds=sidebyside diff --git a/lunaix-os/includes/lunaix/compiler.h b/lunaix-os/includes/lunaix/compiler.h index 28ae36e..178c0fe 100644 --- a/lunaix-os/includes/lunaix/compiler.h +++ b/lunaix-os/includes/lunaix/compiler.h @@ -14,11 +14,23 @@ #define unreachable __builtin_unreachable() #define no_inline __attribute__((noinline)) -#define defualt weak +#define _default weak +#define msbiti (sizeof(int) * 8 - 1) #define clz(bits) __builtin_clz(bits) -#define sadd_overflow(a, b, of) __builtin_sadd_overflow(a, b, of) -#define umul_overflow(a, b, of) __builtin_umul_overflow(a, b, of) + +#ifdef CONFIG_ARCH_BITS_64 +#define msbitl (sizeof(long) * 8 - 1) +#define clzl(bits) __builtin_clzl(bits) +#else +#define msbitl msbiti +#define clzl(bits) clz(bits) +#endif + +#define sadd_of(a, b, of) __builtin_sadd_overflow(a, b, of) +#define saddl_of(a, b, of) __builtin_saddl_overflow(a, b, of) +#define umul_of(a, b, of) __builtin_umul_overflow(a, b, of) +#define umull_of(a, b, of) __builtin_umull_overflow(a, b, of) #define offsetof(f, m) __builtin_offsetof(f, m) #define prefetch_rd(ptr, ll) __builtin_prefetch((ptr), 0, ll)