Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/m32c/constraints.md @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 ;; m32c constraints | |
2 ;; Copyright (C) 2012-2017 Free Software Foundation, Inc. | |
3 ;; | |
4 ;; This file is part of GCC. | |
5 ;; | |
6 ;; GCC is free software; you can redistribute it and/or modify it | |
7 ;; under the terms of the GNU General Public License as published by | |
8 ;; the Free Software Foundation; either version 3, or (at your option) | |
9 ;; any later version. | |
10 ;; | |
11 ;; GCC is distributed in the hope that it will be useful, but WITHOUT | |
12 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
13 ;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public | |
14 ;; License for more details. | |
15 ;; | |
16 ;; You should have received a copy of the GNU General Public License | |
17 ;; along with GCC; see the file COPYING3. If not see | |
18 ;; <http://www.gnu.org/licenses/>. | |
19 | |
20 (define_register_constraint "Rsp" "SP_REGS" | |
21 "@internal") | |
22 | |
23 (define_register_constraint "Rfb" "FB_REGS" | |
24 "@internal") | |
25 | |
26 (define_register_constraint "Rsb" "SB_REGS" | |
27 "@internal") | |
28 | |
29 (define_register_constraint "Rcr" "TARGET_A16 ? CR_REGS : NO_REGS" | |
30 "@internal") | |
31 | |
32 (define_register_constraint "Rcl" "TARGET_A24 ? CR_REGS : NO_REGS" | |
33 "@internal") | |
34 | |
35 (define_register_constraint "R0w" "R0_REGS" | |
36 "@internal") | |
37 | |
38 (define_register_constraint "R1w" "R1_REGS" | |
39 "@internal") | |
40 | |
41 (define_register_constraint "R2w" "R2_REGS" | |
42 "@internal") | |
43 | |
44 (define_register_constraint "R3w" "R3_REGS" | |
45 "@internal") | |
46 | |
47 (define_register_constraint "R02" "R02_REGS" | |
48 "@internal") | |
49 | |
50 (define_register_constraint "R13" "R13_REGS" | |
51 "@internal") | |
52 | |
53 (define_register_constraint "R03" "R03_REGS" | |
54 "@internal") | |
55 | |
56 (define_register_constraint "Rdi" "DI_REGS" | |
57 "@internal") | |
58 | |
59 (define_register_constraint "Rhl" "HL_REGS" | |
60 "@internal") | |
61 | |
62 (define_register_constraint "R23" "R23_REGS" | |
63 "@internal") | |
64 | |
65 (define_register_constraint "Ra0" "A0_REGS" | |
66 "@internal") | |
67 | |
68 (define_register_constraint "Ra1" "A1_REGS" | |
69 "@internal") | |
70 | |
71 (define_register_constraint "Raa" "A_REGS" | |
72 "@internal") | |
73 | |
74 (define_register_constraint "Raw" "TARGET_A16 ? A_REGS : NO_REGS" | |
75 "@internal") | |
76 | |
77 (define_register_constraint "Ral" "TARGET_A24 ? A_REGS : NO_REGS" | |
78 "@internal") | |
79 | |
80 (define_register_constraint "Rqi" "QI_REGS" | |
81 "@internal") | |
82 | |
83 (define_register_constraint "Rad" "AD_REGS" | |
84 "@internal") | |
85 | |
86 (define_register_constraint "Rsi" "SI_REGS" | |
87 "@internal") | |
88 | |
89 (define_register_constraint "Rhi" "HI_REGS" | |
90 "@internal") | |
91 | |
92 (define_register_constraint "Rhc" "HC_REGS" | |
93 "@internal") | |
94 | |
95 (define_register_constraint "Rra" "RA_REGS" | |
96 "@internal") | |
97 | |
98 (define_register_constraint "Rfl" "FLG_REGS" | |
99 "@internal") | |
100 | |
101 (define_register_constraint "Rmm" "fixed_regs[MEM0_REGNO] ? NO_REGS : MEM_REGS" | |
102 "@internal") | |
103 | |
104 (define_register_constraint "Rpi" "TARGET_A16 ? HI_REGS : RA_REGS" | |
105 "@internal") | |
106 | |
107 ;;; For integer constant constraints: | |
108 ;;; s=signed u=unsigned n=nonzero m=minus l=log2able, | |
109 ;;; [sun] bits [SUN] bytes, p=pointer size | |
110 ;;; I[-0-9][0-9] matches that number | |
111 | |
112 (define_constraint "Is3" | |
113 "@internal" | |
114 (and (match_code "const_int") | |
115 (match_test "IN_RANGE (ival, -8, 7)"))) | |
116 | |
117 (define_constraint "IS1" | |
118 "@internal" | |
119 (and (match_code "const_int") | |
120 (match_test "IN_RANGE (ival, -128, 127)"))) | |
121 | |
122 (define_constraint "IS2" | |
123 "@internal" | |
124 (and (match_code "const_int") | |
125 (match_test "IN_RANGE (ival, -32768, 32767)"))) | |
126 | |
127 (define_constraint "IU2" | |
128 "@internal" | |
129 (and (match_code "const_int") | |
130 (match_test "IN_RANGE (ival, 0, 65535)"))) | |
131 | |
132 (define_constraint "IU3" | |
133 "@internal" | |
134 (and (match_code "const_int") | |
135 (match_test "IN_RANGE (ival, 0, 0x00ffffff)"))) | |
136 | |
137 (define_constraint "In4" | |
138 "@internal" | |
139 (and (match_code "const_int") | |
140 (match_test "IN_RANGE (ival, -8, 8) && ival"))) | |
141 | |
142 (define_constraint "In5" | |
143 "@internal" | |
144 (and (match_code "const_int") | |
145 (match_test "IN_RANGE (ival, -16, 16) && ival"))) | |
146 | |
147 (define_constraint "In6" | |
148 "@internal" | |
149 (and (match_code "const_int") | |
150 (match_test "IN_RANGE (ival, -32, 32) && ival"))) | |
151 | |
152 (define_constraint "IM2" | |
153 "@internal" | |
154 (and (match_code "const_int") | |
155 (match_test "IN_RANGE (ival, -65536, -1)"))) | |
156 | |
157 (define_constraint "Ilb" | |
158 "@internal" | |
159 (and (match_code "const_int") | |
160 (match_test "IN_RANGE (exact_log2 (ival), 0, 7)"))) | |
161 | |
162 (define_constraint "Imb" | |
163 "@internal" | |
164 (and (match_code "const_int") | |
165 (match_test "IN_RANGE (exact_log2 ((ival ^ 0xff) & 0xff), 0, 7)"))) | |
166 | |
167 (define_constraint "ImB" | |
168 "@internal" | |
169 (and (match_code "const_int") | |
170 (match_test "IN_RANGE (exact_log2 ((ival ^ 0xffff) & 0xffff), 0, 7)"))) | |
171 | |
172 (define_constraint "Ilw" | |
173 "@internal" | |
174 (and (match_code "const_int") | |
175 (match_test "IN_RANGE (exact_log2 (ival), 0, 15)"))) | |
176 | |
177 (define_constraint "Imw" | |
178 "@internal" | |
179 (and (match_code "const_int") | |
180 (match_test "IN_RANGE (exact_log2 ((ival ^ 0xffff) & 0xffff), 0, 15)"))) | |
181 | |
182 (define_constraint "I00" | |
183 "@internal" | |
184 (and (match_code "const_int") | |
185 (match_test "ival == 0"))) | |
186 | |
187 (define_memory_constraint "SF" | |
188 "@internal" | |
189 (match_test "m32c_matches_constraint_p (op, CONSTRAINT_SF)")) | |
190 | |
191 (define_memory_constraint "Sd" | |
192 "@internal" | |
193 (match_test "m32c_matches_constraint_p (op, CONSTRAINT_Sd)")) | |
194 | |
195 (define_memory_constraint "Sa" | |
196 "@internal" | |
197 (match_test "m32c_matches_constraint_p (op, CONSTRAINT_Sa)")) | |
198 | |
199 (define_memory_constraint "Si" | |
200 "@internal" | |
201 (match_test "m32c_matches_constraint_p (op, CONSTRAINT_Si)")) | |
202 | |
203 (define_memory_constraint "Ss" | |
204 "@internal" | |
205 (match_test "m32c_matches_constraint_p (op, CONSTRAINT_Ss)")) | |
206 | |
207 (define_memory_constraint "Sf" | |
208 "@internal" | |
209 (match_test "m32c_matches_constraint_p (op, CONSTRAINT_Sf)")) | |
210 | |
211 (define_memory_constraint "Sb" | |
212 "@internal" | |
213 (match_test "m32c_matches_constraint_p (op, CONSTRAINT_Sb)")) | |
214 | |
215 (define_memory_constraint "Sp" | |
216 "@internal" | |
217 (match_test "m32c_matches_constraint_p (op, CONSTRAINT_Sp)")) | |
218 | |
219 (define_memory_constraint "S1" | |
220 "@internal" | |
221 (match_test "m32c_matches_constraint_p (op, CONSTRAINT_S1)")) | |
222 | |
223 (define_constraint "Rpa" | |
224 "@internal" | |
225 (match_test "m32c_matches_constraint_p (op, CONSTRAINT_Rpa)")) |