This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/19528] [4.0 regression] missing ra.h
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 19 Jan 2005 12:22:00 -0000
- Subject: [Bug target/19528] [4.0 regression] missing ra.h
- References: <20050119095203.19528.corsepiu@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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