X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=arch%2Farch-ia64.h;h=a8bb23a3bca6229d8fb2ca7d3d703e1c578d3c97;hp=9c8b406c1bc3e29bd495f0c5cab699e4e583203a;hb=666bf1234912c3790ff1e6204596891c6ef7180c;hpb=697a606cc0af1c39ac18998c344a522199accb36 diff --git a/arch/arch-ia64.h b/arch/arch-ia64.h index 9c8b406c..a8bb23a3 100644 --- a/arch/arch-ia64.h +++ b/arch/arch-ia64.h @@ -20,5 +20,19 @@ #define nop asm volatile ("hint @pause" ::: "memory"); #define read_barrier() asm volatile ("mf" ::: "memory") +#define write_barrier() asm volatile ("mf" ::: "memory") + +#define ia64_popcnt(x) \ +({ \ + unsigned long ia64_intri_res; \ + asm ("popcnt %0=%1" : "=r" (ia64_intri_res) : "r" (x)); \ + ia64_intri_res; \ +}) + +static inline unsigned long arch_ffz(unsigned long bitmask) +{ + return ia64_popcnt(bitmask & (~bitmask - 1)); +} +#define ARCH_HAVE_FFZ #endif