From: Michael Beck Date: Mon, 31 Dec 2007 18:05:14 +0000 (+0000) Subject: added rbitset_clear_all() X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=df81b97bc42cfb604faa5287827551ea35093d1e;p=libfirm added rbitset_clear_all() [r17121] --- diff --git a/include/libfirm/adt/raw_bitset.h b/include/libfirm/adt/raw_bitset.h index b709a1f02..ba8765ecb 100644 --- a/include/libfirm/adt/raw_bitset.h +++ b/include/libfirm/adt/raw_bitset.h @@ -55,7 +55,7 @@ typedef unsigned int rawbs_base_t; /** * Allocate an empty raw bitset on the heap. * - * @param size element size of the bitset + * @param size number of bits in the bitset * * @return the new bitset */ @@ -71,7 +71,7 @@ static INLINE unsigned *rbitset_malloc(unsigned size) { * Allocate an empty raw bitset on the stack. * * @param res will contain the newly allocated bitset - * @param size element size of the bitset + * @param size number of bits in the bitset */ #define rbitset_alloca(res, size) \ do { \ @@ -84,7 +84,7 @@ do { \ * Allocate an empty raw bitset on an obstack. * * @param obst the obstack where the bitset is allocated on - * @param size element size of the bitset + * @param size number of bits in the bitset * * @return the new bitset */ @@ -101,7 +101,7 @@ static INLINE unsigned *rbitset_obstack_alloc(struct obstack *obst, unsigned siz * The size of this bitset can be accessed by bitset[-1]. * * @param obst the obstack where the bitset is allocated on - * @param size element size of the bitset + * @param size number of bits in the bitset * * @return the new bitset */ @@ -123,7 +123,7 @@ static INLINE unsigned *rbitset_w_size_obstack_alloc(struct obstack *obst, unsig * * @param obst the obstack where the bitset is allocated on * @param old_bitset the bitset to be duplicated - * @param size element size of the bitset + * @param size number of bits in the bitset * * @return the new bitset */ @@ -169,6 +169,17 @@ static INLINE void rbitset_clear(unsigned *bitset, unsigned pos) { BITSET_ELEM(bitset, pos) &= ~(1 << (pos % BITS_PER_ELEM)); } +/** + * Clear all bits in a given bitset. + * + * @param bitset the bitset + * @param size number of bits in the bitset + */ +static INLINE void rbitset_clear_all(unsigned *bitset, unsigned size) { + unsigned size_bytes = BITSET_SIZE_BYTES(size); + memset(bitset, 0, size_bytes); +} + /** * Check if a bit is set at position pos. *