This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Target-dependent modes (2/3) take one
> X-Original-To: geoffk@foam.wonderslug.com
> Cc: gcc-patches@gcc.gnu.org
> Date: Sat, 11 Oct 2003 19:31:59 -0400
> From: David Edelsohn <dje@watson.ibm.com>
> X-OriginalArrivalTime: 11 Oct 2003 23:38:07.0781 (UTC) FILETIME=[B9578550:01C39050]
>
> >>>>> Zack Weinberg writes:
>
> > rs6000 uses PSImode to represent the XER register. The XER register
> > appears never to be used for anything. I would like to rip it out
> > entirely, but I'm not sure it's safe to change register numbers like
> > that, and I am also not familiar with the history; maybe it's needed
> > for something I did not understand.
Why do we want to take it out?
> The PowerPC XER register contains the carry bit. XER was added a
> few years ago for the eventual purpose of tracking carry bit dependency
> and performing register allocation on the carry bit instead of emitting
> multiple instructions and limiting carry use to within an insn. That
> support never has been implemented. I am not sure the performance gain is
> worth the effort. I am not sure why PSImode was used, other than to
> ensure nothing else was allocated to the register.
The XER doesn't have all its bits implemented on all processors.
> I think it's safe to remove XER and shift all register numbers
> down because all references should be through the macros within GCC.
>
> Are the register numbers exposed through stabs debugging
> information? That would affect Darwin.
Both stabs and dwarf rely on the particular numbering scheme.
--
- Geoffrey Keating <geoffk@geoffk.org>