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