GCC Middle and Back End API Reference
funny_match Struct Reference

Data Fields

int this_op
 
int other
 

Detailed Description

Check the operands of an insn against the insn's operand constraints
and return 1 if they match any of the alternatives in ALTERNATIVES.

The information about the insn's operands, constraints, operand modes
etc. is obtained from the global variables set up by extract_insn.

WHICH_ALTERNATIVE is set to a number which indicates which
alternative of constraints was matched: 0 for the first alternative,
1 for the next, etc.

In addition, when two operands are required to match
and it happens that the output operand is (reg) while the
input operand is --(reg) or ++(reg) (a pre-inc or pre-dec),
make the output operand look like the input.
This is because the output operand is the one the template will print.

This is used in final, just before printing the assembler code and by
the routines that determine an insn's attribute.

If STRICT is a positive nonzero value, it means that we have been
called after reload has been completed.  In that case, we must
do all checks strictly.  If it is zero, it means that we have been called
before reload has completed.  In that case, we first try to see if we can
find an alternative that matches strictly.  If not, we try again, this
time assuming that reload will fix up the insn.  This provides a "best
guess" for the alternative and is used to compute attributes of insns prior
to reload.  A negative value of STRICT is used for this internal call.   

Field Documentation

◆ other

int funny_match::other

Referenced by constrain_operands().

◆ this_op

int funny_match::this_op

Referenced by constrain_operands().


The documentation for this struct was generated from the following file: