This is the mail archive of the
mailing list for the GCC project.
Re: Target-dependent modes (2/3) take one
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: Zack Weinberg <zack at codesourcery dot com>, Geoff Keating <geoffk at geoffk dot org>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Sat, 11 Oct 2003 19:31:59 -0400
- Subject: Re: Target-dependent modes (2/3) take one
- References: <firstname.lastname@example.org>
>>>>> 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.
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.
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.