diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2001-11-30 21:21:32 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@gcc.gnu.org> | 2001-11-30 21:21:32 +0000 |
commit | 289e96b247634638a62495382123191e7aa50681 (patch) | |
tree | dd4b5c5ac4f429d6440b308cea14815e89748732 /gcc | |
parent | c36b1123ae1494fd77576733b02632ac4107bd89 (diff) | |
download | gcc-289e96b247634638a62495382123191e7aa50681.zip gcc-289e96b247634638a62495382123191e7aa50681.tar.gz gcc-289e96b247634638a62495382123191e7aa50681.tar.bz2 |
rs6000.h (CALL_REALLY_USED_REGISTERS): New.
2001-11-30 Aldy Hernandez <aldyh@redhat.com>
* rs6000.h (CALL_REALLY_USED_REGISTERS): New.
(CONDITIONAL_REGISTER_USAGE): Set call_really_used_registers to
the values in call_used_registers.
From-SVN: r47493
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 33 |
2 files changed, 33 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9a471c6..177e62a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2001-11-30 Aldy Hernandez <aldyh@redhat.com> + + * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): New. + (CONDITIONAL_REGISTER_USAGE): Set call_really_used_registers to + the values in call_used_registers. + Fri Nov 30 12:48:26 2001 Jeffrey A Law (law@cygnus.com) * gthr-dce.h: If _DCE_THREADS is not defined, then just include diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index d17ce87..70a4ec9 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -725,6 +725,23 @@ extern int rs6000_debug_arg; /* debug argument handling */ 1 \ } +/* Like `CALL_USED_REGISTERS' except this macro doesn't require that + the entire set of `FIXED_REGISTERS' be included. + (`CALL_USED_REGISTERS' must be a superset of `FIXED_REGISTERS'). + This macro is optional. If not specified, it defaults to the value + of `CALL_USED_REGISTERS'. */ + +#define CALL_REALLY_USED_REGISTERS \ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, FIXED_R13, 0, 0, \ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, \ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ + 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, \ + /* AltiVec registers. */ \ + 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 \ +} #define MQ_REGNO 64 #define CR0_REGNO 68 @@ -928,23 +945,27 @@ extern int rs6000_debug_arg; /* debug argument handling */ if (! TARGET_POWER) \ fixed_regs[64] = 1; \ if (TARGET_64BIT) \ - fixed_regs[13] = call_used_regs[13] = 1; \ + fixed_regs[13] = call_used_regs[13] \ + = call_really_used_regs[13] = 1; \ if (TARGET_SOFT_FLOAT) \ for (i = 32; i < 64; i++) \ - fixed_regs[i] = call_used_regs[i] = 1; \ + fixed_regs[i] = call_used_regs[i] \ + = call_really_used_regs[i] = 1; \ if (DEFAULT_ABI == ABI_V4 && flag_pic == 1) \ fixed_regs[PIC_OFFSET_TABLE_REGNUM] \ - = call_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \ + = call_used_regs[PIC_OFFSET_TABLE_REGNUM] \ + = call_really_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \ if (DEFAULT_ABI == ABI_DARWIN && flag_pic) \ global_regs[PIC_OFFSET_TABLE_REGNUM] \ = fixed_regs[PIC_OFFSET_TABLE_REGNUM] \ - = call_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \ + = call_used_regs[PIC_OFFSET_TABLE_REGNUM] \ + = call_really_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \ if (! TARGET_ALTIVEC) \ for (i = FIRST_ALTIVEC_REGNO; i <= LAST_ALTIVEC_REGNO; ++i) \ - fixed_regs[i] = call_used_regs[i] = 1; \ + fixed_regs[i] = call_used_regs[i] = call_really_used_regs[i] = 1; \ if (TARGET_ALTIVEC_ABI) \ for (i = FIRST_ALTIVEC_REGNO; i < FIRST_ALTIVEC_REGNO + 20; ++i) \ - call_used_regs[i] = 1; \ + call_used_regs[i] = call_really_used_regs[i] = 1; \ } /* Specify the registers used for certain standard purposes. |