public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jeffrey A Law <law@cygnus.com>
To: Bill Currie <bcurrie@tssc.co.nz>
Cc: Joern Rennecke <amylaar@cygnus.co.uk>, ak@muc.de, egcs@cygnus.com
Subject: Re: Feature request: ability to describe x86 register halves as contraints.
Date: Thu, 02 Jul 1998 01:39:00 -0000	[thread overview]
Message-ID: <23540.899348404@hurl.cygnus.com> (raw)
In-Reply-To: <359ABD84.2FC4@tssc.co.nz>

  In message <359ABD84.2FC4@tssc.co.nz>you write:
  > Jeffrey A Law wrote:
  > > I guess that would be OK.  I'm still not convinced it's worth the huge
  > > effort though.
  > > jeff
  > 
  > Sometimes I think the amount of effort required is grossly
  > over-estimated (but not allways).
I disagree.  One of the things I do for Cygnus is estimations and
estimation review -- my opinions based on that would tend to be just
the opposite.  While many problems seem easy on the surface, when you
dig deeper you often find fundamental problems that throw off estimations
by  2X-5X.


  > I recently disproved the comment in
  > config/i860/i860.h about the difficulty of gcc supporting cross endian
  > cpu's (ie reg word endian != mem word endian) buy totaly confusing gcc
  > as to what subreg 1 was (I told final.c that subreg 1 was (eg) %r8
  > instead of %r9 :).
And whie this may be working for you, I highly suspect if you dig deeper
you'll find out that all kinds of things eventually break.


  > I haven't submitted any patches yet, because I
  > totally broke the *little* endian i860 (i860.md only) and I'm still
  > finding numberous md bugs that where there at the start (incorrect
  > constraints etc), and I still have to forward port my patches to the
  > latest CVS sources.
The i860 port is probably buggy as hell.  Nobody's working on it at all.


  > One question, would the following work, or would it break insn
  > recognition?
  > 
  > (define_expand "fix_truncdfsi2"
  >   ;; This first insn produces a double-word value
  >   ;; in which only the low word is valid.
  >   [(set (match_dup 2)
  > 	(fix:DI (fix:DF (match_operand:DF 1 "register_operand" "f"))))
  >    (set (match_operand:SI 0 "register_operand" "=f")
  > 	(match_dup 3))] /*this used to be (subreg (SI (match_dup 2) 1)*/
  >   ""
  >   "
  > {
  >   operands[2] = gen_reg_rtx (DImode);
  >   operands[3] = gen_rtx_SUBREG (SImode, operands[2], WORDS_BIG_ENDIAN);
  > }")
  > 
  > I would like to do this so i860 endian selection can be a target switch.
I would think this will work as long as you have appropriate matchers.

However, I'm curious how you deal with memory subregs or register
subregs that get spilled, then loaded from memory.  I get the
impression that how the word of a subreg is interpreted changes based
on what the inner object is.

jeff

       reply	other threads:[~1998-07-02  1:39 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <359ABD84.2FC4@tssc.co.nz>
1998-07-02  1:39 ` Jeffrey A Law [this message]
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
1998-07-01 13:20 Michael Meissner
1998-07-01 20:15 ` Joern Rennecke
  -- strict thread matches above, loose matches on Subject: below --
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
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

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=23540.899348404@hurl.cygnus.com \
    --to=law@cygnus.com \
    --cc=ak@muc.de \
    --cc=amylaar@cygnus.co.uk \
    --cc=bcurrie@tssc.co.nz \
    --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).