aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2013-12-20 14:37:53 +0000
committerYvan Roux <yroux@gcc.gnu.org>2013-12-20 14:37:53 +0000
commit1fc017b632c79110bfd8db534e76b81318cb7530 (patch)
tree425119c0f8eed60c89cd49a9bbdfc6ffed783023 /gcc
parent706f749ad8c243cf349169296b8d501348ecb70d (diff)
downloadgcc-1fc017b632c79110bfd8db534e76b81318cb7530.zip
gcc-1fc017b632c79110bfd8db534e76b81318cb7530.tar.gz
gcc-1fc017b632c79110bfd8db534e76b81318cb7530.tar.bz2
arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Return NO_REGS for LRA.
2013-12-20 Vladimir Makarov <vmakarov@redhat.com> * config/arm/arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Return NO_REGS for LRA. From-SVN: r206150
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.h11
2 files changed, 11 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9de43b1..bc9f5a3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-12-20 Vladimir Makarov <vmakarov@redhat.com>
+
+ * config/arm/arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Return NO_REGS
+ for LRA.
+
2013-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm_acle.h: Add underscores before variables.
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index fb5ce1c..288ff8b 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -1296,11 +1296,12 @@ enum reg_class
: NO_REGS))
#define THUMB_SECONDARY_OUTPUT_RELOAD_CLASS(CLASS, MODE, X) \
- ((CLASS) != LO_REGS && (CLASS) != BASE_REGS \
- ? ((true_regnum (X) == -1 ? LO_REGS \
- : (true_regnum (X) + HARD_REGNO_NREGS (0, MODE) > 8) ? LO_REGS \
- : NO_REGS)) \
- : NO_REGS)
+ (lra_in_progress ? NO_REGS \
+ : (CLASS) != LO_REGS && (CLASS) != BASE_REGS \
+ ? ((true_regnum (X) == -1 ? LO_REGS \
+ : (true_regnum (X) + HARD_REGNO_NREGS (0, MODE) > 8) ? LO_REGS \
+ : NO_REGS)) \
+ : NO_REGS)
/* Return the register class of a scratch register needed to copy IN into
or out of a register in CLASS in MODE. If it can be done directly,