------- Additional Comments From uweigand at gcc dot gnu dot org 2004-10-18 12:47 ------- On s390, CANNOT_CHANGE_MODE_CLASS does indeed return false for such superclasses:
#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \ (GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) \ ? reg_classes_intersect_p (FP_REGS, CLASS) : 0) This appears to be working fine ... As I understand, regclass does indeed avoid widening the classs to one for which CANNOT_CHANGE_MODE_CLASS returns true; it does not check sub- classes. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15286