rs6000: Renumber the registers
authorSegher Boessenkool <segher@kernel.crashing.org>
Mon, 6 May 2019 23:50:42 +0000 (01:50 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Mon, 6 May 2019 23:50:42 +0000 (01:50 +0200)
commit3346313740b113e22f2567638f6161414589cc73
tree584085591fd26d46fc079328b3cc056b4a7f2401
parentc21ffa3e53606d421c44f13fbd9e96a49b0cf833
rs6000: Renumber the registers

This renumbers the registers.

It moves the VRs to 64..95, right after the GPRs and the FPRS.  This
means that the VSRs (which are aliases to the FPRs and the VRs, in
that order) are consecutive now.

It removes MQ, which has been just a stub for ages (it is a leftover
from RIOS, old POWER).

It moves the CR fields to 100..107, which is a bit easier to read
than the 68..75 is was before.

The rest fills the holes.  It should be easy to move anything else
after this series, so the exact order isn't very important anymore,
we aren't stuck with it if we dislike it.

Many things still want the GPRs to be at 0..31, and some things want
the FPRs at 32..63.  I don't think we'll ever want to change that,
so I left it be.

Small things...  It removes DWARF_FRAME_REGISTERS, it used to save
1000 or so words of memory, but it has been just a handful for a
while, and now it is one.  Some whitespace fixes.  Testing showed one
or two places where register allocation was different (not worse, not
better, just different).

* config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
(LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
(CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
(CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
(FRAME_POINTER_REGNUM): Change numbering.
* config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
(alt_reg_names): Adjust.
(rs6000_conditional_register_usage): Don't mark hard register 64 as
fixed.
* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
(DWARF_FRAME_REGISTERS): Delete.
(DWARF2_FRAME_REG_OUT): Fix whitespace.
(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
Adjust.
(REG_ALLOC_ORDER): Adjust.
(FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
(REG_CLASS_CONTENTS): Adjust.
(RETURN_ADDR_RTX): Change comment.
(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
instead of 67.
(REGISTER_NAMES): Adjust.
(ADDITIONAL_REGISTER_NAMES): Adjust.
* config/rs6000/darwin.h (REGISTER_NAMES): Adjust.

From-SVN: r270929
gcc/ChangeLog
gcc/config/rs6000/darwin.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.h
gcc/config/rs6000/rs6000.md