]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rs6000.c (rs6000_stack_info): Fix caching of SPE 64-bit register usage.
authorAldy Hernandez <aldyh@redhat.com>
Fri, 14 Jan 2005 16:52:43 +0000 (16:52 +0000)
committerAldy Hernandez <aldyh@gcc.gnu.org>
Fri, 14 Jan 2005 16:52:43 +0000 (16:52 +0000)
* 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

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index ff8610ce9f802ff749a302e5cada04f58c035ef9..d79d9c00623489fcf6dae7083a15b5272c604091 100644 (file)
@@ -1,3 +1,9 @@
+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
index b3c3534186a110452fa69aa427744ebbe5413aaf..a6a8871052c69c00188e1fb9996a87550d39ceac 100644 (file)
@@ -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)
            {