33 lines
1.4 KiB
Diff
33 lines
1.4 KiB
Diff
2019-02-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
PR bootstrap/88714
|
|
* config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
|
|
instead of r.
|
|
|
|
--- gcc/config/arm/ldrdstrd.md.jj 2019-02-08 11:25:42.368916124 +0100
|
|
+++ gcc/config/arm/ldrdstrd.md 2019-02-08 12:38:33.647585108 +0100
|
|
@@ -157,9 +157,9 @@ (define_peephole2 ; swap the destination
|
|
;; We use gen_operands_ldrd_strd() with a modify argument as false so that the
|
|
;; operands are not changed.
|
|
(define_insn "*arm_ldrd"
|
|
- [(parallel [(set (match_operand:SI 0 "s_register_operand" "=r")
|
|
+ [(parallel [(set (match_operand:SI 0 "s_register_operand" "=q")
|
|
(match_operand:SI 2 "memory_operand" "m"))
|
|
- (set (match_operand:SI 1 "s_register_operand" "=r")
|
|
+ (set (match_operand:SI 1 "s_register_operand" "=q")
|
|
(match_operand:SI 3 "memory_operand" "m"))])]
|
|
"TARGET_LDRD && TARGET_ARM && reload_completed
|
|
&& valid_operands_ldrd_strd (operands, true)"
|
|
@@ -178,9 +178,9 @@ (define_insn "*arm_ldrd"
|
|
|
|
(define_insn "*arm_strd"
|
|
[(parallel [(set (match_operand:SI 2 "memory_operand" "=m")
|
|
- (match_operand:SI 0 "s_register_operand" "r"))
|
|
+ (match_operand:SI 0 "s_register_operand" "q"))
|
|
(set (match_operand:SI 3 "memory_operand" "=m")
|
|
- (match_operand:SI 1 "s_register_operand" "r"))])]
|
|
+ (match_operand:SI 1 "s_register_operand" "q"))])]
|
|
"TARGET_LDRD && TARGET_ARM && reload_completed
|
|
&& valid_operands_ldrd_strd (operands, false)"
|
|
{
|