The instruction sequence generated for 64-bit indirect calls on hppa does not 
clobber register %r1, so
the clobbers for this register can be removed.

Tested on hppa64-hp-hpux11.11 with no observed regressions.

Dave
--
John David Anglin       dave.ang...@bell.net


2016-06-06  John David Anglin  <dang...@gcc.gnu.org>

        * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
        pattern and subsequent splitters.
        (call_val_reg_64bit_post_reload): Likewise.

Index: config/pa/pa.md
===================================================================
--- config/pa/pa.md     (revision 237110)
+++ config/pa/pa.md     (working copy)
@@ -8133,7 +8133,6 @@
   [(set (match_operand 0 "" "")
        (call (mem:SI (match_operand:DI 1 "register_operand" "r"))
              (match_operand 2 "" "i")))
-   (clobber (reg:DI 1))
    (clobber (reg:DI 2))
    (clobber (match_operand 3))
    (use (reg:DI 27))
@@ -8155,7 +8154,6 @@
   [(parallel [(set (match_operand 0 "" "")
                   (call (mem:SI (match_operand:DI 1 "register_operand" ""))
                         (match_operand 2 "" "")))
-             (clobber (reg:DI 1))
              (clobber (reg:DI 2))
              (clobber (match_operand 3))
              (use (reg:DI 27))
@@ -8167,7 +8165,6 @@
    (parallel [(set (match_dup 0)
                   (call (mem:SI (match_dup 1))
                         (match_dup 2)))
-             (clobber (reg:DI 1))
              (clobber (reg:DI 2))
              (use (reg:DI 27))
              (use (reg:DI 29))
@@ -8178,7 +8175,6 @@
   [(parallel [(set (match_operand 0 "" "")
                   (call (mem:SI (match_operand:DI 1 "register_operand" ""))
                         (match_operand 2 "" "")))
-             (clobber (reg:DI 1))
              (clobber (reg:DI 2))
              (clobber (match_operand 3))
              (use (reg:DI 27))
@@ -8189,7 +8185,6 @@
    (parallel [(set (match_dup 0)
                   (call (mem:SI (match_dup 1))
                         (match_dup 2)))
-             (clobber (reg:DI 1))
              (clobber (reg:DI 2))
              (use (reg:DI 27))
              (use (reg:DI 29))
@@ -8201,7 +8196,6 @@
   [(set (match_operand 0 "" "")
        (call (mem:SI (match_operand:DI 1 "register_operand" "r"))
              (match_operand 2 "" "i")))
-   (clobber (reg:DI 1))
    (clobber (reg:DI 2))
    (use (reg:DI 27))
    (use (reg:DI 29))

Reply via email to