aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2001-11-30 21:21:32 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2001-11-30 21:21:32 +0000
commit289e96b247634638a62495382123191e7aa50681 (patch)
treedd4b5c5ac4f429d6440b308cea14815e89748732 /gcc
parentc36b1123ae1494fd77576733b02632ac4107bd89 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.h33
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.