[multiple changes]
authorDavid Edelsohn <dje@gcc.gnu.org>
Sat, 23 Feb 2002 02:07:21 +0000 (21:07 -0500)
committerDavid Edelsohn <dje@gcc.gnu.org>
Sat, 23 Feb 2002 02:07:21 +0000 (21:07 -0500)
2002-02-23  David Edelsohn  <edelsohn@gnu.org>

        * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
        gpc_reg_operand constraint.

2002-02-23  Alan Modra  <amodra@bigpond.net.au>

        * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
        Simplify comparison of `low'.
        (add_operand): Fix formatting.
        (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
        (rs6000_stack_info): Remove redundant test setting push_p.
        (output_toc): Fix formatting.
        * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
        cc_reg_not_cr0_operand constraint.
        (booldi3, boolcdi3 splitters): Same.

From-SVN: r49983

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

index cba1adce7891f88e8e3b8f940b380055d1ca5177..218f8116e83eb326d33ff91a604b60c279341c14 100644 (file)
@@ -1,3 +1,20 @@
+2002-02-23  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
+       gpc_reg_operand constraint.
+
+2002-02-23  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
+       Simplify comparison of `low'.
+       (add_operand): Fix formatting.
+       (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
+       (rs6000_stack_info): Remove redundant test setting push_p.
+       (output_toc): Fix formatting.
+       * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
+       cc_reg_not_cr0_operand constraint.
+       (booldi3, boolcdi3 splitters): Same.
+
 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
 
         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
index 9698b1f0680754c109a55739c774c83730d004d4..863126ef72f46b0b293c7961f66eb24df1f9257e 100644 (file)
@@ -1080,7 +1080,7 @@ num_insns_constant (op, mode)
 
       REAL_VALUE_FROM_CONST_DOUBLE (rv, op);
       REAL_VALUE_TO_TARGET_SINGLE (rv, l);
-      return num_insns_constant_wide ((HOST_WIDE_INT)l);
+      return num_insns_constant_wide ((HOST_WIDE_INT) l);
     }
 
   else if (GET_CODE (op) == CONST_DOUBLE)
