From 646b2fe6b3ee7f14e1b74180cf23ecf4b14ad022 Mon Sep 17 00:00:00 2001 From: shebs Date: Mon, 17 Sep 2001 23:24:52 +0000 Subject: [PATCH] 2001-09-17 Dale Johannesen * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2. * config/rs6000/aix.h (FIXED_R2): Define. * config/rs6000/darwin.h (FIXED_R2): Define. * config/rs6000/sysv4.h (FIXED_R2): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45669 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 7 +++++++ gcc/config/rs6000/aix.h | 1 + gcc/config/rs6000/darwin.h | 2 ++ gcc/config/rs6000/rs6000.h | 5 +++-- gcc/config/rs6000/sysv4.h | 2 +- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6a069f1..ae11d42 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2001-09-17 Dale Johannesen + + * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2. + * config/rs6000/aix.h (FIXED_R2): Define. + * config/rs6000/darwin.h (FIXED_R2): Define. + * config/rs6000/sysv4.h (FIXED_R2): Define. + 2001-09-17 Jeff Sturm * except.c (dw2_build_landing_pads): New local diff --git a/gcc/config/rs6000/aix.h b/gcc/config/rs6000/aix.h index 428ab43..28bf98a 100644 --- a/gcc/config/rs6000/aix.h +++ b/gcc/config/rs6000/aix.h @@ -161,6 +161,7 @@ Boston, MA 02111-1307, USA. */ #define TARGET_NO_TOC 0 #define TARGET_TOC 1 +#define FIXED_R2 1 /* AIX allows r13 to be used. */ #define FIXED_R13 0 diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h index 6e6a04f..32bdfba 100644 --- a/gcc/config/rs6000/darwin.h +++ b/gcc/config/rs6000/darwin.h @@ -39,6 +39,8 @@ Boston, MA 02111-1307, USA. */ #define CC1_SPEC "%{!static:-fPIC}" +/* Make both r2 and r3 available for allocation. */ +#define FIXED_R2 0 #define FIXED_R13 0 #undef TARGET_DEFAULT diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index b602dfb..a1103a7 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -641,14 +641,15 @@ extern int rs6000_debug_arg; /* debug argument handling */ /* 1 for registers that have pervasive standard uses and are not available for the register allocator. - On RS/6000, r1 is used for the stack and r2 is used as the TOC pointer. + On RS/6000, r1 is used for the stack. On Darwin, r2 is available + as a local register; for all other OS's r2 is the TOC pointer. cr5 is not supposed to be used. On System V implementations, r13 is fixed and not available for use. */ #define FIXED_REGISTERS \ - {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, FIXED_R13, 0, 0, \ + {0, 1, FIXED_R2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, FIXED_R13, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h index 38fcb83..554090c 100644 --- a/gcc/config/rs6000/sysv4.h +++ b/gcc/config/rs6000/sysv4.h @@ -314,9 +314,9 @@ do { \ #undef PROCESSOR_DEFAULT #define PROCESSOR_DEFAULT PROCESSOR_PPC750 +#define FIXED_R2 1 /* System V.4 uses register 13 as a pointer to the small data area, so it is not available to the normal user. */ - #define FIXED_R13 1 /* Size of the V.4 varargs area if needed. */ -- 2.7.4