]> gcc.gnu.org Git - gcc.git/blame - gcc/config/bfin/constraints.md
Update copyright years.
[gcc.git] / gcc / config / bfin / constraints.md
CommitLineData
018a61c9 1;; Constraint definitions for Blackfin
5624e564 2;; Copyright (C) 2008-2015 Free Software Foundation, Inc.
018a61c9
BS
3;; Contributed by Analog Devices
4
5;; This file is part of GCC.
6
7;; GCC is free software; you can redistribute it and/or modify it
8;; under the terms of the GNU General Public License as published
96a791f7 9;; by the Free Software Foundation; either version 3, or (at your
018a61c9
BS
10;; option) any later version.
11
12;; GCC is distributed in the hope that it will be useful, but WITHOUT
13;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15;; License for more details.
16
17;; You should have received a copy of the GNU General Public License
96a791f7
BS
18;; along with GCC; see the file COPYING3. If not see
19;; <http://www.gnu.org/licenses/>.
018a61c9
BS
20
21(define_register_constraint "a" "PREGS"
22 "A Pn register.")
23
24(define_register_constraint "d" "DREGS"
25 "A Rn register.")
26
27(define_register_constraint "z" "PREGS_CLOBBERED"
28 "A call clobbered Pn register.")
29
30(define_register_constraint "D" "EVEN_DREGS"
31 "An even-numbered Rn register.")
32
33(define_register_constraint "W" "ODD_DREGS"
34 "An odd-numbered Rn register.")
35
36(define_register_constraint "e" "AREGS"
37 "An accumulator register.")
38
39(define_register_constraint "A" "EVEN_AREGS"
40 "An even-numbered accumulator; A0.")
41
42(define_register_constraint "B" "ODD_AREGS"
43 "An odd-numbered accumulator; A1.")
44
45(define_register_constraint "b" "IREGS"
46 "An I register.")
47
48(define_register_constraint "v" "BREGS"
49 "A B register.")
50
51(define_register_constraint "f" "MREGS"
52 "An M register.")
53
54(define_register_constraint "c" "CIRCREGS"
55 "A register used for circular buffering, i.e. I, B, or L registers.")
56
57(define_register_constraint "C" "CCREGS"
58 "The CC register.")
59
60(define_register_constraint "t" "LT_REGS"
61 "LT0 or LT1.")
62
63(define_register_constraint "u" "LB_REGS"
64 "LB0 or LB1.")
65
66(define_register_constraint "k" "LC_REGS"
67 "LC0 or LC1.")
68
69(define_register_constraint "x" "MOST_REGS"
70 "Any R, P, B, M, I or L register.")
71
72(define_register_constraint "y" "PROLOGUE_REGS"
73 "Additional registers typically used only in prologues and epilogues:
74 RETS, RETN, RETI, RETX, RETE, ASTAT, SEQSTAT and USP.")
75
76(define_register_constraint "w" "NON_A_CC_REGS"
77 "Any register except accumulators or CC.")
78
79(define_register_constraint "Z" "FDPIC_REGS"
80 "@internal The FD-PIC GOT pointer; P3.")
81
82(define_register_constraint "Y" "FDPIC_FPTR_REGS"
83 "@internal The FD-PIC function pointer register; P1.")
84
85(define_register_constraint "q0" "D0REGS"
86 "The register R0.")
87
88(define_register_constraint "q1" "D1REGS"
89 "The register R1.")
90
91(define_register_constraint "q2" "D2REGS"
92 "The register R2.")
93
94(define_register_constraint "q3" "D3REGS"
95 "The register R3.")
96
97(define_register_constraint "q4" "D4REGS"
98 "The register R4.")
99
100(define_register_constraint "q5" "D5REGS"
101 "The register R5.")
102
103(define_register_constraint "q6" "D6REGS"
104 "The register R6.")
105
106(define_register_constraint "q7" "D7REGS"
107 "The register R7.")
108
109(define_register_constraint "qA" "P0REGS"
110 "The register P0.")
111
112;; Constant constraints.
113
114(define_constraint "J"
115 "A constant value of the form 2**N, where N 5-bit wide."
116 (and (match_code "const_int")
117 (match_test "log2constp (ival)")))
118
119(define_constraint "Ks3"
120 "A signed 3 bit immediate."
121 (and (match_code "const_int")
122 (match_test "ival >= -4 && ival <= 3")))
123
124(define_constraint "Ku3"
125 "An unsigned 3 bit immediate."
126 (and (match_code "const_int")
127 (match_test "ival >= 0 && ival <= 7")))
128
129(define_constraint "Ks4"
130 "A signed 4 bit immediate."
131 (and (match_code "const_int")
132 (match_test "ival >= -8 && ival <= 7")))
133
134(define_constraint "Ku4"
135 "An unsigned 4 bit immediate."
136 (and (match_code "const_int")
137 (match_test "ival >= 0 && ival <= 15")))
138
139(define_constraint "Ks5"
140 "A signed 5 bit immediate."
141 (and (match_code "const_int")
142 (match_test "ival >= -16 && ival <= 15")))
143
144(define_constraint "Ku5"
145 "An unsigned 5 bit immediate."
146 (and (match_code "const_int")
147 (match_test "ival >= 0 && ival <= 31")))
148
149(define_constraint "Ks7"
150 "A signed 7 bit immediate."
151 (and (match_code "const_int")
152 (match_test "ival >= -64 && ival <= 63")))
153
154(define_constraint "KN7"
155 "A constant that when negated is a signed 7 bit immediate."
156 (and (match_code "const_int")
157 (match_test "ival >= -63 && ival <= 64")))
158
159(define_constraint "Ksh"
160 "A signed 16 bit immediate."
161 (and (match_code "const_int")
162 (match_test "ival >= -32768 && ival <= 32767")))
163
164(define_constraint "Kuh"
165 "An unsigned 16 bit immediate."
166 (and (match_code "const_int")
167 (match_test "ival >= 0 && ival <= 65535")))
168
169(define_constraint "L"
170 "A constant value of the form ~(2**N)."
171 (and (match_code "const_int")
172 (match_test "log2constp (~ival)")))
173
174(define_constraint "M1"
175 "An integer with the value 255."
176 (and (match_code "const_int")
177 (match_test "ival == 255")))
178
179(define_constraint "M2"
180 "An integer with the value 65535."
181 (and (match_code "const_int")
182 (match_test "ival == 65535")))
183
184(define_constraint "P0"
185 "An integer with the value 0."
186 (and (match_code "const_int")
187 (match_test "ival == 0")))
188
189(define_constraint "P1"
190 "An integer with the value 1."
191 (and (match_code "const_int")
192 (match_test "ival == 1")))
193
194(define_constraint "P2"
195 "An integer with the value 2."
196 (and (match_code "const_int")
197 (match_test "ival == 2")))
198
199(define_constraint "P3"
200 "An integer with the value 3."
201 (and (match_code "const_int")
202 (match_test "ival == 3")))
203
204(define_constraint "P4"
205 "An integer with the value 4."
206 (and (match_code "const_int")
207 (match_test "ival == 4")))
208
209(define_constraint "PA"
210 "An integer constant describing any macflag except variants involving M."
211 (and (match_code "const_int")
212 (match_test "ival != MACFLAG_M && ival != MACFLAG_IS_M")))
213
214(define_constraint "PB"
215 "An integer constant describing any macflag involving M."
216 (and (match_code "const_int")
217 (match_test "ival == MACFLAG_M || ival == MACFLAG_IS_M")))
218
219
220;; Extra constraints
221
222(define_constraint "Q"
223 "A SYMBOL_REF."
224 (match_code "symbol_ref"))
225
This page took 1.886518 seconds and 5 git commands to generate.