[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