Mercurial > hg > openttd
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; } /**