This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Question about "match_dup"
- From: Ian Lance Taylor <ian at airs dot com>
- To: <fishbaoz at hotmail dot com>
- Cc: <gcc at gcc dot gnu dot org>
- Date: 07 Sep 2003 20:54:42 -0700
- Subject: Re: Question about "match_dup"
- References: <Law10-OE45JluZs8aZz000091a1@hotmail.com>
<fishbaoz@hotmail.com> writes:
> What is the exact meaning of "match_dup"?
>
> the following is extracted from "mips.md"
>
> (define_expand "movsicc"
> [(set (match_dup 4) (match_operand 1 "comparison_operator" ""))
> (set (match_operand:SI 0 "register_operand" "")
> (if_then_else:SI (match_dup 5)
> (match_operand:SI 2 "reg_or_0_operand" "")
> (match_operand:SI 3 "reg_or_0_operand" "")))]
> "mips_isa >= 4"
> "
> {
> gen_conditional_move (operands);
> DONE;
> }")
>
> Now?
> what is the meaning of "match_dup" in the machine description above?
> what does it "duplicate"? Operand(4)? where is the original Operand(4)?
The preparation statements always call DONE. That means that the RTL
template is never used, and is in effect a comment. The insns are
generated by gen_conditional_move().
Ian