This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: md file question
- To: Zack Weinberg <zack at wolery dot cumb dot org>
- Subject: Re: md file question
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Tue, 01 Feb 2000 23:20:36 -0700
- cc: gcc at gcc dot gnu dot org
- Reply-To: law at cygnus dot com
In message <20000201215653.B283@wolery.cumb.org>you write:
> What's the difference between
>
> (define_expand "call"
> [(call (match_operand 0 "" "")
> (match_operand 1 "" "")
> (clobber (reg:SI 17))]
> ...)
>
> and
>
> (define_expand "call"
> [(parallel[(call (match_operand 0 "" "")
> (match_operand 1 "" "")
> (clobber (reg:SI 17))])]
> ...)
>
> ? What if they were (define_insn) instead?
You've hit on one of the more subtle issues in md files.
The first generates two insns when it's called -- one for the call expression
another for the clobber expression.
The second generates a single insn that has two components -- the call and the
clobber.
They are not equivalent.
If those were define_insns they would be equivalent.
jeff