• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef ISA_XML
2 #define ISA_XML
3 
4 /* Autogenerated file, DO NOT EDIT manually!
5 
6 This file was generated by the rules-ng-ng headergen tool in this git repository:
7 http://0x04.net/cgit/index.cgi/rules-ng-ng
8 git clone git://0x04.net/rules-ng-ng
9 
10 The rules-ng-ng source files this header was generated from are:
11 - isa.xml       (  38205 bytes, from 2020-01-10 14:36:29)
12 - copyright.xml (   1597 bytes, from 2018-02-10 13:09:26)
13 
14 Copyright (C) 2012-2020 by the following authors:
15 - Wladimir J. van der Laan <laanwj@gmail.com>
16 - Christian Gmeiner <christian.gmeiner@gmail.com>
17 - Lucas Stach <l.stach@pengutronix.de>
18 - Russell King <rmk@arm.linux.org.uk>
19 
20 Permission is hereby granted, free of charge, to any person obtaining a
21 copy of this software and associated documentation files (the "Software"),
22 to deal in the Software without restriction, including without limitation
23 the rights to use, copy, modify, merge, publish, distribute, sub license,
24 and/or sell copies of the Software, and to permit persons to whom the
25 Software is furnished to do so, subject to the following conditions:
26 
27 The above copyright notice and this permission notice (including the
28 next paragraph) shall be included in all copies or substantial portions
29 of the Software.
30 
31 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
32 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
33 FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
34 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
35 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
36 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
37 DEALINGS IN THE SOFTWARE.
38 */
39 
40 
41 #define INST_OPCODE_NOP						0x00000000
42 #define INST_OPCODE_ADD						0x00000001
43 #define INST_OPCODE_MAD						0x00000002
44 #define INST_OPCODE_MUL						0x00000003
45 #define INST_OPCODE_DST						0x00000004
46 #define INST_OPCODE_DP3						0x00000005
47 #define INST_OPCODE_DP4						0x00000006
48 #define INST_OPCODE_DSX						0x00000007
49 #define INST_OPCODE_DSY						0x00000008
50 #define INST_OPCODE_MOV						0x00000009
51 #define INST_OPCODE_MOVAR					0x0000000a
52 #define INST_OPCODE_MOVAF					0x0000000b
53 #define INST_OPCODE_RCP						0x0000000c
54 #define INST_OPCODE_RSQ						0x0000000d
55 #define INST_OPCODE_LITP					0x0000000e
56 #define INST_OPCODE_SELECT					0x0000000f
57 #define INST_OPCODE_SET						0x00000010
58 #define INST_OPCODE_EXP						0x00000011
59 #define INST_OPCODE_LOG						0x00000012
60 #define INST_OPCODE_FRC						0x00000013
61 #define INST_OPCODE_CALL					0x00000014
62 #define INST_OPCODE_RET						0x00000015
63 #define INST_OPCODE_BRANCH					0x00000016
64 #define INST_OPCODE_TEXKILL					0x00000017
65 #define INST_OPCODE_TEXLD					0x00000018
66 #define INST_OPCODE_TEXLDB					0x00000019
67 #define INST_OPCODE_TEXLDD					0x0000001a
68 #define INST_OPCODE_TEXLDL					0x0000001b
69 #define INST_OPCODE_TEXLDPCF					0x0000001c
70 #define INST_OPCODE_REP						0x0000001d
71 #define INST_OPCODE_ENDREP					0x0000001e
72 #define INST_OPCODE_LOOP					0x0000001f
73 #define INST_OPCODE_ENDLOOP					0x00000020
74 #define INST_OPCODE_SQRT					0x00000021
75 #define INST_OPCODE_SIN						0x00000022
76 #define INST_OPCODE_COS						0x00000023
77 #define INST_OPCODE_BRANCH2					0x00000024
78 #define INST_OPCODE_FLOOR					0x00000025
79 #define INST_OPCODE_CEIL					0x00000026
80 #define INST_OPCODE_SIGN					0x00000027
81 #define INST_OPCODE_ADDLO					0x00000028
82 #define INST_OPCODE_MULLO					0x00000029
83 #define INST_OPCODE_BARRIER					0x0000002a
84 #define INST_OPCODE_SWIZZLE					0x0000002b
85 #define INST_OPCODE_I2I						0x0000002c
86 #define INST_OPCODE_I2F						0x0000002d
87 #define INST_OPCODE_F2I						0x0000002e
88 #define INST_OPCODE_F2IRND					0x0000002f
89 #define INST_OPCODE_F2I7					0x00000030
90 #define INST_OPCODE_CMP						0x00000031
91 #define INST_OPCODE_LOAD					0x00000032
92 #define INST_OPCODE_STORE					0x00000033
93 #define INST_OPCODE_COPYSIGN					0x00000034
94 #define INST_OPCODE_GETEXP					0x00000035
95 #define INST_OPCODE_GETMANT					0x00000036
96 #define INST_OPCODE_NAN						0x00000037
97 #define INST_OPCODE_NEXTAFTER					0x00000038
98 #define INST_OPCODE_ROUNDEVEN					0x00000039
99 #define INST_OPCODE_ROUNDAWAY					0x0000003a
100 #define INST_OPCODE_IADDSAT					0x0000003b
101 #define INST_OPCODE_IMULLO0					0x0000003c
102 #define INST_OPCODE_IMULLO1					0x0000003d
103 #define INST_OPCODE_IMULLOSAT0					0x0000003e
104 #define INST_OPCODE_IMULLOSAT1					0x0000003f
105 #define INST_OPCODE_IMULHI0					0x00000040
106 #define INST_OPCODE_IMULHI1					0x00000041
107 #define INST_OPCODE_IMUL0					0x00000042
108 #define INST_OPCODE_IMUL1					0x00000043
109 #define INST_OPCODE_IDIV0					0x00000044
110 #define INST_OPCODE_IDIV1					0x00000045
111 #define INST_OPCODE_IDIV2					0x00000046
112 #define INST_OPCODE_IDIV3					0x00000047
113 #define INST_OPCODE_IMOD0					0x00000048
114 #define INST_OPCODE_TEXELFETCH					0x00000049
115 #define INST_OPCODE_IMOD2					0x0000004a
116 #define INST_OPCODE_IMOD3					0x0000004b
117 #define INST_OPCODE_IMADLO0					0x0000004c
118 #define INST_OPCODE_IMADLO1					0x0000004d
119 #define INST_OPCODE_IMADLOSAT0					0x0000004e
120 #define INST_OPCODE_IMADLOSAT1					0x0000004f
121 #define INST_OPCODE_IMADHI0					0x00000050
122 #define INST_OPCODE_IMADHI1					0x00000051
123 #define INST_OPCODE_IMADHISAT0					0x00000052
124 #define INST_OPCODE_IMADHISAT1					0x00000053
125 #define INST_OPCODE_HALFADD					0x00000054
126 #define INST_OPCODE_HALFADDINC					0x00000055
127 #define INST_OPCODE_MOVAI					0x00000056
128 #define INST_OPCODE_IABS					0x00000057
129 #define INST_OPCODE_LEADZERO					0x00000058
130 #define INST_OPCODE_LSHIFT					0x00000059
131 #define INST_OPCODE_RSHIFT					0x0000005a
132 #define INST_OPCODE_ROTATE					0x0000005b
133 #define INST_OPCODE_OR						0x0000005c
134 #define INST_OPCODE_AND						0x0000005d
135 #define INST_OPCODE_XOR						0x0000005e
136 #define INST_OPCODE_NOT						0x0000005f
137 #define INST_OPCODE_BITSELECT					0x00000060
138 #define INST_OPCODE_POPCOUNT					0x00000061
139 #define INST_OPCODE_STOREB					0x00000062
140 #define INST_OPCODE_RGB2YUV					0x00000063
141 #define INST_OPCODE_DIV						0x00000064
142 #define INST_OPCODE_ATOM_ADD					0x00000065
143 #define INST_OPCODE_ATOM_XCHG					0x00000066
144 #define INST_OPCODE_ATOM_CMP_XCHG				0x00000067
145 #define INST_OPCODE_ATOM_MIN					0x00000068
146 #define INST_OPCODE_ATOM_MAX					0x00000069
147 #define INST_OPCODE_ATOM_OR					0x0000006a
148 #define INST_OPCODE_ATOM_AND					0x0000006b
149 #define INST_OPCODE_ATOM_XOR					0x0000006c
150 #define INST_OPCODE_BIT_REV					0x0000006d
151 #define INST_OPCODE_BYTE_REV					0x0000006e
152 #define INST_OPCODE_TEXLDLPCF					0x0000006f
153 #define INST_OPCODE_TEXLDGPCF					0x00000070
154 #define INST_OPCODE_PACK					0x00000071
155 #define INST_OPCODE_CONV					0x00000072
156 #define INST_OPCODE_DP2						0x00000073
157 #define INST_OPCODE_NORM_DP2					0x00000074
158 #define INST_OPCODE_NORM_DP3					0x00000075
159 #define INST_OPCODE_NORM_DP4					0x00000076
160 #define INST_OPCODE_NORM_MUL					0x00000077
161 #define INST_OPCODE_STORE_ATTR					0x00000078
162 #define INST_OPCODE_LOAD_ATTR					0x00000079
163 #define INST_OPCODE_EMIT					0x0000007a
164 #define INST_OPCODE_RESTART					0x0000007b
165 #define INST_OPCODE_NOP7C					0x0000007c
166 #define INST_OPCODE_NOP7D					0x0000007d
167 #define INST_OPCODE_NOP7E					0x0000007e
168 #define INST_OPCODE_NOP7F					0x0000007f
169 #define INST_CONDITION_TRUE					0x00000000
170 #define INST_CONDITION_GT					0x00000001
171 #define INST_CONDITION_LT					0x00000002
172 #define INST_CONDITION_GE					0x00000003
173 #define INST_CONDITION_LE					0x00000004
174 #define INST_CONDITION_EQ					0x00000005
175 #define INST_CONDITION_NE					0x00000006
176 #define INST_CONDITION_AND					0x00000007
177 #define INST_CONDITION_OR					0x00000008
178 #define INST_CONDITION_XOR					0x00000009
179 #define INST_CONDITION_NOT					0x0000000a
180 #define INST_CONDITION_NZ					0x0000000b
181 #define INST_CONDITION_GEZ					0x0000000c
182 #define INST_CONDITION_GZ					0x0000000d
183 #define INST_CONDITION_LEZ					0x0000000e
184 #define INST_CONDITION_LZ					0x0000000f
185 #define INST_RGROUP_TEMP					0x00000000
186 #define INST_RGROUP_INTERNAL					0x00000001
187 #define INST_RGROUP_UNIFORM_0					0x00000002
188 #define INST_RGROUP_UNIFORM_1					0x00000003
189 #define INST_RGROUP_TEMP_FP					0x00000004
190 #define INST_RGROUP_IMMEDIATE					0x00000007
191 #define INST_AMODE_DIRECT					0x00000000
192 #define INST_AMODE_ADD_A_X					0x00000001
193 #define INST_AMODE_ADD_A_Y					0x00000002
194 #define INST_AMODE_ADD_A_Z					0x00000003
195 #define INST_AMODE_ADD_A_W					0x00000004
196 #define INST_SWIZ_COMP_X					0x00000000
197 #define INST_SWIZ_COMP_Y					0x00000001
198 #define INST_SWIZ_COMP_Z					0x00000002
199 #define INST_SWIZ_COMP_W					0x00000003
200 #define INST_TYPE_F32						0x00000000
201 #define INST_TYPE_S32						0x00000001
202 #define INST_TYPE_S8						0x00000002
203 #define INST_TYPE_U16						0x00000003
204 #define INST_TYPE_F16						0x00000004
205 #define INST_TYPE_S16						0x00000005
206 #define INST_TYPE_U32						0x00000006
207 #define INST_TYPE_U8						0x00000007
208 #define INST_ROUND_MODE_DEFAULT					0x00000000
209 #define INST_ROUND_MODE_RTZ					0x00000001
210 #define INST_ROUND_MODE_RTNE					0x00000002
211 #define INST_COMPS_X						0x00000001
212 #define INST_COMPS_Y						0x00000002
213 #define INST_COMPS_Z						0x00000004
214 #define INST_COMPS_W						0x00000008
215 #define INST_SWIZ_X__MASK					0x00000003
216 #define INST_SWIZ_X__SHIFT					0
217 #define INST_SWIZ_X(x)						(((x) << INST_SWIZ_X__SHIFT) & INST_SWIZ_X__MASK)
218 #define INST_SWIZ_Y__MASK					0x0000000c
219 #define INST_SWIZ_Y__SHIFT					2
220 #define INST_SWIZ_Y(x)						(((x) << INST_SWIZ_Y__SHIFT) & INST_SWIZ_Y__MASK)
221 #define INST_SWIZ_Z__MASK					0x00000030
222 #define INST_SWIZ_Z__SHIFT					4
223 #define INST_SWIZ_Z(x)						(((x) << INST_SWIZ_Z__SHIFT) & INST_SWIZ_Z__MASK)
224 #define INST_SWIZ_W__MASK					0x000000c0
225 #define INST_SWIZ_W__SHIFT					6
226 #define INST_SWIZ_W(x)						(((x) << INST_SWIZ_W__SHIFT) & INST_SWIZ_W__MASK)
227 #define VIV_ISA_WORD_0						0x00000000
228 #define VIV_ISA_WORD_0_OPCODE__MASK				0x0000003f
229 #define VIV_ISA_WORD_0_OPCODE__SHIFT				0
230 #define VIV_ISA_WORD_0_OPCODE(x)				(((x) << VIV_ISA_WORD_0_OPCODE__SHIFT) & VIV_ISA_WORD_0_OPCODE__MASK)
231 #define VIV_ISA_WORD_0_COND__MASK				0x000007c0
232 #define VIV_ISA_WORD_0_COND__SHIFT				6
233 #define VIV_ISA_WORD_0_COND(x)					(((x) << VIV_ISA_WORD_0_COND__SHIFT) & VIV_ISA_WORD_0_COND__MASK)
234 #define VIV_ISA_WORD_0_SAT					0x00000800
235 #define VIV_ISA_WORD_0_DST_USE					0x00001000
236 #define VIV_ISA_WORD_0_DST_AMODE__MASK				0x0000e000
237 #define VIV_ISA_WORD_0_DST_AMODE__SHIFT				13
238 #define VIV_ISA_WORD_0_DST_AMODE(x)				(((x) << VIV_ISA_WORD_0_DST_AMODE__SHIFT) & VIV_ISA_WORD_0_DST_AMODE__MASK)
239 #define VIV_ISA_WORD_0_DST_REG__MASK				0x007f0000
240 #define VIV_ISA_WORD_0_DST_REG__SHIFT				16
241 #define VIV_ISA_WORD_0_DST_REG(x)				(((x) << VIV_ISA_WORD_0_DST_REG__SHIFT) & VIV_ISA_WORD_0_DST_REG__MASK)
242 #define VIV_ISA_WORD_0_DST_COMPS__MASK				0x07800000
243 #define VIV_ISA_WORD_0_DST_COMPS__SHIFT				23
244 #define VIV_ISA_WORD_0_DST_COMPS(x)				(((x) << VIV_ISA_WORD_0_DST_COMPS__SHIFT) & VIV_ISA_WORD_0_DST_COMPS__MASK)
245 #define VIV_ISA_WORD_0_TEX_ID__MASK				0xf8000000
246 #define VIV_ISA_WORD_0_TEX_ID__SHIFT				27
247 #define VIV_ISA_WORD_0_TEX_ID(x)				(((x) << VIV_ISA_WORD_0_TEX_ID__SHIFT) & VIV_ISA_WORD_0_TEX_ID__MASK)
248 
249 #define VIV_ISA_WORD_1						0x00000004
250 #define VIV_ISA_WORD_1_TEX_AMODE__MASK				0x00000007
251 #define VIV_ISA_WORD_1_TEX_AMODE__SHIFT				0
252 #define VIV_ISA_WORD_1_TEX_AMODE(x)				(((x) << VIV_ISA_WORD_1_TEX_AMODE__SHIFT) & VIV_ISA_WORD_1_TEX_AMODE__MASK)
253 #define VIV_ISA_WORD_1_RMODE__MASK				0x00000003
254 #define VIV_ISA_WORD_1_RMODE__SHIFT				0
255 #define VIV_ISA_WORD_1_RMODE(x)					(((x) << VIV_ISA_WORD_1_RMODE__SHIFT) & VIV_ISA_WORD_1_RMODE__MASK)
256 #define VIV_ISA_WORD_1_PMODE					0x00000004
257 #define VIV_ISA_WORD_1_TEX_SWIZ__MASK				0x000007f8
258 #define VIV_ISA_WORD_1_TEX_SWIZ__SHIFT				3
259 #define VIV_ISA_WORD_1_TEX_SWIZ(x)				(((x) << VIV_ISA_WORD_1_TEX_SWIZ__SHIFT) & VIV_ISA_WORD_1_TEX_SWIZ__MASK)
260 #define VIV_ISA_WORD_1_SRC0_USE					0x00000800
261 #define VIV_ISA_WORD_1_SRC0_REG__MASK				0x001ff000
262 #define VIV_ISA_WORD_1_SRC0_REG__SHIFT				12
263 #define VIV_ISA_WORD_1_SRC0_REG(x)				(((x) << VIV_ISA_WORD_1_SRC0_REG__SHIFT) & VIV_ISA_WORD_1_SRC0_REG__MASK)
264 #define VIV_ISA_WORD_1_TYPE_BIT2				0x00200000
265 #define VIV_ISA_WORD_1_SRC0_SWIZ__MASK				0x3fc00000
266 #define VIV_ISA_WORD_1_SRC0_SWIZ__SHIFT				22
267 #define VIV_ISA_WORD_1_SRC0_SWIZ(x)				(((x) << VIV_ISA_WORD_1_SRC0_SWIZ__SHIFT) & VIV_ISA_WORD_1_SRC0_SWIZ__MASK)
268 #define VIV_ISA_WORD_1_SRC0_NEG					0x40000000
269 #define VIV_ISA_WORD_1_SRC0_ABS					0x80000000
270 
271 #define VIV_ISA_WORD_2						0x00000008
272 #define VIV_ISA_WORD_2_SRC0_AMODE__MASK				0x00000007
273 #define VIV_ISA_WORD_2_SRC0_AMODE__SHIFT			0
274 #define VIV_ISA_WORD_2_SRC0_AMODE(x)				(((x) << VIV_ISA_WORD_2_SRC0_AMODE__SHIFT) & VIV_ISA_WORD_2_SRC0_AMODE__MASK)
275 #define VIV_ISA_WORD_2_SRC0_RGROUP__MASK			0x00000038
276 #define VIV_ISA_WORD_2_SRC0_RGROUP__SHIFT			3
277 #define VIV_ISA_WORD_2_SRC0_RGROUP(x)				(((x) << VIV_ISA_WORD_2_SRC0_RGROUP__SHIFT) & VIV_ISA_WORD_2_SRC0_RGROUP__MASK)
278 #define VIV_ISA_WORD_2_SRC1_USE					0x00000040
279 #define VIV_ISA_WORD_2_SRC1_REG__MASK				0x0000ff80
280 #define VIV_ISA_WORD_2_SRC1_REG__SHIFT				7
281 #define VIV_ISA_WORD_2_SRC1_REG(x)				(((x) << VIV_ISA_WORD_2_SRC1_REG__SHIFT) & VIV_ISA_WORD_2_SRC1_REG__MASK)
282 #define VIV_ISA_WORD_2_OPCODE_BIT6				0x00010000
283 #define VIV_ISA_WORD_2_SRC1_SWIZ__MASK				0x01fe0000
284 #define VIV_ISA_WORD_2_SRC1_SWIZ__SHIFT				17
285 #define VIV_ISA_WORD_2_SRC1_SWIZ(x)				(((x) << VIV_ISA_WORD_2_SRC1_SWIZ__SHIFT) & VIV_ISA_WORD_2_SRC1_SWIZ__MASK)
286 #define VIV_ISA_WORD_2_SRC1_NEG					0x02000000
287 #define VIV_ISA_WORD_2_SRC1_ABS					0x04000000
288 #define VIV_ISA_WORD_2_SRC1_AMODE__MASK				0x38000000
289 #define VIV_ISA_WORD_2_SRC1_AMODE__SHIFT			27
290 #define VIV_ISA_WORD_2_SRC1_AMODE(x)				(((x) << VIV_ISA_WORD_2_SRC1_AMODE__SHIFT) & VIV_ISA_WORD_2_SRC1_AMODE__MASK)
291 #define VIV_ISA_WORD_2_TYPE_BIT01__MASK				0xc0000000
292 #define VIV_ISA_WORD_2_TYPE_BIT01__SHIFT			30
293 #define VIV_ISA_WORD_2_TYPE_BIT01(x)				(((x) << VIV_ISA_WORD_2_TYPE_BIT01__SHIFT) & VIV_ISA_WORD_2_TYPE_BIT01__MASK)
294 
295 #define VIV_ISA_WORD_3						0x0000000c
296 #define VIV_ISA_WORD_3_SRC1_RGROUP__MASK			0x00000007
297 #define VIV_ISA_WORD_3_SRC1_RGROUP__SHIFT			0
298 #define VIV_ISA_WORD_3_SRC1_RGROUP(x)				(((x) << VIV_ISA_WORD_3_SRC1_RGROUP__SHIFT) & VIV_ISA_WORD_3_SRC1_RGROUP__MASK)
299 #define VIV_ISA_WORD_3_SRC2_IMM__MASK				0x003fff80
300 #define VIV_ISA_WORD_3_SRC2_IMM__SHIFT				7
301 #define VIV_ISA_WORD_3_SRC2_IMM(x)				(((x) << VIV_ISA_WORD_3_SRC2_IMM__SHIFT) & VIV_ISA_WORD_3_SRC2_IMM__MASK)
302 #define VIV_ISA_WORD_3_SRC2_USE					0x00000008
303 #define VIV_ISA_WORD_3_SRC2_REG__MASK				0x00001ff0
304 #define VIV_ISA_WORD_3_SRC2_REG__SHIFT				4
305 #define VIV_ISA_WORD_3_SRC2_REG(x)				(((x) << VIV_ISA_WORD_3_SRC2_REG__SHIFT) & VIV_ISA_WORD_3_SRC2_REG__MASK)
306 #define VIV_ISA_WORD_3_SEL_BIT0					0x00002000
307 #define VIV_ISA_WORD_3_SRC2_SWIZ__MASK				0x003fc000
308 #define VIV_ISA_WORD_3_SRC2_SWIZ__SHIFT				14
309 #define VIV_ISA_WORD_3_SRC2_SWIZ(x)				(((x) << VIV_ISA_WORD_3_SRC2_SWIZ__SHIFT) & VIV_ISA_WORD_3_SRC2_SWIZ__MASK)
310 #define VIV_ISA_WORD_3_SRC2_NEG					0x00400000
311 #define VIV_ISA_WORD_3_SRC2_ABS					0x00800000
312 #define VIV_ISA_WORD_3_SEL_BIT1					0x01000000
313 #define VIV_ISA_WORD_3_SRC2_AMODE__MASK				0x0e000000
314 #define VIV_ISA_WORD_3_SRC2_AMODE__SHIFT			25
315 #define VIV_ISA_WORD_3_SRC2_AMODE(x)				(((x) << VIV_ISA_WORD_3_SRC2_AMODE__SHIFT) & VIV_ISA_WORD_3_SRC2_AMODE__MASK)
316 #define VIV_ISA_WORD_3_SRC2_RGROUP__MASK			0x70000000
317 #define VIV_ISA_WORD_3_SRC2_RGROUP__SHIFT			28
318 #define VIV_ISA_WORD_3_SRC2_RGROUP(x)				(((x) << VIV_ISA_WORD_3_SRC2_RGROUP__SHIFT) & VIV_ISA_WORD_3_SRC2_RGROUP__MASK)
319 #define VIV_ISA_WORD_3_DST_FULL					0x80000000
320 
321 
322 #endif /* ISA_XML */
323