That was also the conclusion I came to. I was now wondering why GREG
allows itself to change that register from r0 to r3. Is there any
reason?

It seems to me that the most likely reason is that it considers in
this case r0 as undefined and thus can modify it to r3 because of
this. I was wondering if this assumption is correct and what "could I
have done" (though I won't) to tell him not to.

This question is now to understand the hows and whys of GREG instead
of how to do what I initially wanted. As I have stated and you have
confirmed, this would be a bad idea. I also noticed that by modifying
my constraints, I'm getting the generated code I was looking for.

Thanks again,
Jc

On Fri, Aug 21, 2009 at 8:12 PM, Richard Henderson<r...@redhat.com> wrote:
> On 08/21/2009 04:01 PM, Jean Christophe Beyler wrote:
>>
>>     /* If we have a 0, use r0 instead */
>
> Don't do this.  See how, e.g. alpha and mips handle the zero register.
> You want to leave this as (const_int 0) throughout compilation.
>
>
> r~
>

Reply via email to