aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2018-06-01 08:22:13 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2018-06-01 08:22:13 +0000
commit67e5c59afb1696a624bdd2c49ada60db52158af4 (patch)
tree0cb77f2b237cf10774d6e0f6be7a41986f229114 /gcc
parent07205c411f31eb5f433049461e0622f4681b2dca (diff)
downloadgcc-67e5c59afb1696a624bdd2c49ada60db52158af4.zip
gcc-67e5c59afb1696a624bdd2c49ada60db52158af4.tar.gz
gcc-67e5c59afb1696a624bdd2c49ada60db52158af4.tar.bz2
Fix SVE fallout from r260951
2018-06-01 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class): Fix subreg tests so that we only return a choice between GENERAL_REGS and FP_REGS if the original classes included both. From-SVN: r261057
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/aarch64/aarch64.c8
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7adafed..9035e67c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2018-06-01 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
+ Fix subreg tests so that we only return a choice between
+ GENERAL_REGS and FP_REGS if the original classes included both.
+
2018-06-01 Richard Biener <rguenther@suse.de>
PR ipa/85960
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index c94f709..98ef457 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -1108,12 +1108,12 @@ aarch64_ira_change_pseudo_allocno_class (int regno, reg_class_t allocno_class,
{
machine_mode mode;
- if (reg_class_subset_p (allocno_class, GENERAL_REGS)
- || reg_class_subset_p (allocno_class, FP_REGS))
+ if (!reg_class_subset_p (GENERAL_REGS, allocno_class)
+ || !reg_class_subset_p (FP_REGS, allocno_class))
return allocno_class;
- if (reg_class_subset_p (best_class, GENERAL_REGS)
- || reg_class_subset_p (best_class, FP_REGS))
+ if (!reg_class_subset_p (GENERAL_REGS, best_class)
+ || !reg_class_subset_p (FP_REGS, best_class))
return best_class;
mode = PSEUDO_REGNO_MODE (regno);