changeset 7828:0c814f292eb6 draft

(svn r11378) -Codechange: optimize KillFirstBit2x64 (skidd13)
author truelight <truelight@openttd.org>
date Sun, 04 Nov 2007 18:28:52 +0000
parents ce139ad89369
children 355243c3ab8a
files src/macros.h
diffstat 1 files changed, 2 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/macros.h
+++ b/src/macros.h
@@ -416,21 +416,14 @@
  * 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;
 }
 
 /**