Mercurial > hg > CbC > CbC_gcc
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 |