This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: What does this character mean in gcc's md file?
- From: Ian Lance Taylor <ian at airs dot com>
- To: ZengNan <znxmu at yahoo dot com dot cn>
- Cc: gcc at gcc dot gnu dot org
- Date: 19 Jan 2006 20:54:52 -0800
- Subject: Re: What does this character mean in gcc's md file?
- References: <20060119095924.36563.qmail@web15710.mail.cnb.yahoo.com>
ZengNan <znxmu@yahoo.com.cn> writes:
> (define_insn ""
> [(set (match_operand:CCFP 0 "register_operand" "=z")
> (match_operator:SF 1 "signed_comparison_operator"
> [(match_operand:SF 2 "register_operand" "f")
> (match_operand:SF 3 "register_operand" "f")]))]
> ""
> "%C1f\\t%2,%3"
> [(set_attr "type" "fp")
> (set_attr "mode" "SF")])
>
> This pattern outputs float compare instruction. "%C" in the output template is defined in dlx.c to
> be one of eq, ne, gt, lt, le and neq. DLX's assembly code for float compare has the format of "*f
> op1, op2", where * is to be substituted by eq, ne, gt, .... I don't know the meaning of the
> numeric character "1" between "%C" and "f" in the output template.
It is the operand number which is used to determine what to print for
%C. In this case the match_operator:SF, which is operand 1 in the
pattern (the 1 appears explicitly above).
Ian