[Bug target/19528] [4.0 regression] missing ra.h

steven at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Wed Jan 19 12:22:00 GMT 2005


------- 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



More information about the Gcc-bugs mailing list