> When a pseudo which has an equivalent form (via the REG_EQUIV note) fails to
> get a hard register, reload deletes the insn which sets the pseudo and
> instead will reload the equivalent form into a suitable hard register prior
> to use points.
>
> What you want to do is look at the reloads generated for insn #9.  I'd
> hazard a guess one of them loaded the value (symbol_ref ("fun")) into R0.
>  Then for some reason (you'll have to figure that out), the reload insn
> which sets R0 was deleted (or possibly doesn't get emitted because reload
> thought it was unncessary).
>
Yeah. The Move Symbol to R0 register is deleted, which is weird.
And I still can not figure out why. Which means I still need to dig it.
But I found when I used the gcc-4.0.2 version, the Call insn call the
function direction
call the function symbol which is OK.
I mean how gcc determine to call the function directly with the function symbol
or move the function symbol ref into a register then call the register.
Obviously, now the gcc-4.3.0 in my porting is working in the latter one.

Do your guys have any advice?
Thanks very much.
best regards.

      daniel.tian

Reply via email to