-/* Define how to generate multiple insns for a standard insn name.
- 1st operand: the insn name.
- 2nd operand: vector of insn-patterns.
- Use match_operand to substitute an element of `recog_data.operand'.
- 3rd operand: C expression that must be true for this to be available.
- This may not test any operands.
- 4th operand: Extra C code to execute before generating the insns.
- This might, for example, create some RTX's and store them in
- elements of `recog_data.operand' for use by the vector of
- insn-patterns.
- (`operands' is an alias here for `recog_data.operand'). */
-DEF_RTL_EXPR(DEFINE_EXPAND, "define_expand", "sEss", 'x')
-
-/* Define a requirement for delay slots.
- 1st operand: Condition involving insn attributes that, if true,
- indicates that the insn requires the number of delay slots
- shown.
- 2nd operand: Vector whose length is the three times the number of delay
- slots required.
- Each entry gives three conditions, each involving attributes.
- The first must be true for an insn to occupy that delay slot
- location. The second is true for all insns that can be
- annulled if the branch is true and the third is true for all
- insns that can be annulled if the branch is false.
-
- Multiple DEFINE_DELAYs may be present. They indicate differing
- requirements for delay slots. */
-DEF_RTL_EXPR(DEFINE_DELAY, "define_delay", "eE", 'x')
-
-/* Define a set of insns that requires a function unit. This means that
- these insns produce their result after a delay and that there may be
- restrictions on the number of insns of this type that can be scheduled
- simultaneously.
-
- More than one DEFINE_FUNCTION_UNIT can be specified for a function unit.
- Each gives a set of operations and associated delays. The first three
- operands must be the same for each operation for the same function unit.
-
- All delays are specified in cycles.
-
- 1st operand: Name of function unit (mostly for documentation)
- 2nd operand: Number of identical function units in CPU
- 3rd operand: Total number of simultaneous insns that can execute on this
- function unit; 0 if unlimited.
- 4th operand: Condition involving insn attribute, that, if true, specifies
- those insns that this expression applies to.
- 5th operand: Constant delay after which insn result will be
- available.
- 6th operand: Delay until next insn can be scheduled on the function unit
- executing this operation. The meaning depends on whether or
- not the next operand is supplied.
- 7th operand: If this operand is not specified, the 6th operand gives the
- number of cycles after the instruction matching the 4th
- operand begins using the function unit until a subsequent
- insn can begin. A value of zero should be used for a
- unit with no issue constraints. If only one operation can
- be executed a time and the unit is busy for the entire time,
- the 3rd operand should be specified as 1, the 6th operand
- should be specified as 0, and the 7th operand should not
- be specified.
-
- If this operand is specified, it is a list of attribute
- expressions. If an insn for which any of these expressions
- is true is currently executing on the function unit, the
- issue delay will be given by the 6th operand. Otherwise,
- the insn can be immediately scheduled (subject to the limit
- on the number of simultaneous operations executing on the
- unit.) */
-DEF_RTL_EXPR(DEFINE_FUNCTION_UNIT, "define_function_unit", "siieiiV", 'x')
-
-/* Define attribute computation for `asm' instructions. */
-DEF_RTL_EXPR(DEFINE_ASM_ATTRIBUTES, "define_asm_attributes", "V", 'x' )
-
-/* Definition of a conditional execution meta operation. Automatically
- generates new instances of DEFINE_INSN, selected by having attribute
- "predicable" true. The new pattern will contain a COND_EXEC and the
- predicate at top-level.
-
- Operand:
- 0: The predicate pattern. The top-level form should match a
- relational operator. Operands should have only one alternative.
- 1: A C expression giving an additional condition for recognizing
- the generated pattern.
- 2: A template or C code to produce assembler output. */
-DEF_RTL_EXPR(DEFINE_COND_EXEC, "define_cond_exec", "Ess", 'x')
-
-/* SEQUENCE appears in the result of a `gen_...' function
- for a DEFINE_EXPAND that wants to make several insns.
- Its elements are the bodies of the insns that should be made.
- `emit_insn' takes the SEQUENCE apart and makes separate insns. */
-DEF_RTL_EXPR(SEQUENCE, "sequence", "E", 'x')