aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2016-09-26 14:52:03 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2016-09-26 14:52:03 +0000
commita943bb7fcd9e251ee4192478561cea62ab54a7d8 (patch)
tree00f000d6af08c61e66048c948c6e08d6d6f4e5a9
parent1d92cba91be69be5d1baaca46b834d6b8d780acd (diff)
downloadgcc-a943bb7fcd9e251ee4192478561cea62ab54a7d8.zip
gcc-a943bb7fcd9e251ee4192478561cea62ab54a7d8.tar.gz
gcc-a943bb7fcd9e251ee4192478561cea62ab54a7d8.tar.bz2
[regrename][sel-sched] Fix bogus use of HARD_FRAME_POINTER_REGNUM (was: Fix arm bootstrap)
* regrename.c (rename_chains): Check HARD_FRAME_POINTER_IS_FRAME_POINTER rather than HARD_FRAME_POINTER_REGNUM when picking unavailable registers. * sel-sched.c (mark_unavailable_hard_regs): Likewise. Co-Authored-By: Alexander Monakov <amonakov@ispras.ru> From-SVN: r240496
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/regrename.c2
-rw-r--r--gcc/sel-sched.c2
3 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bdebe60..707b55f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+ Alexander Monakov <amonakov@ispras.ru>
+
+ * regrename.c (rename_chains): Check
+ HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
+ HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
+ * sel-sched.c (mark_unavailable_hard_regs): Likewise.
+
2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
diff --git a/gcc/regrename.c b/gcc/regrename.c
index 54c7768..3509e8b 100644
--- a/gcc/regrename.c
+++ b/gcc/regrename.c
@@ -481,7 +481,7 @@ rename_chains (void)
if (fixed_regs[reg] || global_regs[reg]
|| (!HARD_FRAME_POINTER_IS_FRAME_POINTER && frame_pointer_needed
&& reg == HARD_FRAME_POINTER_REGNUM)
- || (HARD_FRAME_POINTER_REGNUM && frame_pointer_needed
+ || (HARD_FRAME_POINTER_IS_FRAME_POINTER && frame_pointer_needed
&& reg == FRAME_POINTER_REGNUM))
continue;
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c
index 1ed0d4b..2968bdf 100644
--- a/gcc/sel-sched.c
+++ b/gcc/sel-sched.c
@@ -1185,7 +1185,7 @@ mark_unavailable_hard_regs (def_t def, struct reg_rename *reg_rename_p,
|| global_regs[regno]
|| (!HARD_FRAME_POINTER_IS_FRAME_POINTER && frame_pointer_needed
&& regno == HARD_FRAME_POINTER_REGNUM)
- || (HARD_FRAME_POINTER_REGNUM && frame_pointer_needed
+ || (HARD_FRAME_POINTER_IS_FRAME_POINTER && frame_pointer_needed
&& regno == FRAME_POINTER_REGNUM)
|| (reload_completed && cl == NO_REGS))
{