@@ -1110,10 +1110,10 @@ num_insns_constant (op, mode)
 
       else
        {
-         if (high == 0 && (low & 0x80000000) == 0)
+         if (high == 0 && low >= 0)
            return num_insns_constant_wide (low);
 
-         else if (high == -1 && (low & 0x80000000) != 0)
+         else if (high == -1 && low < 0)
            return num_insns_constant_wide (low);
 
          else if (mask64_operand (op, mode))
@@ -1312,8 +1312,8 @@ add_operand (op, mode)
     enum machine_mode mode;
 {
   if (GET_CODE (op) == CONST_INT)
-    return (CONST_OK_FOR_LETTER_P (INTVAL(op), 'I')
-           || CONST_OK_FOR_LETTER_P (INTVAL(op), 'L'));
+    return (CONST_OK_FOR_LETTER_P (INTVAL (op), 'I')
+           || CONST_OK_FOR_LETTER_P (INTVAL (op), 'L'));
 
   return gpc_reg_operand (op, mode);
 }
@@ -1326,8 +1326,8 @@ non_add_cint_operand (op, mode)
      enum machine_mode mode ATTRIBUTE_UNUSED;
 {
   return (GET_CODE (op) == CONST_INT
-         && (unsigned HOST_WIDE_INT) (INTVAL (op) + 0x8000) >= 0x10000
-         && ! CONST_OK_FOR_LETTER_P (INTVAL (op), 'L'));
+         && !CONST_OK_FOR_LETTER_P (INTVAL (op), 'I')
+         && !CONST_OK_FOR_LETTER_P (INTVAL (op), 'L'));
 }
 
 /* Return 1 if the operand is a non-special register or a constant that
@@ -7878,8 +7878,7 @@ rs6000_stack_info ()
     info_ptr->push_p = 1;
 
   else if (abi == ABI_V4)
-    info_ptr->push_p = (total_raw_size > info_ptr->fixed_size
-                       || info_ptr->calls_p);
+    info_ptr->push_p = total_raw_size > info_ptr->fixed_size;
 
   else
     info_ptr->push_p = (frame_pointer_needed
@@ -10210,7 +10209,7 @@ output_toc (file, x, labelno, mode)
          if (TARGET_MINIMAL_TOC)
            fputs (DOUBLE_INT_ASM_OP, file);
          else
-           fprintf (file, "\t.tc ID_%lx_%lx[TC],", (long)high, (long)low);
+           fprintf (file, "\t.tc ID_%lx_%lx[TC],", (long) high, (long) low);
          fprintf (file, "0x%lx%08lx\n", (long) high, (long) low);
          return;
        }
@@ -10222,7 +10221,7 @@ output_toc (file, x, labelno, mode)
                fputs ("\t.long ", file);
              else
                fprintf (file, "\t.tc ID_%lx_%lx[TC],",
-                        (long)high, (long)low);
+                        (long) high, (long) low);
              fprintf (file, "0x%lx,0x%lx\n", (long) high, (long) low);
            }
          else
index d83538ba6253abbe435298e2a4db04d38854e5ed..c83a4dbf683bb23905a86a011baf899789fb2a29 100644 (file)
    (set_attr "length" "4,8")])
 
 (define_split
-  [(set (match_operand:CC 3 "cc_reg_operand" "")
+  [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "")
        (compare:CC (match_operator:SI 4 "boolean_operator"
         [(match_operand:SI 1 "gpc_reg_operand" "")
          (match_operand:SI 2 "gpc_reg_operand" "")])
    (set_attr "length" "4,8")])
 
 (define_split
-  [(set (match_operand:CC 3 "cc_reg_operand" "")
+  [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "")
        (compare:CC (match_operator:SI 4 "boolean_operator"
         [(not:SI (match_operand:SI 1 "gpc_reg_operand" ""))
          (match_operand:SI 2 "gpc_reg_operand" "")])
    (set_attr "length" "4,8")])
 
 (define_split
-  [(set (match_operand:CC 3 "cc_reg_operand" "")
+  [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "")
        (compare:CC (match_operator:SI 4 "boolean_operator"
         [(not:SI (match_operand:SI 1 "gpc_reg_operand" ""))
          (not:SI (match_operand:SI 2 "gpc_reg_operand" ""))])
    (set_attr "length" "4,8")])
 
 (define_split
-  [(set (match_operand:CC 3 "cc_reg_operand" "")
+  [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "")
        (compare:CC (match_operator:DI 4 "boolean_operator"
         [(match_operand:DI 1 "gpc_reg_operand" "")
          (match_operand:DI 2 "gpc_reg_operand" "")])
    (set_attr "length" "4,8")])
 
 (define_split
-  [(set (match_operand:CC 3 "cc_reg_operand" "")
+  [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "")
        (compare:CC (match_operator:DI 4 "boolean_operator"
         [(not:DI (match_operand:DI 1 "gpc_reg_operand" ""))
          (match_operand:DI 2 "gpc_reg_operand" "")])
    (set_attr "length" "4,8")])
 
 (define_split
-  [(set (match_operand:CC 3 "cc_reg_operand" "")
+  [(set (match_operand:CC 3 "cc_reg_not_cr0_operand" "")
        (compare:CC (match_operator:DI 4 "boolean_operator"
         [(not:DI (match_operand:DI 1 "gpc_reg_operand" ""))
          (not:DI (match_operand:DI 2 "gpc_reg_operand" ""))])
 ;; Code to initialize the TOC register...
 
 (define_insn "load_toc_aix_si"
-  [(parallel [(set (match_operand:SI 0 "register_operand" "=r")
+  [(parallel [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
                   (unspec:SI [(const_int 0)] 7))
              (use (reg:SI 2))])]
   "DEFAULT_ABI == ABI_AIX && TARGET_32BIT"
   [(set_attr "type" "load")])
 
 (define_insn "load_toc_aix_di"
-  [(parallel [(set (match_operand:DI 0 "register_operand" "=r")
+  [(parallel [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
                   (unspec:DI [(const_int 0)] 7))
              (use (reg:DI 2))])]
   "DEFAULT_ABI == ABI_AIX && TARGET_64BIT"