diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 2014-05-31 12:08:25 +0000 |
---|---|---|
committer | Andreas Schwab <schwab@gcc.gnu.org> | 2014-05-31 12:08:25 +0000 |
commit | aef1bf3b550bff7f5236b0fe495fe32f74cc9be0 (patch) | |
tree | 09f4b81287213c19ddf2c42a9cd1590fa2c5febf /gcc | |
parent | f10743d3f70d5c241c2b1c3b9ac10f5efc4ee946 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.md | 14 |
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 |