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))