[PATCH] SPARC psABI fix, callee returns struct checking.
Richard Henderson
rth@redhat.com
Wed Mar 22 22:22:00 GMT 2006
On Wed, Mar 22, 2006 at 04:45:29PM -0500, Carlos O'Donell wrote:
> > +(define_insn "adjust_register"
> > + [(unspec:SI [(match_operand:SI 0 "register_operand" "r")
> > + (match_operand:SI 1 "small_int_operand" "I")]
> > UNSPEC_ADJUST_REGISTER)]
> > + ""
> > +{
> > + return "add\t%0, %1, %0\n\t";
> > +}
> > + [(set (attr "length") (const_int 1))])
This modifies operand 0. This must be represented as
[(set (match_operand:SI 0 "register_operand" "+r")
(unspec:SI [(match_dup 0)
(match_operand:SI 1 "small_int_operand" "I")]
UNSPEC_ADJUST_REGISTER))]
Supposing that you actually need the unspec at all. I see
commentary that claims that the compiler expects the return
address to be constant, but I'd like some explanation as to
why and where.
r~
More information about the Gcc-patches
mailing list