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: Target-dependent modes (2/3) take one


>>>>> 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.

David


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