OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [config/] [bfin/] [constraints.md] - Blame information for rev 744

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 709 jeremybenn
;; Constraint definitions for Blackfin
2
;; Copyright (C) 2008 Free Software Foundation, Inc.
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
9
;; by the Free Software Foundation; either version 3, or (at your
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
18
;; along with GCC; see the file COPYING3.  If not see
19
;; .
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
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.