comparison gcc/config/arm/predicates.md @ 55:77e2b8dfacca gcc-4.4.5

update it from 4.4.3 to 4.5.0
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Fri, 12 Feb 2010 23:39:51 +0900
parents a06113de4d67
children b7f97abdc517
comparison
equal deleted inserted replaced
52:c156f1bd5cd9 55:77e2b8dfacca
70 to be a register operand. */ 70 to be a register operand. */
71 return (GET_CODE (op) == REG 71 return (GET_CODE (op) == REG
72 && (REGNO (op) >= FIRST_PSEUDO_REGISTER 72 && (REGNO (op) >= FIRST_PSEUDO_REGISTER
73 || REGNO_REG_CLASS (REGNO (op)) == FPA_REGS)); 73 || REGNO_REG_CLASS (REGNO (op)) == FPA_REGS));
74 }) 74 })
75
76 (define_special_predicate "subreg_lowpart_operator"
77 (and (match_code "subreg")
78 (match_test "subreg_lowpart_p (op)")))
75 79
76 ;; Reg, subreg(reg) or const_int. 80 ;; Reg, subreg(reg) or const_int.
77 (define_predicate "reg_or_int_operand" 81 (define_predicate "reg_or_int_operand"
78 (ior (match_code "const_int") 82 (ior (match_code "const_int")
79 (match_operand 0 "s_register_operand"))) 83 (match_operand 0 "s_register_operand")))
189 193
190 ;; True for EQ & NE 194 ;; True for EQ & NE
191 (define_special_predicate "equality_operator" 195 (define_special_predicate "equality_operator"
192 (match_code "eq,ne")) 196 (match_code "eq,ne"))
193 197
194 ;; True for comparisons other than LTGT or UNEQ. 198 ;; True for integer comparisons and, if FP is active, for comparisons
199 ;; other than LTGT or UNEQ.
195 (define_special_predicate "arm_comparison_operator" 200 (define_special_predicate "arm_comparison_operator"
196 (match_code "eq,ne,le,lt,ge,gt,geu,gtu,leu,ltu,unordered,ordered,unlt,unle,unge,ungt")) 201 (ior (match_code "eq,ne,le,lt,ge,gt,geu,gtu,leu,ltu")
202 (and (match_test "TARGET_32BIT && TARGET_HARD_FLOAT
203 && (TARGET_FPA || TARGET_VFP)")
204 (match_code "unordered,ordered,unlt,unle,unge,ungt"))))
197 205
198 (define_special_predicate "minmax_operator" 206 (define_special_predicate "minmax_operator"
199 (and (match_code "smin,smax,umin,umax") 207 (and (match_code "smin,smax,umin,umax")
200 (match_test "mode == GET_MODE (op)"))) 208 (match_test "mode == GET_MODE (op)")))
201 209
229 || mode == CC_DGTUmode)); 237 || mode == CC_DGTUmode));
230 }) 238 })
231 239
232 (define_special_predicate "arm_extendqisi_mem_op" 240 (define_special_predicate "arm_extendqisi_mem_op"
233 (and (match_operand 0 "memory_operand") 241 (and (match_operand 0 "memory_operand")
234 (match_test "arm_legitimate_address_p (mode, XEXP (op, 0), SIGN_EXTEND, 242 (match_test "arm_legitimate_address_outer_p (mode, XEXP (op, 0),
235 0)"))) 243 SIGN_EXTEND, 0)")))
236 244
237 (define_special_predicate "arm_reg_or_extendqisi_mem_op" 245 (define_special_predicate "arm_reg_or_extendqisi_mem_op"
238 (ior (match_operand 0 "arm_extendqisi_mem_op") 246 (ior (match_operand 0 "arm_extendqisi_mem_op")
239 (match_operand 0 "s_register_operand"))) 247 (match_operand 0 "s_register_operand")))
240 248