public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jeffrey A Law <law@cygnus.com>
To: ak@muc.de
Cc: egcs@cygnus.com
Subject: Re: Feature request: ability to describe x86 register halves as contraints.
Date: Tue, 30 Jun 1998 01:02:00 -0000	[thread overview]
Message-ID: <15971.899192800@hurl.cygnus.com> (raw)
In-Reply-To: <19980629184404.62482@kali.lrz-muenchen.de>

  In message < 19980629184404.62482@kali.lrz-muenchen.de >you write:
  > Egcs does not handle x86 register halves (al/ah etc.) well. Although
  > it is able to turn (x & 0xFF) into an access to the rL register, there
  > is no way to trick it into generating write access to rH registers
  > (neither union { char h,l; short val } x; x.h = 1; nor and/shift/or tricks
  > work). 
The lack of aggressive use of byte/half sized registers is probably
a direct result of the x86 target files being designed as a 32bit
target.

It claims registers are 32bits wide and that the size of a word is
32bits.

To get more aggressive optimziation of these smaller values you'd have
to change the size of registers.  A *large* task.  I looked into doing
it for the H8 a while back and decided it was not worth the effort.

One could argue that gcc should have better mechanisms to deal with
partial registers.

Such concepts would help many older ports like the x86, m68k, h8, etc.

[ ... ]
  > Is it possible to add such an extension to the constraints language? 
  > Hopefully only minimal changes should be needed for this. 
First there'd have to be a way to describe hi/lo halves of registers
in RTL.  I'm not aware of any such mechanism.

jeff

  parent reply	other threads:[~1998-06-30  1:02 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-06-29 20:41 ak
1998-06-30  0:42 ` Richard Henderson
1998-06-30  4:50   ` ak
1998-06-30 19:49     ` Alan Modra
1998-06-30 19:49       ` Andreas Kleen
1998-06-30 14:08   ` Jeffrey A Law
1998-06-30  9:24     ` Richard Henderson
1998-06-30  1:02 ` Jeffrey A Law [this message]
1998-06-30 11:53   ` Joern Rennecke
1998-06-30 11:53     ` Jeffrey A Law
1998-07-01  3:42       ` Richard Henderson
1998-06-30 15:15   ` Bill Currie
1998-06-30 15:26     ` Jeffrey A Law
1998-06-30 23:15       ` Bill Currie
1998-06-30 19:49         ` Jeffrey A Law
1998-07-01 10:51           ` Joern Rennecke
1998-07-01 10:51             ` Jeffrey A Law
1998-07-01 13:20 Michael Meissner
1998-07-01 20:15 ` Joern Rennecke
     [not found] <359ABD84.2FC4@tssc.co.nz>
1998-07-02  1:39 ` Jeffrey A Law
1998-07-02  1:39   ` Bill Currie
1998-07-02  1:39     ` Jeffrey A Law
1998-07-03  0:12       ` Bill Currie
1998-07-02 11:02     ` Joern Rennecke
1998-07-02 15:15       ` Bill Currie
1998-07-02 15:15         ` Joern Rennecke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=15971.899192800@hurl.cygnus.com \
    --to=law@cygnus.com \
    --cc=ak@muc.de \
    --cc=egcs@cygnus.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).