From 038817a7087749db6b4797a3ab97a692252ca8f2 Mon Sep 17 00:00:00 2001 From: truelight Date: Sun, 4 Nov 2007 18:28:52 +0000 Subject: (svn r11378) -Codechange: optimize KillFirstBit2x64 (skidd13) --- src/macros.h | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/macros.h b/src/macros.h index ea7fc32db..e4b7bf203 100644 --- a/src/macros.h +++ b/src/macros.h @@ -416,21 +416,14 @@ Faster ( or at least cleaner ) implementation below? * Clear the first bit in an integer. * * This function returns a value where the first bit (from LSB) - * is cleared. This function checks, similar to FindFirstBit2x64, - * the bits at 0x3F3F. + * is cleared. This function checks only the bits of 0x3F3F! * * @param value The value to clear the first bit * @return The new value with the first bit cleared - * @see KILL_FIRST_BIT - * @see FindFirstBit2x64 */ static inline int KillFirstBit2x64(int value) { - if (GB(value, 0, 8) == 0) { - return KILL_FIRST_BIT(GB(value, 8, 6)) << 8; - } else { - return value & (KILL_FIRST_BIT(GB(value, 0, 6)) | 0x3F00); - } + return value &= (int)(value - 1) | 0x3FFFC0C0; } /** -- cgit v1.2.3-70-g09d2