summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryroux <yroux@138bc75d-0d04-0410-961f-82ee72b054a4>2015-08-17 11:22:49 +0000
committeryroux <yroux@138bc75d-0d04-0410-961f-82ee72b054a4>2015-08-17 11:22:49 +0000
commit79032e78dc96828b5fc0d42c780503e8bb9b4758 (patch)
tree7b6695cc4ef9788811db73c8b6558faaaabebe9d
parent14bafad6027067fd562da0397e05c88b7e8cf337 (diff)
downloadgcc-79032e78dc96828b5fc0d42c780503e8bb9b4758.tar.gz
2015-08-17 Yvan Roux <yvan.roux@linaro.org>
Backport from mainline: 2015-08-12 Yvan Roux <yvan.roux@linaro.org> PR target/67127 * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking to ARM core registers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@226937 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/arm/arm.md4
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f74a48d8efd..b0736ed85cf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2015-08-17 Yvan Roux <yvan.roux@linaro.org>
+
+ Backport from mainline:
+ 2015-08-12 Yvan Roux <yvan.roux@linaro.org>
+
+ PR target/67127
+ * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
+ to ARM core registers.
+
2015-08-16 Uros Bizjak <ubizjak@gmail.com>
Backport from mainline:
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index f63fc39e63a..f9c23736341 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -5415,7 +5415,7 @@
if (!REG_P (operands[0]))
operands[1] = force_reg (DImode, operands[1]);
}
- if (REG_P (operands[0]) && REGNO (operands[0]) < FIRST_VIRTUAL_REGISTER
+ if (REG_P (operands[0]) && REGNO (operands[0]) <= LAST_ARM_REGNUM
&& !HARD_REGNO_MODE_OK (REGNO (operands[0]), DImode))
{
/* Avoid LDRD's into an odd-numbered register pair in ARM state
@@ -5434,7 +5434,7 @@
gen_highpart (SImode, operands[1]));
DONE;
}
- else if (REG_P (operands[1]) && REGNO (operands[1]) < FIRST_VIRTUAL_REGISTER
+ else if (REG_P (operands[1]) && REGNO (operands[1]) <= LAST_ARM_REGNUM
&& !HARD_REGNO_MODE_OK (REGNO (operands[1]), DImode))
{
/* Avoid STRD's from an odd-numbered register pair in ARM state