This is the mail archive of the gcc-patches@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: Revised patch to remove integer output macros


Richard Henderson <rth@redhat.com> writes:
> On Sat, Dec 15, 2001 at 08:31:20PM +0000, Richard Sandiford wrote:
> > I think using the "OK for debugging output" rule might make the back-end
> > code more confusing.  In your other message, for the sparc, you
> > suggested using putting DOUBLE_INT_ASM_OP in TARGET_ASM_ALIGNED_DI_OP
> > and using:
> > 
> >   if (! TARGET_POWERPC64)
> >     return false;
> > 
> > in the target hook to turn it off.  That's fine for aligned ops,
> > because aligned ops aren't used in debugging output at the moment.
> 
> Hmm.  You've got a point there.  By my rule, we should zero the
> value in the target structure in one of the init routines.
> 
> So I guess I'll not change my mind about wanting the strings there
> if available, but will change my mind about the advice I gave you
> earlier.

OK, here's a revised patch.  Differences:

- The target strings contain instructions when at least one choice
  of command-line options might allow them.  So on the sparc, for
  example, the unaligned DI op is ".uaxword".

- override_options nullifies the strings that aren't available.
  On the sparc, the unaligned DI op is set to null for 32-bit targets.

- assemble_integer uses the hook function instead of the strings.
  The implementations of the hook will either handle the object
  themselves, and return true, or pass the request on to
  default_assemble_integer.

You've convinced me that this scheme is better than the one I
used in my first patch.

Also:

- mmix now uses Knuth's syntax for all bytes, as discussed in
  Hans-Peter's message.

- I fixed the typos you spotted.

- assemble_integer will now try to split aligned word or sub-word objects
  into bytes if the target hook couldn't handle the full object.

I feel bad clogging up people's bandwidth with the whole patch again,
so this time I'll just send the hunks that changed from the first
version I posted.  I've also attached the updated changelog.

I tested the new patch in the same way as the first one.  Bootstrapped
and regression tested on i686-unknown-linux-gnu.  OK to install?

Richard

Attachment: int-op.clog.bz2
Description: ChangeLog

Attachment: int-op-changes.bz2
Description: Changes to the first patch


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