diff mbox

[1/3] rs6000: Fix for AIX, for r239866

Message ID e65f2351f66effdf67cc1231155a27c85af37963.1472682301.git.segher@kernel.crashing.org
State New
Headers show

Commit Message

Segher Boessenkool Sept. 1, 2016, 12:49 a.m. UTC
This should fix r239866 for AIX.  I missed two patterns that refer to LR
as "register_operand" "l" instead of as reg:P LR_REGNO.

David, could you please test if this fixes the problem for you?

Bootstrapped and regression checked on powerpc64-linux -m32,-m64, for
what that is worth :-)


Segher


2016-08-31  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md
	(define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
	the use of the link register.
	(define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.

---
 gcc/config/rs6000/rs6000.md | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)
diff mbox

Patch

diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 560cf1f..d86d27b 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -12735,26 +12735,24 @@  (define_insn "*return_and_restore_fpregs_<mode>_r1"
 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"
  [(match_parallel 0 "any_parallel_operand"
 		  [(return)
-		   (use (match_operand:P 1 "register_operand" "l"))
-		   (use (match_operand:P 2 "symbol_ref_operand" "s"))
+		   (use (match_operand:P 1 "symbol_ref_operand" "s"))
 		   (use (reg:P 11))
-		   (set (match_operand:DF 3 "gpc_reg_operand" "=d")
-			(match_operand:DF 4 "memory_operand" "m"))])]
+		   (set (match_operand:DF 2 "gpc_reg_operand" "=d")
+			(match_operand:DF 3 "memory_operand" "m"))])]
  ""
- "b %2"
+ "b %1"
  [(set_attr "type" "branch")
   (set_attr "length" "4")])
 
 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"
  [(match_parallel 0 "any_parallel_operand"
 		  [(return)
-		   (use (match_operand:P 1 "register_operand" "l"))
-		   (use (match_operand:P 2 "symbol_ref_operand" "s"))
+		   (use (match_operand:P 1 "symbol_ref_operand" "s"))
 		   (use (reg:P 1))
-		   (set (match_operand:DF 3 "gpc_reg_operand" "=d")
-			(match_operand:DF 4 "memory_operand" "m"))])]
+		   (set (match_operand:DF 2 "gpc_reg_operand" "=d")
+			(match_operand:DF 3 "memory_operand" "m"))])]
  ""
- "b %2"
+ "b %1"
  [(set_attr "type" "branch")
   (set_attr "length" "4")])