Hi,

Segher had previously requested some cleanups in 
https://gcc.gnu.org/ml/gcc-patches/2018-01/msg01605.html.
Due to time pressures, I delayed those, but they are ready now.  Here they are,
bootstrapped and tested on powerpc64le-linux-gnu and powerpc64-linux-gnu.  Is
this okay for trunk?  I don't intend to backport these.

Thanks,
Bill


2018-01-19  Bill Schmidt  <wschm...@linux.vnet.ibm.com>

        * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
        Simplify the clause that sets the length attribute.
        (*call_value_indirect_nonlocal_sysv<mode>): Likewise.
        (*sibcall_nonlocal_sysv<mode>): Clean up code block; simplify the
        clause that sets the length attribute.
        (*sibcall_value_nonlocal_sysv<mode>): Likewise.


Index: gcc/config/rs6000/rs6000.md
===================================================================
--- gcc/config/rs6000/rs6000.md (revision 256894)
+++ gcc/config/rs6000/rs6000.md (working copy)
@@ -10463,17 +10463,11 @@
    (set (attr "length")
        (cond [(and (eq (symbol_ref "which_alternative") (const_int 0))
                    (eq (symbol_ref "rs6000_speculate_indirect_jumps")
-                       (const_int 1)))
-                 (const_string "4")
-              (and (eq (symbol_ref "which_alternative") (const_int 0))
-                   (eq (symbol_ref "rs6000_speculate_indirect_jumps")
                        (const_int 0)))
                  (const_string "8")
-              (eq (symbol_ref "which_alternative") (const_int 1))
-                 (const_string "4")
               (and (eq (symbol_ref "which_alternative") (const_int 2))
-                   (eq (symbol_ref "rs6000_speculate_indirect_jumps")
-                       (const_int 1)))
+                   (ne (symbol_ref "rs6000_speculate_indirect_jumps")
+                       (const_int 0)))
                  (const_string "8")
               (and (eq (symbol_ref "which_alternative") (const_int 2))
                    (eq (symbol_ref "rs6000_speculate_indirect_jumps")
@@ -10576,17 +10570,11 @@
    (set (attr "length")
        (cond [(and (eq (symbol_ref "which_alternative") (const_int 0))
                    (eq (symbol_ref "rs6000_speculate_indirect_jumps")
-                       (const_int 1)))
-                 (const_string "4")
-              (and (eq (symbol_ref "which_alternative") (const_int 0))
-                   (eq (symbol_ref "rs6000_speculate_indirect_jumps")
                        (const_int 0)))
                  (const_string "8")
-              (eq (symbol_ref "which_alternative") (const_int 1))
-                 (const_string "4")
               (and (eq (symbol_ref "which_alternative") (const_int 2))
-                   (eq (symbol_ref "rs6000_speculate_indirect_jumps")
-                       (const_int 1)))
+                   (ne (symbol_ref "rs6000_speculate_indirect_jumps")
+                       (const_int 0)))
                  (const_string "8")
               (and (eq (symbol_ref "which_alternative") (const_int 2))
                    (eq (symbol_ref "rs6000_speculate_indirect_jumps")
@@ -10973,47 +10961,40 @@
   "(DEFAULT_ABI == ABI_DARWIN
     || DEFAULT_ABI == ABI_V4)
    && (INTVAL (operands[2]) & CALL_LONG) == 0"
-  "*
 {
   if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS)
-    output_asm_insn (\"crxor 6,6,6\", operands);
+    output_asm_insn ("crxor 6,6,6", operands);
 
   else if (INTVAL (operands[2]) & CALL_V4_CLEAR_FP_ARGS)
-    output_asm_insn (\"creqv 6,6,6\", operands);
+    output_asm_insn ("creqv 6,6,6", operands);
 
   if (which_alternative >= 2)
     {
       if (rs6000_speculate_indirect_jumps)
-       return \"b%T0\";
+       return "b%T0";
       else
        /* Can use CR0 since it is volatile across sibcalls.  */
-       return \"crset eq\;beq%T0-\;b $\";
+       return "crset eq;beq%T0-;b $";
     }
   else if (DEFAULT_ABI == ABI_V4 && flag_pic)
     {
       gcc_assert (!TARGET_SECURE_PLT);
-      return \"b %z0@plt\";
+      return "b %z0@plt";
     }
   else
-    return \"b %z0\";
-}"
+    return "b %z0";
+}
   [(set_attr "type" "branch")
    (set (attr "length")
-       (cond [(eq (symbol_ref "which_alternative") (const_int 0))
-                 (const_string "4")
-              (eq (symbol_ref "which_alternative") (const_int 1))
+       (cond [(eq (symbol_ref "which_alternative") (const_int 1))
                  (const_string "8")
               (and (eq (symbol_ref "which_alternative") (const_int 2))
                    (eq (symbol_ref "rs6000_speculate_indirect_jumps")
-                       (const_int 1)))
-                 (const_string "4")
-              (and (eq (symbol_ref "which_alternative") (const_int 2))
-                   (eq (symbol_ref "rs6000_speculate_indirect_jumps")
                        (const_int 0)))
                  (const_string "12")
               (and (eq (symbol_ref "which_alternative") (const_int 3))
-                   (eq (symbol_ref "rs6000_speculate_indirect_jumps")
-                       (const_int 1)))
+                   (ne (symbol_ref "rs6000_speculate_indirect_jumps")
+                       (const_int 0)))
                  (const_string "8")
               (and (eq (symbol_ref "which_alternative") (const_int 3))
                    (eq (symbol_ref "rs6000_speculate_indirect_jumps")
@@ -11030,47 +11011,40 @@
   "(DEFAULT_ABI == ABI_DARWIN
     || DEFAULT_ABI == ABI_V4)
    && (INTVAL (operands[3]) & CALL_LONG) == 0"
-  "*
 {
   if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS)
-    output_asm_insn (\"crxor 6,6,6\", operands);
+    output_asm_insn ("crxor 6,6,6", operands);
 
   else if (INTVAL (operands[3]) & CALL_V4_CLEAR_FP_ARGS)
-    output_asm_insn (\"creqv 6,6,6\", operands);
+    output_asm_insn ("creqv 6,6,6", operands);
 
   if (which_alternative >= 2)
     {
       if (rs6000_speculate_indirect_jumps)
-       return \"b%T1\";
+       return "b%T1";
       else
        /* Can use CR0 since it is volatile across sibcalls.  */
-       return \"crset eq\;beq%T1-\;b $\";
+       return "crset eq;beq%T1-;b $";
     }
   else if (DEFAULT_ABI == ABI_V4 && flag_pic)
     {
       gcc_assert (!TARGET_SECURE_PLT);
-      return \"b %z1@plt\";
+      return "b %z1@plt";
     }
   else
-    return \"b %z1\";
-}"
+    return "b %z1";
+}
   [(set_attr "type" "branch")
    (set (attr "length")
-       (cond [(eq (symbol_ref "which_alternative") (const_int 0))
-                 (const_string "4")
-              (eq (symbol_ref "which_alternative") (const_int 1))
+       (cond [(eq (symbol_ref "which_alternative") (const_int 1))
                  (const_string "8")
               (and (eq (symbol_ref "which_alternative") (const_int 2))
                    (eq (symbol_ref "rs6000_speculate_indirect_jumps")
-                       (const_int 1)))
-                 (const_string "4")
-              (and (eq (symbol_ref "which_alternative") (const_int 2))
-                   (eq (symbol_ref "rs6000_speculate_indirect_jumps")
                        (const_int 0)))
                  (const_string "12")
               (and (eq (symbol_ref "which_alternative") (const_int 3))
-                   (eq (symbol_ref "rs6000_speculate_indirect_jumps")
-                       (const_int 1)))
+                   (ne (symbol_ref "rs6000_speculate_indirect_jumps")
+                       (const_int 0)))
                  (const_string "8")
               (and (eq (symbol_ref "which_alternative") (const_int 3))
                    (eq (symbol_ref "rs6000_speculate_indirect_jumps")

Reply via email to