aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2005-01-14 16:52:43 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2005-01-14 16:52:43 +0000
commitb5a5beb9830357e16ca31590f68a73d59c95678d (patch)
treea6700108644bd85005bc0a268b641f6d43eaf5ed /gcc
parent5ca189994ef1475c2ee92ec5425ec5fb884871cf (diff)
downloadgcc-b5a5beb9830357e16ca31590f68a73d59c95678d.zip
gcc-b5a5beb9830357e16ca31590f68a73d59c95678d.tar.gz
gcc-b5a5beb9830357e16ca31590f68a73d59c95678d.tar.bz2
rs6000.c (rs6000_stack_info): Fix caching of SPE 64-bit register usage.
* config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE 64-bit register usage. (spe_func_has_64bit_regs_p): Add FIXME note. [[Split portion of a mixed commit.]] From-SVN: r93648.2
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.c14
2 files changed, 16 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ff8610c..d79d9c0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2005-01-14 Aldy Hernandez <aldyh@redhat.com>
+ * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
+ 64-bit register usage.
+ (spe_func_has_64bit_regs_p): Add FIXME note.
+
+2005-01-14 Aldy Hernandez <aldyh@redhat.com>
+
* config/rs6000/rs6000.c (rs6000_generate_compare): Replace
flag_finite_math_only with flag_unsafe_math_optimizations.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index b3c3534..a6a8871 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -12621,10 +12621,9 @@ rs6000_stack_info (void)
{
/* Cache value so we don't rescan instruction chain over and over. */
if (cfun->machine->insn_chain_scanned_p == 0)
- {
- cfun->machine->insn_chain_scanned_p = 1;
- info_ptr->spe_64bit_regs_used = (int) spe_func_has_64bit_regs_p ();
- }
+ cfun->machine->insn_chain_scanned_p
+ = spe_func_has_64bit_regs_p () + 1;
+ info_ptr->spe_64bit_regs_used = cfun->machine->insn_chain_scanned_p - 1;
}
/* Select which calling sequence. */
@@ -12933,6 +12932,13 @@ spe_func_has_64bit_regs_p (void)
{
rtx i;
+ /* FIXME: This should be implemented with attributes...
+
+ (set_attr "spe64" "true")....then,
+ if (get_spe64(insn)) return true;
+
+ It's the only reliable way to do the stuff below. */
+
i = PATTERN (insn);
if (GET_CODE (i) == SET)
{