re PR target/67573 ([SH] wrong code generated for libstdc++-v3/src/c++11/cxx11-shim_f...
authorKaz Kojima <kkojima@gcc.gnu.org>
Thu, 17 Sep 2015 00:12:57 +0000 (00:12 +0000)
committerKaz Kojima <kkojima@gcc.gnu.org>
Thu, 17 Sep 2015 00:12:57 +0000 (00:12 +0000)
PR target/67573
* config/sh/sh.md: Add early clobber to scratch operand of *call_*pcrel
insn_and_split so not to CSE scratch reg.

From-SVN: r227837

gcc/ChangeLog
gcc/config/sh/sh.md

index f2432e252e7ce1ec0c976e7dc04b598982e0fb78..babc86b28e4e96ed4a4862c9d48ca3072a5a72e8 100644 (file)
@@ -1,3 +1,10 @@
+2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/67573
+       * config/sh/sh.md (call_pcrel): Add early clobber to scratch
+       operand.
+       (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
+
 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
        * toplev.h (check_global_declaration): Remove declaration.
index 4e7cd169f84d71183a695e4cb32d58cb78ef1477..659c4c78b303d7bdead5d660cf364b7cfb912df3 100644 (file)
@@ -9464,7 +9464,7 @@ label:
    (use (reg:SI FPSCR_MODES_REG))
    (use (reg:SI PIC_REG))
    (clobber (reg:SI PR_REG))
-   (clobber (match_scratch:SI 2 "=r"))]
+   (clobber (match_scratch:SI 2 "=&r"))]
   "TARGET_SH2"
   "#"
   "reload_completed"
@@ -9595,7 +9595,7 @@ label:
    (use (reg:SI FPSCR_MODES_REG))
    (use (reg:SI PIC_REG))
    (clobber (reg:SI PR_REG))
-   (clobber (match_scratch:SI 3 "=r"))]
+   (clobber (match_scratch:SI 3 "=&r"))]
   "TARGET_SH2"
   "#"
   "reload_completed"
@@ -9993,7 +9993,7 @@ label:
   [(call (mem:SI (match_operand:SI 0 "symbol_ref_operand" ""))
         (match_operand 1 "" ""))
    (use (reg:SI FPSCR_MODES_REG))
-   (clobber (match_scratch:SI 2 "=k"))
+   (clobber (match_scratch:SI 2 "=&k"))
    (return)]
   "TARGET_SH2"
   "#"
@@ -10185,7 +10185,7 @@ label:
        (call (mem:SI (match_operand:SI 1 "symbol_ref_operand" ""))
              (match_operand 2 "" "")))
    (use (reg:SI FPSCR_MODES_REG))
-   (clobber (match_scratch:SI 3 "=k"))
+   (clobber (match_scratch:SI 3 "=&k"))
    (return)]
   "TARGET_SH2"
   "#"