This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Bootstrap fails with recently CVS'd sources on alphaev6-unknown-linux-gnu.


On Mon, May 29, 2000 at 02:14:26PM -0700, Richard Henderson wrote:
> I know.  I believe it to be a bug in genrecog, but have yet to find it.

To my surprise, apparently there's no correlation to be drawn
from the pattern being matched and the insn that it belongs to.
Certainly they don't match during recog_for_combine...

So I'll try to be a little less clever next time.


r~


        * config/alpha/alpha.md (*setne_internal): Use match_operator
        instead of working down from insn.

Index: config/alpha/alpha.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/alpha/alpha.md,v
retrieving revision 1.123
diff -c -p -d -r1.123 alpha.md
*** alpha.md	2000/05/29 07:52:26	1.123
--- alpha.md	2000/05/30 15:50:10
***************
*** 2520,2535 ****
  ;; Next are all the integer comparisons, and conditional moves and branches
  ;; and some of the related define_expand's and define_split's.
  
- (define_insn "*setne_internal"
-   [(set (match_operand 0 "register_operand" "=r")
- 	(ne (match_operand:DI 1 "reg_or_8bit_operand" "rI")
- 	    (const_int 0)))]
-   "GET_MODE_CLASS (GET_MODE (operands[0])) == MODE_INT
-    && GET_MODE_SIZE (GET_MODE (operands[0])) <= 8
-    && GET_MODE (operands[0]) == GET_MODE (SET_SRC (PATTERN (insn)))"
-   "cmpult $31,%1,%0"
-   [(set_attr "type" "icmp")])
- 
  (define_insn "*setcc_internal"
    [(set (match_operand 0 "register_operand" "=r")
  	(match_operator 1 "alpha_comparison_operator"
--- 2520,2525 ----
***************
*** 2550,2555 ****
--- 2540,2557 ----
     && GET_MODE_SIZE (GET_MODE (operands[0])) <= 8
     && GET_MODE (operands[0]) == GET_MODE (operands[1])"
    "cmp%c1 %r3,%2,%0"
+   [(set_attr "type" "icmp")])
+ 
+ (define_insn "*setne_internal"
+   [(set (match_operand 0 "register_operand" "=r")
+ 	(match_operator 1 "signed_comparison_operator"
+ 			  [(match_operand:DI 2 "reg_or_8bit_operand" "rI")
+ 			   (const_int 0)]))]
+   "GET_MODE_CLASS (GET_MODE (operands[0])) == MODE_INT
+    && GET_MODE_SIZE (GET_MODE (operands[0])) <= 8
+    && GET_CODE (operands[1]) == NE
+    && GET_MODE (operands[0]) == GET_MODE (operands[1])"
+   "cmpult $31,%2,%0"
    [(set_attr "type" "icmp")])
  
  ;; The mode folding trick can't be used with const_int operands, since

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]