diff options
author | Anatoly Sokolov <aesok@post.ru> | 2008-09-12 20:45:34 +0400 |
---|---|---|
committer | Anatoly Sokolov <aesok@gcc.gnu.org> | 2008-09-12 20:45:34 +0400 |
commit | 6ff5d1e44709af28c0b4982c914f1a5e3fa5a0f2 (patch) | |
tree | c9bc99bac4c8d764ad203d538ae9878e8ae7582c /gcc/config/avr | |
parent | 0a317111c89223ebc8ec82e7f35f72578d941b59 (diff) | |
download | gcc-6ff5d1e44709af28c0b4982c914f1a5e3fa5a0f2.zip gcc-6ff5d1e44709af28c0b4982c914f1a5e3fa5a0f2.tar.gz gcc-6ff5d1e44709af28c0b4982c914f1a5e3fa5a0f2.tar.bz2 |
re PR target/37466 ([AVR] avr-gcc generating incorrect assembly for expression with the long constant operands)
PR target/37466
* config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
scratch register after 'set' pattern.
From-SVN: r140321
Diffstat (limited to 'gcc/config/avr')
-rw-r--r-- | gcc/config/avr/avr.md | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md index 8dad9d8..7a46a33 100644 --- a/gcc/config/avr/avr.md +++ b/gcc/config/avr/avr.md @@ -391,10 +391,11 @@ -(define_peephole2 +(define_peephole2 ; movsi_lreg_const [(match_scratch:QI 2 "d") (set (match_operand:SI 0 "l_register_operand" "") - (match_operand:SI 1 "immediate_operand" ""))] + (match_operand:SI 1 "immediate_operand" "")) + (match_dup 2)] "(operands[1] != const0_rtx && operands[1] != constm1_rtx)" [(parallel [(set (match_dup 0) (match_dup 1)) |