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

Reply via email to