diff options
author | Dave Brolley <brolley@redhat.com> | 2005-12-02 20:09:42 +0000 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2005-12-02 20:09:42 +0000 |
commit | 3609e0feb6ad892d20a8078f47812b72a590dd86 (patch) | |
tree | 63bbb11ffe6e3004b70806e95914ba9449837a9d /opcodes/cgen-opc.c | |
parent | 31e2b00f59ea05cf30d5a98cd48b3fdfe9e220d1 (diff) | |
download | gdb-3609e0feb6ad892d20a8078f47812b72a590dd86.zip gdb-3609e0feb6ad892d20a8078f47812b72a590dd86.tar.gz gdb-3609e0feb6ad892d20a8078f47812b72a590dd86.tar.bz2 |
2005-12-02 Dave Brolley <brolley@redhat.com>
* configure.in (cgen_files): Add cgen-bitset.lo.
(ta): Add cgen-bitset.lo when arch==bfd_cris_arch.
* Makefile.am (CFILES): Add cgen-bitset.c.
(ALL_MACHINES): Add cgen-bitset.lo.
(cgen-bitset.lo): New target.
* cgen-opc.c (cgen_bitset_create, cgen_bitset_init, cgen_bitset_clear)
(cgen_bitset_add, cgen_bitset_set, cgen_bitset_contains)
(cgen_bitset_compare, cgen_bitset_intersect_p, cgen_bitset_copy)
(cgen_bitset_union): Moved from here ...
* cgen-bitset.c: ... to here. New file.
* Makefile.in: Regenerated.
* configure: Regenerated.
Diffstat (limited to 'opcodes/cgen-opc.c')
-rw-r--r-- | opcodes/cgen-opc.c | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/opcodes/cgen-opc.c b/opcodes/cgen-opc.c index dbc5175..d34aac8 100644 --- a/opcodes/cgen-opc.c +++ b/opcodes/cgen-opc.c @@ -613,151 +613,3 @@ cgen_signed_overflow_ok_p (CGEN_CPU_DESC cd) { return cd->signed_overflow_ok_p; } -/* Functions for manipulating CGEN_BITSET. */ - -/* Create a bit mask. */ -CGEN_BITSET * -cgen_bitset_create (unsigned bit_count) -{ - CGEN_BITSET * mask = xmalloc (sizeof (* mask)); - cgen_bitset_init (mask, bit_count); - return mask; -} - -/* Initialize an existing bit mask. */ - -void -cgen_bitset_init (CGEN_BITSET * mask, unsigned bit_count) -{ - if (! mask) - return; - mask->length = (bit_count / 8) + 1; - mask->bits = xmalloc (mask->length); - cgen_bitset_clear (mask); -} - -/* Clear the bits of a bit mask. */ - -void -cgen_bitset_clear (CGEN_BITSET * mask) -{ - unsigned i; - - if (! mask) - return; - - for (i = 0; i < mask->length; ++i) - mask->bits[i] = 0; -} - -/* Add a bit to a bit mask. */ - -void -cgen_bitset_add (CGEN_BITSET * mask, unsigned bit_num) -{ - int byte_ix, bit_ix; - int bit_mask; - - if (! mask) - return; - byte_ix = bit_num / 8; - bit_ix = bit_num % 8; - bit_mask = 1 << (7 - bit_ix); - mask->bits[byte_ix] |= bit_mask; -} - -/* Set a bit mask. */ - -void -cgen_bitset_set (CGEN_BITSET * mask, unsigned bit_num) -{ - if (! mask) - return; - cgen_bitset_clear (mask); - cgen_bitset_add (mask, bit_num); -} - -/* Test for a bit in a bit mask. - Returns 1 if the bit is found */ - -int -cgen_bitset_contains (CGEN_BITSET * mask, unsigned bit_num) -{ - int byte_ix, bit_ix; - int bit_mask; - - if (! mask) - return 1; /* No bit restrictions. */ - - byte_ix = bit_num / 8; - bit_ix = 7 - (bit_num % 8); - bit_mask = 1 << bit_ix; - return (mask->bits[byte_ix] & bit_mask) >> bit_ix; -} - -/* Compare two bit masks for equality. - Returns 0 if they are equal. */ - -int -cgen_bitset_compare (CGEN_BITSET * mask1, CGEN_BITSET * mask2) -{ - if (mask1 == mask2) - return 0; - if (! mask1 || ! mask2) - return 1; - if (mask1->length != mask2->length) - return 1; - return memcmp (mask1->bits, mask2->bits, mask1->length); -} - -/* Test two bit masks for common bits. - Returns 1 if a common bit is found. */ - -int -cgen_bitset_intersect_p (CGEN_BITSET * mask1, CGEN_BITSET * mask2) -{ - unsigned i, limit; - - if (mask1 == mask2) - return 1; - if (! mask1 || ! mask2) - return 0; - limit = mask1->length < mask2->length ? mask1->length : mask2->length; - - for (i = 0; i < limit; ++i) - if ((mask1->bits[i] & mask2->bits[i])) - return 1; - - return 0; -} - -/* Make a copy of a bit mask. */ - -CGEN_BITSET * -cgen_bitset_copy (CGEN_BITSET * mask) -{ - CGEN_BITSET* newmask; - - if (! mask) - return NULL; - newmask = cgen_bitset_create ((mask->length * 8) - 1); - memcpy (newmask->bits, mask->bits, mask->length); - return newmask; -} - -/* Combine two bit masks. */ - -void -cgen_bitset_union (CGEN_BITSET * mask1, CGEN_BITSET * mask2, - CGEN_BITSET * result) -{ - unsigned i; - - if (! mask1 || ! mask2 || ! result - || mask1->length != mask2->length - || mask1->length != result->length) - return; - - for (i = 0; i < result->length; ++i) - result->bits[i] = mask1->bits[i] | mask2->bits[i]; -} |