rs6000.c (no_global_regs_above): Fix precedence problem.
authorNathan Froyd <froydnj@codesourcery.com>
Sat, 1 Nov 2008 02:22:55 +0000 (02:22 +0000)
committerNathan Froyd <froydnj@gcc.gnu.org>
Sat, 1 Nov 2008 02:22:55 +0000 (02:22 +0000)
* config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
problem.
(rs6000_emit_prologue): Invert logic.
* config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
(reg:P 11) instead of match_operand.
(*save_fpregs_<mode>): Likewise.
(*restore_gpregs_<mode>): Likewise.
(*return_and_restore_gpregs_<mode>): Likewise.
(*return_and_restore_fpregs_<mode>): Likewise.
* config/rs6000/spe.md (*save_gpregs_spe): Use explicit
(reg:P 11) insted of match_operand.
(*restore_gpregs_spe): Likewise.
(*return_and_restore_gpregs_spe): Likewise.

From-SVN: r141508

gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md
gcc/config/rs6000/spe.md

index 5af239d9b5ad53e709788aa01196e047cfc0e4af..4451a60fe7bff25e1828bc48a646a88140940131 100644 (file)
@@ -1,3 +1,19 @@
+2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
+       problem.
+       (rs6000_emit_prologue): Invert logic.
+       * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
+       (reg:P 11) instead of match_operand.
+       (*save_fpregs_<mode>): Likewise.
+       (*restore_gpregs_<mode>): Likewise.
+       (*return_and_restore_gpregs_<mode>): Likewise.
+       (*return_and_restore_fpregs_<mode>): Likewise.
+       * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
+       (reg:P 11) insted of match_operand.
+       (*restore_gpregs_spe): Likewise.
+       (*return_and_restore_gpregs_spe): Likewise.
+
 2008-10-28  Luis Machado  <luisgpm@br.ibm.com>
 
        * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
index 6df7aa797320e5839eda495a58e2ddfdaf64d2f1..a4eeb0e8dba0329b1392142deba4b91086ca1fb5 100644 (file)
@@ -15839,7 +15839,8 @@ static bool
 no_global_regs_above (int first, bool gpr)
 {
   int i;
-  for (i = first; i < gpr ? 32 : 64 ; i++)
+  int last = gpr ? 32 : 64;
+  for (i = first; i < last; i++)
     if (global_regs[i])
       return false;
   return true;
@@ -16118,7 +16119,7 @@ rs6000_emit_prologue (void)
   int using_store_multiple;
   int using_static_chain_p = (cfun->static_chain_decl != NULL_TREE
                               && df_regs_ever_live_p (STATIC_CHAIN_REGNUM)
-                              && !call_used_regs[STATIC_CHAIN_REGNUM]);
+                              && call_used_regs[STATIC_CHAIN_REGNUM]);
   HOST_WIDE_INT sp_offset = 0;
 
   if (TARGET_FIX_AND_CONTINUE)
