+2005-02-03 Theodore Ts'o <tytso@mit.edu>
+
+ * configure.in: Remove support for the (very old) sparc old-bitops
+ configure option.
+
2005-01-19 Matthias Andree <matthias.andree@gmx.de>
* configure.in: Clean up checks for dirent.d_reclen, ssize_t,
--enable-dynamic-e2fsck build e2fsck dynamically
--enable-fsck build fsck wrapper program
--enable-e2initrd-helper build e2initrd-helper program
- --enable-old-bitops Use old (non-standard but native) bitmask operations
--disable-nls do not use Native Language Support
--disable-rpath do not hardcode runtime library paths
MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
-# Check whether --enable-old-bitops or --disable-old-bitops was given.
-if test "${enable_old_bitops+set}" = set; then
- enableval="$enable_old_bitops"
- if test "$enableval" = "no"
-then
- echo "Using new (standard) bitmask operations"
-else
- cat >>confdefs.h <<\_ACEOF
-#define EXT2_OLD_BITOPS 1
-_ACEOF
-
- echo "Using old (native) bitmask operations"
-
-fi
-
-else
- echo "Using standard bitmask operations by default"
-
-fi;
GETTEXT_PACKAGE=e2fsprogs
PACKAGE=e2fsprogs
VERSION="$E2FSPROGS_VERSION"
MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
AC_SUBST_FILE(MAKEFILE_LIBRARY)
dnl
-dnl
-AC_ARG_ENABLE([old-bitops],
-[ --enable-old-bitops Use old (non-standard but native) bitmask operations],
-if test "$enableval" = "no"
-then
- echo "Using new (standard) bitmask operations"
-else
- AC_DEFINE(EXT2_OLD_BITOPS)
- echo "Using old (native) bitmask operations"
-
-fi
-,
-echo "Using standard bitmask operations by default"
-)
-dnl
dnl Add internationalization support, using gettext.
dnl
GETTEXT_PACKAGE=e2fsprogs
+2005-02-03 Theodore Ts'o <tytso@mit.edu>
+
+ * bitops.c: Make the generic functions more efficient.
+
+ * bitops.h: Drop SPARC assembly code. It's less efficient than GCC
+ 3.4 compiled code and also triggers nasty compiler
+ warnings on sparc64. Thanks to Matthias Andree for his
+ analysis and suggestion.
+
2005-01-27 Theodore Ts'o <tytso@mit.edu>
* res_gdt.c (ext2fs_create_resize_inode): Create the resize inode
ADDR += nr >> 3;
mask = 1 << (nr & 0x07);
- retval = (mask & *ADDR) != 0;
+ retval = mask & *ADDR;
*ADDR |= mask;
return retval;
}
ADDR += nr >> 3;
mask = 1 << (nr & 0x07);
- retval = (mask & *ADDR) != 0;
+ retval = mask & *ADDR;
*ADDR &= ~mask;
return retval;
}
ADDR += nr >> 3;
mask = 1 << (nr & 0x07);
- return ((mask & *ADDR) != 0);
+ return (mask & *ADDR);
}
#endif /* !_EXT2_HAVE_ASM_BITOPS_ */
#endif /* __mc68000__ */
-#ifdef __sparc__
-
-#define _EXT2_HAVE_ASM_BITOPS_
-
-#ifndef EXT2_OLD_BITOPS
-
-/*
- * Do the bitops so that we are compatible with the standard i386
- * convention.
- */
-
-_INLINE_ int ext2fs_set_bit(int nr,void * addr)
-{
-#if 1
- int mask;
- unsigned char *ADDR = (unsigned char *) addr;
-
- ADDR += nr >> 3;
- mask = 1 << (nr & 0x07);
- __asm__ __volatile__("ldub [%0], %%g6\n\t"
- "or %%g6, %2, %%g5\n\t"
- "stb %%g5, [%0]\n\t"
- "and %%g6, %2, %0\n"
- : "=&r" (ADDR)
- : "0" (ADDR), "r" (mask)
- : "g5", "g6");
- return (int) ADDR;
-#else
- int mask, retval;
- unsigned char *ADDR = (unsigned char *) addr;
-
- ADDR += nr >> 3;
- mask = 1 << (nr & 0x07);
- retval = (mask & *ADDR) != 0;
- *ADDR |= mask;
- return retval;
-#endif
-}
-
-_INLINE_ int ext2fs_clear_bit(int nr, void * addr)
-{
-#if 1
- int mask;
- unsigned char *ADDR = (unsigned char *) addr;
-
- ADDR += nr >> 3;
- mask = 1 << (nr & 0x07);
- __asm__ __volatile__("ldub [%0], %%g6\n\t"
- "andn %%g6, %2, %%g5\n\t"
- "stb %%g5, [%0]\n\t"
- "and %%g6, %2, %0\n"
- : "=&r" (ADDR)
- : "0" (ADDR), "r" (mask)
- : "g5", "g6");
- return (int) ADDR;
-
-#else
- int mask, retval;
- unsigned char *ADDR = (unsigned char *) addr;
-
- ADDR += nr >> 3;
- mask = 1 << (nr & 0x07);
- retval = (mask & *ADDR) != 0;
- *ADDR &= ~mask;
- return retval;
-#endif
-}
-
-_INLINE_ int ext2fs_test_bit(int nr, const void * addr)
-{
- int mask;
- const unsigned char *ADDR = (const unsigned char *) addr;
-
- ADDR += nr >> 3;
- mask = 1 << (nr & 0x07);
- return ((mask & *ADDR) != 0);
-}
-
-#else
-
-/* Do things the old, unplesant way. */
-
-_INLINE_ int ext2fs_set_bit(int nr, void *addr)
-{
- int mask, retval;
- unsigned long *ADDR = (unsigned long *) addr;
-
- ADDR += nr >> 5;
- mask = 1 << (nr & 31);
- retval = ((mask & *ADDR) != 0);
- *ADDR |= mask;
- return retval;
-}
-
-_INLINE_ int ext2fs_clear_bit(int nr, void *addr)
-{
- int mask, retval;
- unsigned long *ADDR = (unsigned long *) addr;
-
- ADDR += nr >> 5;
- mask = 1 << (nr & 31);
- retval = ((mask & *ADDR) != 0);
- *ADDR &= ~mask;
- return retval;
-}
-
-_INLINE_ int ext2fs_test_bit(int nr, const void *addr)
-{
- int mask;
- const unsigned long *ADDR = (const unsigned long *) addr;
-
- ADDR += nr >> 5;
- mask = 1 << (nr & 31);
- return ((mask & *ADDR) != 0);
-}
-#endif
-
-#endif /* __sparc__ */
#if !defined(_EXT2_HAVE_ASM_SWAB_) && defined(EXT2FS_ENABLE_SWAPFS)