This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: assign_parm_setup_block handling of parallels
- From: Aldy Hernandez <aldyh at redhat dot com>
- To: Eric Botcazou <ebotcazou at libertysurf dot fr>
- Cc: gcc at gcc dot gnu dot org, Richard Henderson <rth at redhat dot com>, dje at watson dot ibm dot com
- Date: Wed, 12 Jan 2005 13:53:01 -0400
- Subject: Re: assign_parm_setup_block handling of parallels
- References: <20041223202824.GA8247@redhat.com> <20041223223759.GA19928@redhat.com> <20050112165517.GA21567@redhat.com> <200501121814.36541.ebotcazou@libertysurf.fr>
On Wed, Jan 12, 2005 at 06:14:36PM +0100, Eric Botcazou wrote:
> > /* If we've a non-block object that's nevertheless passed in parts,
> > reconstitute it in register operations rather than on the stack. */
> > if (GET_CODE (entry_parm) == PARALLEL
> > ! && data->nominal_mode != BLKmode)
> > {
> > ! rtx elt0 = XEXP (XVECEXP (entry_parm, 0, 0), 0);
> >
> > ! if ((XVECLEN (entry_parm, 0) > 1
> > ! || hard_regno_nregs[REGNO (elt0)][GET_MODE (elt0)])
Ooops, that should be "> 1" for the hard_regno_nregs check.
> > ! && use_register_for_decl (parm))
> > ! {
>
> You've reintroduced the pessimization on SPARC 64-bit. :-)
How so? Won't "XVECLEN (entry_parm, 0) > 1" take care of sparc64-bit?
Aldy