aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/lra-constraints.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/arm/pr65729.c9
4 files changed, 21 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6e1f145..d4755f9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2015-04-14 Yvan Roux <yvan.roux@linaro.org>
+
+ PR target/65729
+ * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
+ the assertiion.
+
2015-04-14 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.h (LEGACY_INT_REG_P): New define.
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
index 7353e7c..90f351b 100644
--- a/gcc/lra-constraints.c
+++ b/gcc/lra-constraints.c
@@ -1656,8 +1656,7 @@ prohibited_class_reg_set_mode_p (enum reg_class rclass,
{
HARD_REG_SET temp;
- // ??? Is this assert right
- // lra_assert (hard_reg_set_subset_p (set, reg_class_contents[rclass]));
+ lra_assert (hard_reg_set_subset_p (reg_class_contents[rclass], set));
COPY_HARD_REG_SET (temp, set);
AND_COMPL_HARD_REG_SET (temp, lra_no_alloc_regs);
return (hard_reg_set_subset_p
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6d2d5de..2f6ef32 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2015-04-14 Yvan Roux <yvan.roux@linaro.org>
+
+ PR target/65729
+ * gcc.target/arm/pr65729.c: New test.
+
2015-04-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/65758
diff --git a/gcc/testsuite/gcc.target/arm/pr65729.c b/gcc/testsuite/gcc.target/arm/pr65729.c
new file mode 100644
index 0000000..0d7e3c1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/pr65729.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16" } */
+
+int foo (void)
+{
+ double x = 0.0;
+ asm volatile ("" : "+gw" (x));
+ return x;
+}