This is the mail archive of the gcc-prs@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: ada/6483: ada fails to build under hppa*-hp-hpux*


The following reply was made to PR ada/6483; it has been noted by GNATS.

From: "zack@codesourcery.com" <zack@codesourcery.com>
To: Mark Mitchell <mark@codesourcery.com>
Cc: John David Anglin <dave@hiauly1.hia.nrc.ca>,
	Florian Weimer <fw@deneb.enyo.de>,
	"dave.anglin@nrc.ca" <dave.anglin@nrc.ca>,
	"gcc-gnats@gcc.gnu.org" <gcc-gnats@gcc.gnu.org>
Subject: Re: ada/6483: ada fails to build under hppa*-hp-hpux*
Date: Tue, 30 Apr 2002 10:55:49 -0700

 On Tue, Apr 30, 2002 at 10:14:34AM -0700, Mark Mitchell wrote:
 > 
 > >2001-10-08  Zack Weinberg  <zack@codesourcery.com>
 > >
 > >        * aclocal.m4 (gcc_AC_PROG_GNAT): New.
 > >	* configure.in: Use it.
 > >	* configure: Regenerated.
 > >	* config/pa/t-linux, config/pa/t-pa, config/pa/t-pa64,
 > >	config/pa/t-pro: Set T_ADAFLAGS, not ADA_CFLAGS.
 > 
 > Zack, can you comment on this?
 
 I do not fully understand the issue here.  
 
 My *impression* is that this is a host problem, i.e. that switch
 should appear in an x-fragment not a t-fragment.  My impression is
 also that -mdisable-indexing needs to get applied to everything
 compiled into gnat1, not just Ada source code.
 
 Therefore, I'd suggest that the right fix is to nuke T_ADAFLAGS and
 just set -mdisable-indexing with X_CFLAGS in x-pa.  (There isn't an
 x-pa right now, but we could create one.)
 
 I can provide a patch if you'd like.
 
 zw
 
 p.s. The description of the effect of -mdisable-indexing, given by
 various people on the list, does *not* match what it actually does.
 What it actually does is prevent GCC from generating [reg+reg] loads.
 (Well, that and this lovely piece of gobbledygook:
 
   /* Since move_operand is only used for source operands, we can always
      allow scaled indexing!  */
   if (! TARGET_DISABLE_INDEXING
       && GET_CODE (op) == PLUS
       && ((GET_CODE (XEXP (op, 0)) == MULT
            && GET_CODE (XEXP (XEXP (op, 0), 0)) == REG
            && GET_CODE (XEXP (XEXP (op, 0), 1)) == CONST_INT
            && INTVAL (XEXP (XEXP (op, 0), 1))
               == (HOST_WIDE_INT) GET_MODE_SIZE (mode)
            && GET_CODE (XEXP (op, 1)) == REG)
           || (GET_CODE (XEXP (op, 1)) == MULT
               &&GET_CODE (XEXP (XEXP (op, 1), 0)) == REG
               && GET_CODE (XEXP (XEXP (op, 1), 1)) == CONST_INT
               && INTVAL (XEXP (XEXP (op, 1), 1))
                  == (HOST_WIDE_INT) GET_MODE_SIZE (mode)
               && GET_CODE (XEXP (op, 0)) == REG)))
     return 1;
 
 but I think that boils down to the same thing.)
 
 I would think that if [reg+reg] loads are causing problems, there's a
 bug in the machine description, and -mdisable-indexing is merely
 papering it over.


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