aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2014-05-31 12:08:25 +0000
committerAndreas Schwab <schwab@gcc.gnu.org>2014-05-31 12:08:25 +0000
commitaef1bf3b550bff7f5236b0fe495fe32f74cc9be0 (patch)
tree09f4b81287213c19ddf2c42a9cd1590fa2c5febf /gcc
parentf10743d3f70d5c241c2b1c3b9ac10f5efc4ee946 (diff)
downloadgcc-aef1bf3b550bff7f5236b0fe495fe32f74cc9be0.zip
gcc-aef1bf3b550bff7f5236b0fe495fe32f74cc9be0.tar.gz
gcc-aef1bf3b550bff7f5236b0fe495fe32f74cc9be0.tar.bz2
Summary: m68k: add missing early clobber in beq0_di, bne0_di patterns
* config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint a separate alternative where the scratch operand 2 is marked as early clobber. From-SVN: r211104
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/m68k/m68k.md14
2 files changed, 13 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 504fdfb..60ef5c6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
+
+ * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
+ a separate alternative where the scratch operand 2 is marked as
+ early clobber.
+
2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
* config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index 72c11f5..d088764 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -5954,15 +5954,15 @@
(define_insn "beq0_di"
[(set (pc)
- (if_then_else (eq (match_operand:DI 0 "general_operand" "d*ao,<>")
+ (if_then_else (eq (match_operand:DI 0 "general_operand" "d*a,o,<>")
(const_int 0))
- (label_ref (match_operand 1 "" ","))
+ (label_ref (match_operand 1 "" ",,"))
(pc)))
- (clobber (match_scratch:SI 2 "=d,d"))]
+ (clobber (match_scratch:SI 2 "=d,&d,d"))]
""
{
CC_STATUS_INIT;
- if (which_alternative == 1)
+ if (which_alternative == 2)
return "move%.l %0,%2\;or%.l %0,%2\;jeq %l1";
if ((cc_prev_status.value1
&& rtx_equal_p (cc_prev_status.value1, operands[0]))
@@ -5999,11 +5999,11 @@
(define_insn "bne0_di"
[(set (pc)
- (if_then_else (ne (match_operand:DI 0 "general_operand" "do,*a")
+ (if_then_else (ne (match_operand:DI 0 "general_operand" "d,o,*a")
(const_int 0))
- (label_ref (match_operand 1 "" ","))
+ (label_ref (match_operand 1 "" ",,"))
(pc)))
- (clobber (match_scratch:SI 2 "=d,X"))]
+ (clobber (match_scratch:SI 2 "=d,&d,X"))]
""
{
if ((cc_prev_status.value1