◆ move_by_pieces_d()
move_by_pieces_d::move_by_pieces_d |
( |
rtx | to, |
|
|
rtx | from, |
|
|
unsigned HOST_WIDE_INT | len, |
|
|
unsigned int | align ) |
|
inline |
◆ finish_mode()
virtual void op_by_pieces_d::finish_mode |
( |
machine_mode | | ) |
|
|
inlineprotectedvirtualinherited |
◆ finish_retmode()
◆ generate()
void move_by_pieces_d::generate |
( |
rtx | op0, |
|
|
rtx | op1, |
|
|
machine_mode | mode ) |
|
finaloverrideprivatevirtual |
A callback used when iterating for a compare_by_pieces_operation.
OP0 and OP1 are the values that have been loaded and should be
compared in MODE. If OP0 is NULL, this means we should generate a
push; otherwise EXTRA_DATA holds a pointer to a pointer to the insn
gen function that should be used to generate the mode.
Implements op_by_pieces_d.
References emit_insn(), m_gen_fun, NULL, and NULL_RTX.
◆ get_usable_mode()
◆ prepare_mode()
bool move_by_pieces_d::prepare_mode |
( |
machine_mode | mode, |
|
|
unsigned int | align ) |
|
finaloverrideprivatevirtual |
◆ run()
void op_by_pieces_d::run |
( |
| ) |
|
|
inherited |
This function contains the main loop used for expanding a block
operation. First move what we can in the largest integer mode,
then go to successively smaller modes. For every access, call
GENFUN with the two operands and the EXTRA_DATA.
References by_pieces_prev::data, finish_mode(), generate(), GET_MODE_SIZE(), get_usable_mode(), m_from, m_len, m_max_size, m_offset, m_op, m_overlap_op_by_pieces, m_push, m_reverse, m_to, by_pieces_prev::mode, NULL_RTX, smallest_fixed_size_mode_for_size(), and widest_fixed_size_mode_for_size().
◆ smallest_fixed_size_mode_for_size()
fixed_size_mode op_by_pieces_d::smallest_fixed_size_mode_for_size |
( |
unsigned int | size | ) |
|
|
privateinherited |
Return the smallest integer or QI vector mode that is not narrower
than SIZE bytes.
References by_pieces_mode_supported_p(), can_use_qi_vectors(), candidate(), FOR_EACH_MODE_IN_CLASS, GET_MODE_INNER, GET_MODE_SIZE(), is_a(), m_len, m_op, opt_mode< T >::require(), and smallest_int_mode_for_size().
Referenced by run().
◆ m_align
unsigned int op_by_pieces_d::m_align |
|
protectedinherited |
◆ m_from
◆ m_gen_fun
◆ m_len
const unsigned HOST_WIDE_INT op_by_pieces_d::m_len |
|
protectedinherited |
◆ m_max_size
unsigned int op_by_pieces_d::m_max_size |
|
protectedinherited |
◆ m_offset
HOST_WIDE_INT op_by_pieces_d::m_offset |
|
protectedinherited |
◆ m_op
◆ m_overlap_op_by_pieces
bool op_by_pieces_d::m_overlap_op_by_pieces |
|
protectedinherited |
◆ m_push
bool op_by_pieces_d::m_push |
|
protectedinherited |
◆ m_reverse
bool op_by_pieces_d::m_reverse |
|
protectedinherited |
◆ m_to
The documentation for this class was generated from the following file: