A class for iterating through possible bitfield modes.
bit_field_mode_iterator::bit_field_mode_iterator |
( |
HOST_WIDE_INT | bitsize, |
|
|
HOST_WIDE_INT | bitpos, |
|
|
poly_int64 | bitregion_start, |
|
|
poly_int64 | bitregion_end, |
|
|
unsigned int | align, |
|
|
bool | volatilep ) |
Construct an iterator for a bitfield that spans BITSIZE bits,
starting at BITPOS.
BITREGION_START is the bit position of the first bit in this
sequence of bit fields. BITREGION_END is the last bit in this
sequence. If these two fields are non-zero, we should restrict the
memory access to that range. Otherwise, we are allowed to touch
any adjacent non bit-fields.
ALIGN is the alignment of the underlying object in bits.
VOLATILEP says whether the bitfield is volatile.
References BITS_PER_WORD, end(), known_eq, m_bitregion_end, MAX, and MIN.
Calls to this function return successively larger modes that can be used
to represent the bitfield. Return true if another bitfield mode is
available, storing it in *OUT_MODE if so.
References BITS_PER_WORD, end(), opt_mode< T >::exists(), GET_MODE_ALIGNMENT, GET_MODE_BITSIZE(), GET_MODE_PRECISION(), GET_MODE_WIDER_MODE(), m_align, m_bitpos, m_bitregion_end, m_bitregion_start, m_bitsize, m_count, m_mode, MAX_FIXED_MODE_SIZE, maybe_gt, and targetm.
Referenced by adjust_bit_field_mem_for_reg(), and get_best_mode().