index 4fa690d809770fce45f89fb8d0c4e2b50f179ee4..46ff6b7a4b3da57a0b08e8b4340e68d3eed91e7d 100644 (file)
   [(match_parallel 0 "any_parallel_operand"
                   [(clobber (reg:P 65))
                    (use (match_operand:P 1 "symbol_ref_operand" "s"))
-                    (use (match_operand:P 2 "gpc_reg_operand" "r"))
-                   (set (match_operand:P 3 "memory_operand" "=m")
-                        (match_operand:P 4 "gpc_reg_operand" "r"))])]
+                    (use (reg:P 11))
+                   (set (match_operand:P 2 "memory_operand" "=m")
+                        (match_operand:P 3 "gpc_reg_operand" "r"))])]
   ""
   "bl %z1"
   [(set_attr "type" "branch")
   [(match_parallel 0 "any_parallel_operand"
                   [(clobber (reg:P 65))
                    (use (match_operand:P 1 "symbol_ref_operand" "s"))
-                    (use (match_operand:P 2 "gpc_reg_operand" "r"))
-                   (set (match_operand:DF 3 "memory_operand" "=m")
-                        (match_operand:DF 4 "gpc_reg_operand" "f"))])]
+                    (use (reg:P 11))
+                   (set (match_operand:DF 2 "memory_operand" "=m")
+                        (match_operand:DF 3 "gpc_reg_operand" "f"))])]
   ""
   "bl %z1"
   [(set_attr "type" "branch")
  [(match_parallel 0 "any_parallel_operand"
                   [(clobber (match_operand:P 1 "register_operand" "=l"))
                    (use (match_operand:P 2 "symbol_ref_operand" "s"))
-                   (use (match_operand:P 3 "gpc_reg_operand" "r"))
-                  (set (match_operand:P 4 "gpc_reg_operand" "=r")
-                       (match_operand:P 5 "memory_operand" "m"))])]
+                   (use (reg:P 11))
+                  (set (match_operand:P 3 "gpc_reg_operand" "=r")
+                       (match_operand:P 4 "memory_operand" "m"))])]
  ""
  "bl %z2"
  [(set_attr "type" "branch")
                   [(return)
                   (clobber (match_operand:P 1 "register_operand" "=l"))
                   (use (match_operand:P 2 "symbol_ref_operand" "s"))
-                   (use (match_operand:P 3 "gpc_reg_operand" "r"))
-                  (set (match_operand:P 4 "gpc_reg_operand" "=r")
-                       (match_operand:P 5 "memory_operand" "m"))])]
+                   (use (reg:P 11))
+                  (set (match_operand:P 3 "gpc_reg_operand" "=r")
+                       (match_operand:P 4 "memory_operand" "m"))])]
  ""
  "b %z2"
  [(set_attr "type" "branch")
                   [(return)
                   (clobber (match_operand:P 1 "register_operand" "=l"))
                   (use (match_operand:P 2 "symbol_ref_operand" "s"))
-                   (use (match_operand:P 3 "gpc_reg_operand" "r"))
-                  (set (match_operand:DF 4 "gpc_reg_operand" "=f")
-                       (match_operand:DF 5 "memory_operand" "m"))])]
+                   (use (reg:P 11))
+                  (set (match_operand:DF 3 "gpc_reg_operand" "=f")
+                       (match_operand:DF 4 "memory_operand" "m"))])]
  ""
  "b %z2"
  [(set_attr "type" "branch")
index 96be255895b128867d35c2ddf4269cc665c3459b..c87d67ea47fdfa08171e1ee70e2a5adb6d3f13e8 100644 (file)
   [(match_parallel 0 "any_parallel_operand"
                   [(clobber (reg:P 65))
                    (use (match_operand:P 1 "symbol_ref_operand" "s"))
-                   (use (match_operand:P 2 "gpc_reg_operand" "r"))
-                   (set (match_operand:V2SI 3 "memory_operand" "=m")
-                        (match_operand:V2SI 4 "gpc_reg_operand" "r"))])]
+                   (use (reg:P 11))
+                   (set (match_operand:V2SI 2 "memory_operand" "=m")
+                        (match_operand:V2SI 3 "gpc_reg_operand" "r"))])]
   "TARGET_SPE_ABI"
   "bl %z1"
   [(set_attr "type" "branch")
  [(match_parallel 0 "any_parallel_operand"
                  [(clobber (reg:P 65))
                   (use (match_operand:P 1 "symbol_ref_operand" "s"))
-                  (use (match_operand:P 2 "gpc_reg_operand" "r"))
-                  (set (match_operand:V2SI 3 "gpc_reg_operand" "=r")
-                       (match_operand:V2SI 4 "memory_operand" "m"))])]
+                  (use (reg:P 11))
+                  (set (match_operand:V2SI 2 "gpc_reg_operand" "=r")
+                       (match_operand:V2SI 3 "memory_operand" "m"))])]
  "TARGET_SPE_ABI"
  "bl %z1"
  [(set_attr "type" "branch")
                  [(return)
                   (clobber (reg:P 65))
                   (use (match_operand:P 1 "symbol_ref_operand" "s"))
-                  (use (match_operand:P 2 "gpc_reg_operand" "r"))
-                  (set (match_operand:V2SI 3 "gpc_reg_operand" "=r")
-                       (match_operand:V2SI 4 "memory_operand" "m"))])]
+                  (use (reg:P 11))
+                  (set (match_operand:V2SI 2 "gpc_reg_operand" "=r")
+                       (match_operand:V2SI 3 "memory_operand" "m"))])]
  "TARGET_SPE_ABI"
  "b %z1"
  [(set_attr "type" "branch")