------- Additional Comments From steven at gcc dot gnu dot org 2005-01-19 12:21 ------- I am not even going to try and look surprised, the SH port is a major abuser of the middle-end. But of course, hard_regs_intersect_p should have been in hard-reg-set.h from the start, *sigh*, mess-meets-mess. Try this: Index: hard-reg-set.h =================================================================== RCS file: /cvs/gcc/gcc/gcc/hard-reg-set.h,v retrieving revision 1.25 diff -u -3 -p -r1.25 hard-reg-set.h --- hard-reg-set.h 15 Jan 2005 16:06:14 -0000 1.25 +++ hard-reg-set.h 19 Jan 2005 12:21:01 -0000 @@ -499,4 +499,19 @@ extern const char * reg_class_names[]; #define REG_CANNOT_CHANGE_MODE_P(REGN, FROM, TO) \ CANNOT_CHANGE_MODE_CLASS (FROM, TO, REGNO_REG_CLASS (REGN)) +/* Determine if two hard register sets intersect. + Return 1 if they do. */ + +static inline bool +hard_regs_intersect_p (HARD_REG_SET *a, HARD_REG_SET *b) +{ + HARD_REG_SET c; + COPY_HARD_REG_SET (c, *a); + AND_HARD_REG_SET (c, *b); + GO_IF_HARD_REG_SUBSET (c, reg_class_contents[(int) NO_REGS], lose); + return 1; +lose: + return 0; +} + #endif /* ! GCC_HARD_REG_SET_H */
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19528