[PATCH 4/8] S/390: Fix s390_secondary_reload register class check.
Andreas Krebbel
krebbel@linux.vnet.ibm.com
Wed Jun 24 07:10:00 GMT 2015
The current check does not work as expected with mixed register
classes and also does not handle NO_REGS correctly.
gcc/ChangeLog:
* config/s390/s390.c (s390_secondary_reload): Fix check for
GENERAL_REGS register class.
---
gcc/config/s390/s390.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 80a2c89..a5aab5d 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -4045,7 +4045,7 @@ s390_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i,
if (MEM_P (x)
&& s390_loadrelative_operand_p (XEXP (x, 0), NULL, NULL)
&& (mode == QImode
- || !reg_classes_intersect_p (GENERAL_REGS, rclass)
+ || !reg_class_subset_p (rclass, GENERAL_REGS)
|| GET_MODE_SIZE (mode) > UNITS_PER_WORD
|| !s390_check_symref_alignment (XEXP (x, 0),
GET_MODE_SIZE (mode))))
--
1.7.9.5
More information about the Gcc-patches
mailing list