aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeorg-Johann Lay <avr@gjlay.de>2016-06-21 10:10:46 +0000
committerGeorg-Johann Lay <gjl@gcc.gnu.org>2016-06-21 10:10:46 +0000
commit4e1eac56b437f28903bfd95daf11fee1c1ca74aa (patch)
tree50ae1d5cfe91fbd874bc9ea33926d28e9a38d373 /gcc
parent0ad84f34fc91885b187c302c8abf1dd6bae4a671 (diff)
downloadgcc-4e1eac56b437f28903bfd95daf11fee1c1ca74aa.zip
gcc-4e1eac56b437f28903bfd95daf11fee1c1ca74aa.tar.gz
gcc-4e1eac56b437f28903bfd95daf11fee1c1ca74aa.tar.bz2
re PR target/71103 (avr-gcc crashes with unrecognizable insn error)
PR target/71103 * config/avr/avr.md (movqi): Only handle loading subreg:qi of constant addresses if can_create_pseudo_p. From-SVN: r237635
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/avr/avr.md5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 14b8030..7927454 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-06-21 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/71103
+ * config/avr/avr.md (movqi): Only handle loading subreg:qi of
+ constant addresses if can_create_pseudo_p.
+
2016-06-21 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/71588
diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md
index aac8301..98951865 100644
--- a/gcc/config/avr/avr.md
+++ b/gcc/config/avr/avr.md
@@ -643,8 +643,9 @@
if (QImode == <MODE>mode
&& SUBREG_P (src)
- && CONSTANT_ADDRESS_P (SUBREG_REG (src)))
- {
+ && CONSTANT_ADDRESS_P (SUBREG_REG (src))
+ && can_create_pseudo_p())
+ {
// store_bitfield may want to store a SYMBOL_REF or CONST in a
// structure that's represented as PSImode. As the upper 16 bits
// of PSImode cannot be expressed as an HImode subreg, the rhs is