comparison gcc/config/m32c/predicates.md @ 67:f6334be47118

update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Mar 2011 17:18:12 +0900
parents a06113de4d67
children 04ced10e8804
comparison
equal deleted inserted replaced
65:65488c3d617d 67:f6334be47118
1 ;; Machine Descriptions for R8C/M16C/M32C 1 ;; Machine Descriptions for R8C/M16C/M32C
2 ;; Copyright (C) 2005, 2007, 2008 2 ;; Copyright (C) 2005, 2007, 2008, 2010
3 ;; Free Software Foundation, Inc. 3 ;; Free Software Foundation, Inc.
4 ;; Contributed by Red Hat. 4 ;; Contributed by Red Hat.
5 ;; 5 ;;
6 ;; This file is part of GCC. 6 ;; This file is part of GCC.
7 ;; 7 ;;
24 ; TRUE for any valid operand. We do this because general_operand 24 ; TRUE for any valid operand. We do this because general_operand
25 ; refuses to match volatile memory refs. 25 ; refuses to match volatile memory refs.
26 26
27 (define_predicate "m32c_any_operand" 27 (define_predicate "m32c_any_operand"
28 (ior (match_operand 0 "general_operand") 28 (ior (match_operand 0 "general_operand")
29 (match_operand 1 "memory_operand")) 29 (match_code "mem,const_int,const_double"))
30 { 30 {
31 return ! m32c_illegal_subreg_p (op); 31 return ! m32c_illegal_subreg_p (op);
32 } 32 }
33 ) 33 )
34 34
35 ; Likewise for nonimmediate_operand. 35 ; Likewise for nonimmediate_operand.
36 36
37 (define_predicate "m32c_nonimmediate_operand" 37 (define_predicate "m32c_nonimmediate_operand"
38 (ior (match_operand 0 "nonimmediate_operand") 38 (ior (match_operand 0 "nonimmediate_operand")
39 (match_operand 1 "memory_operand"))) 39 (match_code "mem"))
40 {
41 return ! m32c_illegal_subreg_p (op);
42 }
43 )
40 44
41 ; TRUE if the operand is a pseudo-register. 45 ; TRUE if the operand is a pseudo-register.
42 (define_predicate "m32c_pseudo" 46 (define_predicate "m32c_pseudo"
43 (ior (and (match_code "reg") 47 (ior (and (match_code "reg")
44 (match_test "REGNO(op) >= FIRST_PSEUDO_REGISTER")) 48 (match_test "REGNO(op) >= FIRST_PSEUDO_REGISTER"))
133 (not (match_operand 1 "cr_operand" ""))) 137 (not (match_operand 1 "cr_operand" "")))
134 (not (match_operand 2 "m32c_wide_subreg" "")))) 138 (not (match_operand 2 "m32c_wide_subreg" ""))))
135 139
136 ; Likewise, plus TRUE for memory references. 140 ; Likewise, plus TRUE for memory references.
137 (define_predicate "mra_operand" 141 (define_predicate "mra_operand"
138 (and (and (match_operand 0 "nonimmediate_operand" "") 142 (and (and (match_operand 0 "m32c_nonimmediate_operand" "")
139 (not (match_operand 1 "cr_operand" ""))) 143 (not (match_operand 1 "cr_operand" "")))
140 (not (match_operand 2 "m32c_wide_subreg" "")))) 144 (not (match_operand 2 "m32c_wide_subreg" ""))))
141 145
142 ; Likewise, plus TRUE for subregs. 146 ; Likewise, plus TRUE for subregs.
143 (define_predicate "mras_operand" 147 (define_predicate "mras_operand"