This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: call_value problem: var = func() !?


Hello all, hello Richard and thank you for your help.
      
On Wed, 30.06.2010 08:57, Richard Henderson wrote:
> On 06/30/2010 05:06 AM, M. -Eqbal Maraqa wrote:
> > f1.c:5:1: error: unrecognizable insn:
> > (insn 12 11 13 3 f1.c:4 
> >    (set (mem/c/i:SI (reg/f:SI 23 [ D.1964 ]) [0 <retval>+0 S4 A32])
> >          (mem/c/i:SI (plus:SI (reg/f:SI 19 virtual-stack-vars)
> > 	                      (const_int -4 [0xfffffffffffffffc])) 
> > 	                               [0 tmp+0 S4 A32])) -1 (nil))
> 
> I strongly suspect that your movsi expander is incorrect.

Yep, that was the problem. I wrote a stupid predicate for the move
operands, that would allow mem to mem moves, which is not supported by
the architecture and consequently the define_insn.

> You've missed that the operand to call is always a mem.  Most
> ports look through this mem immediately, e.g.

I corrected that one as well.

Kind regards.
-- 
if [ $(uname) = "Linux" ];then echo "[q]sb[lv0=blv256%Plv256/svlcx]sc911084920508\
6363247337574050075032905184391195412274100697358608023133864165787933915045683\
432087129472907338347329339706073226139582008068077725378669120069632svlcxq"|dc;fi;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]