Adds instructions for using the profiler
[akaros.git] / kern / arch / x86 / bitops.h
index f6651d9..2c6badc 100644 (file)
@@ -396,7 +396,6 @@ static inline int ffs(int x)
 {
        int r;
 
-#ifdef CONFIG_X86_64
        /*
         * AMD64 says BSFL won't clobber the dest reg if x==0; Intel64 says the
         * dest reg is undefined if x==0, but their CPU architect says its
@@ -409,16 +408,6 @@ static inline int ffs(int x)
        asm("bsfl %1,%0"
            : "=r" (r)
            : "rm" (x), "0" (-1));
-#elif defined(CONFIG_X86_CMOV)
-       asm("bsfl %1,%0\n\t"
-           "cmovzl %2,%0"
-           : "=&r" (r) : "rm" (x), "r" (-1));
-#else
-       asm("bsfl %1,%0\n\t"
-           "jnz 1f\n\t"
-           "movl $-1,%0\n"
-           "1:" : "=r" (r) : "rm" (x));
-#endif
        return r + 1;
 }
 
@@ -437,7 +426,6 @@ static inline int fls(int x)
 {
        int r;
 
-#ifdef CONFIG_X86_64
        /*
         * AMD64 says BSRL won't clobber the dest reg if x==0; Intel64 says the
         * dest reg is undefined if x==0, but their CPU architect says its
@@ -450,16 +438,6 @@ static inline int fls(int x)
        asm("bsrl %1,%0"
            : "=r" (r)
            : "rm" (x), "0" (-1));
-#elif defined(CONFIG_X86_CMOV)
-       asm("bsrl %1,%0\n\t"
-           "cmovzl %2,%0"
-           : "=&r" (r) : "rm" (x), "rm" (-1));
-#else
-       asm("bsrl %1,%0\n\t"
-           "jnz 1f\n\t"
-           "movl $-1,%0\n"
-           "1:" : "=r" (r) : "rm" (x));
-#endif
        return r + 1;
 }
 
@@ -474,7 +452,6 @@ static inline int fls(int x)
  * set bit if value is nonzero. The last (most significant) bit is
  * at position 64.
  */
-#ifdef CONFIG_X86_64
 static __always_inline int fls64(uint64_t x)
 {
        int bitpos = -1;
@@ -488,7 +465,5 @@ static __always_inline int fls64(uint64_t x)
            : "rm" (x));
        return bitpos + 1;
 }
-#else
-#error "Need the generic version of fls64"
-#endif
+
 #endif /* _ASM_X86_BITOPS_H */