adjust exec_param to keep track of sp_el0, fix incorrect use sys regs
[lunaix-os.git] / lunaix-os / includes / lunaix / compiler.h
index 178c0fedd598a91544d8cbaac81133942ba0430b..f644112c4300cc594e9e448d1a6a8da6971e36d1 100644 (file)
 
 #define msbiti                  (sizeof(int) * 8 - 1)
 #define clz(bits)               __builtin_clz(bits)
+#define ctz(bits)               __builtin_ctz(bits)
 
 #ifdef CONFIG_ARCH_BITS_64
 #define msbitl                  (sizeof(long) * 8 - 1)
 #define clzl(bits)              __builtin_clzl(bits)
+#define ctzl(bits)              __builtin_ctzl(bits)
 #else
 #define msbitl                  msbiti
 #define clzl(bits)              clz(bits)
+#define ctzl(bits)              ctz(bits)
 #endif
 
 #define sadd_of(a, b, of)       __builtin_sadd_overflow(a, b, of)