From: Theodore Ts'o Date: Sun, 8 Jul 2001 02:14:23 +0000 (-0400) Subject: bitops.h (ext2fs_find_first_bit_set): Use %esi instead of %ebx to X-Git-Tag: E2FSPROGS-1_23-WIP-0720~14 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=f41e7e6961366f15eca8c05edbf5a35f4a9b3b65;p=tools%2Fe2fsprogs.git bitops.h (ext2fs_find_first_bit_set): Use %esi instead of %ebx to avoid register conflicts when compiling in PIC mode. --- diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog index 740df89..987b586 100644 --- a/lib/ext2fs/ChangeLog +++ b/lib/ext2fs/ChangeLog @@ -1,3 +1,8 @@ +2001-07-07 Theodore Tso + + * bitops.h (ext2fs_find_first_bit_set): Use %esi instead of %ebx + to avoid register conflicts when compiling in PIC mode. + 2001-07-04 Theodore Tso * bitops.h (ext2fs_find_first_bit_set, ext2fs_find_next_bit_set): diff --git a/lib/ext2fs/bitops.h b/lib/ext2fs/bitops.h index 176fc2f..bf6b006 100644 --- a/lib/ext2fs/bitops.h +++ b/lib/ext2fs/bitops.h @@ -157,7 +157,6 @@ _INLINE_ int ext2fs_test_bit(int nr, const void * addr) return oldbit; } -#ifndef C_VERSIONS _INLINE_ int ext2fs_find_first_bit_set(void * addr, unsigned size) { int d0, d1, d2; @@ -175,11 +174,11 @@ _INLINE_ int ext2fs_find_first_bit_set(void * addr, unsigned size) "movl -4(%%edi),%%eax\n\t" "subl $4,%%edi\n\t" "bsfl %%eax,%%edx\n" - "1:\tsubl %%ebx,%%edi\n\t" + "1:\tsubl %%esi,%%edi\n\t" "shll $3,%%edi\n\t" "addl %%edi,%%edx" :"=d" (res), "=&c" (d0), "=&D" (d1), "=&a" (d2) - :"1" ((size + 31) >> 5), "2" (addr), "b" (addr)); + :"1" ((size + 31) >> 5), "2" (addr), "S" (addr)); return res; } @@ -209,7 +208,6 @@ _INLINE_ int ext2fs_find_next_bit_set (void * addr, int size, int offset) res = ext2fs_find_first_bit_set(p, size - 32 * (p - (unsigned long *) addr)); return (offset + set + res); } -#endif #ifdef EXT2FS_ENABLE_SWAPFS _INLINE_ __u32 ext2fs_swab32(__u32 val)