This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Updating an operand in RTL for a builtin function
On Friday 11 May 2007, Dave Korn wrote:
> On 11 May 2007 19:27, Paul Brook wrote:
> >>> > result = __macf(operand1, operand2, operand3);
> >> After the builtin i want to have the following operations also to
> >> carried out operand3 = result ;
> >
> > Why do you want this to happen?
>
> I think what he means is he wants operand 3 and operand zero to be placed
> in the same register, hence the "0" constraint. As to quite why it's not
> working, I don't know. A very similar pattern, only with "=&" modifiers on
> operand zero, works fine for me under 3.4.4.
That's an implementation detail of the RTL patterns. It should not effect the
semantics of the C builtin function.
For example the x86 MME/SSE instructions are two-operand instructions (ie the
first instruction operand is overwritten with the result). However the
builtins are still expressed as a function that reads two values and returns
a third independent value.
Paul