Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / legion / src / procs / sparcv9 / include / tsparcv9_dis_priv.h
CommitLineData
920dae64
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: tsparcv9_dis_priv.h
5* Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
6* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
7*
8* The above named program is free software; you can redistribute it and/or
9* modify it under the terms of the GNU General Public
10* License version 2 as published by the Free Software Foundation.
11*
12* The above named program is distributed in the hope that it will be
13* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15* General Public License for more details.
16*
17* You should have received a copy of the GNU General Public
18* License along with this work; if not, write to the Free Software
19* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
20*
21* ========== Copyright Header End ============================================
22*/
23/*
24 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
25 * Use is subject to license terms.
26 */
27
28#ifndef _TSPARCV9_DIS_PRIV_H
29#define _TSPARCV9_DIS_PRIV_H
30
31#pragma ident "@(#)tsparcv9_dis_priv.h 1.5 06/04/26 SMI"
32
33#ifdef __cplusplus
34extern "C" {
35#endif
36
37/*
38 * disassemble_private.h 107.4 Mizar, Inc. & Sun Microsystems, Inc.
39 * Copyright (c) 1989 Mizar, Inc
40 * Copyright (c) 1989 Sun Microsystems, Inc.
41 * All Rights Reserved.
42 * Please see asm_copyright.h for complete information.
43 */
44
45/* instruction fields */
46
47typedef unsigned char FORMAT;
48extern FORMAT format[];
49
50/* instruction fields: opcode masks */
51
52#define OP 0xC0000000 /* general opcode */
53#define OP2 0x01C00000 /* op2 opcode */
54#define OP3 0x01F80000 /* op3 opcode */
55#define OP4 0x00000060 /* op4 opcode */
56#define OPFC 0x00003FE0 /* FP or CP opcode */
57#define OPF2 0x00000080 /* FP or CP opcode */
58#define OPFMOV 0x000001E0 /* opfc for fmov and fmovr */
59#define OPF2TO0 0x000001E0 /* FP or CP opcode */
60
61/* instruction fields: register masks */
62
63#define RD 0x3E000000 /* destination register */
64#define RS1 0x0007C000 /* source register 1 */
65#define RS2 0x0000001F /* source register 2 */
66
67/* instruction fields: constant masks */
68
69#define DISP30 0x3FFFFFFF /* 30-bit sign-extended word displacement */
70#define DISP22 0x003FFFFF /* 22-bit sign-extended word displacement */
71#define DISP22_SIGN 0x00200000 /* 22-bit sign */
72#define CONST22 0x003FFFFF /* 22-bit constant value (structure size) */
73#define IMM22 0x003FFFFF /* 22-bit immediate value (result of %hi) */
74
75#define DISP19 0x0007FFFF /* 19-bit sign-extended word displacement, V9 */
76#define DISP19_SIGN 0x00040000 /* 19-bit sign, V9*/
77#define DISP14 0x00003FFF /* 14-bit word displacement, V9 */
78#define DISP16 0x00300000 /* 16-bit sign-extended word displacement, V9 */
79#define DISP16_SIGN 0x00200000 /* 16-bit sign, V9*/
80
81#define SIMM13 0x00001FFF /* 13-bit sign-extended immediate value */
82#define SIMM13_SIGN 0x00001000 /* 13-bit sign */
83
84#define SIMM11 0x000007FF /* 11-bit sign-extended immediate value */
85#define SIMM11_SIGN 0x00000400 /* 11-bit sign */
86#define SIMM10 0x000003FF /* 10-bit sign-extended immediate value*/
87#define SIMM10_SIGN 0x00000200 /* 10-bit sign */
88
89#define LOBITS 0x000003FF /* 10-bit immediate value (result of %lo) */
90#define TRAP_NUMBER 0x000000FF /* trap number */
91#define FCN_CONST 0x3E000000 /* prefetch function a const value */
92
93/* instruction fields: miscellaneous masks */
94
95#define A 0x20000000 /* annul bit */
96#define COND 0x1E000000 /* test condition */
97
98#define PRED 0x00080000 /* prediction bit, (19) */
99#define BPCC_MASK1 0xfeBfffff /* to change op2 from 001 to 010 */
100#define BPCC_MASK2 0x00800000
101#define FBPCC_MASK1 0xffBfffff /* to change op2 from 101 to 110 */
102#define FBPCC_MASK2 0x01800000
103#define CC 0x00300000 /* for Fcmp CC, (25,26) */
104#define FCMPCC 0x06000000 /* which CC, (21,20) */
105#define MIF 0x00040000 /* move use integer or floating cc */
106#define MCC 0x00001800 /* which cc move use */
107#define FMIF 0x00002000 /* fmove use integer or floating cc */
108#define FMCC 0x00003800 /* which cc move use */
109#define MCOND 0x0003C000 /* move condition */
110#define SHSZ 0x00001000 /* size of shift count 32 or 64*/
111#define RCOND 0x0E000000 /* test register-contents condition for Branch */
112#define MRCOND 0x00001C00 /* test register-contents condition for Move */
113#define CONSTMEMBAR 0x000000FF /* mask field - membar */
114
115#define I 0x00002000 /* selects type of second ALU operand */
116#define ASI 0x00001FE0 /* alternate address space indicator */
117#define SHCNT 0x0000001F /* shift count */
118
119#define SHCNT6 0x0000003F /* shift count */
120
121/* instruction fields: opcode, register, constant, and miscellaneous shift counts */
122
123#define DISP30_SHIFT_CT 2 /* 30-bit sign-extended word displacement */
124#define DISP22_SHIFT_CT 2 /* 22-bit sign-extended word displacement */
125
126#define DISP19_SHIFT_CT 2 /* 19-bit sign-extended word displacement */
127#define DISP16_SHIFT_CT 2 /* 16-bit sign-extended word displacement */
128#define DISP16_ADJUST 4 /* 16-bit sign-extended word adjustment */
129
130#define IMM22_SHIFT_CT 10 /* 22-bit immediate value */
131
132#define OP_SHIFT_CT 30 /* general opcode */
133#define A_SHIFT_CT 29 /* annul bit */
134#define RD_SHIFT_CT 25 /* destination register */
135#define COND_SHIFT_CT 25 /* test condition */
136#define OP2_SHIFT_CT 22 /* op2 opcode */
137#define OP3_SHIFT_CT 19 /* op3 opcode */
138#define RS1_SHIFT_CT 14 /* source register 1 */
139#define I_SHIFT_CT 13 /* I field */
140#define OPFC_SHIFT_CT 5 /* FP or CP opcode */
141#define ASI_SHIFT_CT 5 /* alternate address space indicator */
142
143/* instruction fields: things that don't fit under other categories */
144
145#define DISP22_SIGN_EXTEND 0xFFC00000 /* 22-bit sign-extended word displacement */
146
147#define DISP19_SIGN_EXTEND 0xFFF80000 /* 19-bit sign-extended word displacement, V9 */
148#define DISP16_SIGN_EXTEND 0xFFFF0000 /* 16-bit sign-extended word displacement, V9 */
149
150#define SIMM13_SIGN_EXTEND 0xFFFFE000 /* 13-bit sign-extended immediate value */
151
152#define SIMM11_SIGN_EXTEND 0xFFFFF800 /* 11-bit sign-extended word displacement, V9 */
153#define SIMM10_SIGN_EXTEND 0xFFFFFC00 /* 10-bit sign-extended word displacement, V9 */
154
155
156/* instruction fields: opcode equates */
157
158#define OP_3 0xC0000000 /* general opcode: load/store */
159#define OP_2 0x80000000 /* general opcode: arithmetic */
160#define OP_1 0x40000000 /* general opcode: Call */
161#define OP_0 0x00000000 /* general opcode: Bicc, FBfcc, CBccc, SETHI */
162#define OP2_7 0x01C00000 /* op2 opcode: CBccc */
163#define OP2_6 0x01800000 /* op2 opcode: FBfcc */
164#define OP2_5 0x01400000 /* op2 opcode: (n/i) */
165#define OP2_4 0x01000000 /* op2 opcode: SETHI */
166#define OP2_3 0x00C00000 /* op2 opcode: (n/i) */
167#define OP2_2 0x00800000 /* op2 opcode: Bicc */
168#define OP2_1 0x00400000 /* op2 opcode: (n/i) */
169#define OP2_0 0x00000000 /* op2 opcode: UNIMPlemented */
170#define OP3_3F 0x01F80000 /* op3 opcode */
171#define OP3_3E 0x01F00000 /* op3 opcode */
172#define OP3_3D 0x01E80000 /* op3 opcode */
173#define OP3_3C 0x01E00000 /* op3 opcode */
174#define OP3_3B 0x01D80000 /* op3 opcode */
175#define OP3_3A 0x01D00000 /* op3 opcode */
176#define OP3_39 0x01C80000 /* op3 opcode */
177#define OP3_38 0x01C00000 /* op3 opcode */
178#define OP3_37 0x01B80000 /* op3 opcode */
179#define OP3_36 0x01B00000 /* op3 opcode */
180#define OP3_35 0x01A80000 /* op3 opcode */
181#define OP3_34 0x01A00000 /* op3 opcode */
182#define OP3_33 0x01980000 /* op3 opcode */
183#define OP3_32 0x01900000 /* op3 opcode */
184#define OP3_31 0x01880000 /* op3 opcode */
185#define OP3_30 0x01800000 /* op3 opcode */
186#define OP3_2F 0x01780000 /* op3 opcode */
187#define OP3_2E 0x01700000 /* op3 opcode */
188#define OP3_2D 0x01680000 /* op3 opcode */
189#define OP3_2C 0x01600000 /* op3 opcode */
190#define OP3_2B 0x01580000 /* op3 opcode */
191#define OP3_2A 0x01500000 /* op3 opcode */
192#define OP3_29 0x01480000 /* op3 opcode */
193#define OP3_28 0x01400000 /* op3 opcode */
194#define OP3_27 0x01380000 /* op3 opcode */
195#define OP3_26 0x01300000 /* op3 opcode */
196#define OP3_25 0x01280000 /* op3 opcode */
197#define OP3_24 0x01200000 /* op3 opcode */
198#define OP3_23 0x01180000 /* op3 opcode */
199#define OP3_22 0x01100000 /* op3 opcode */
200#define OP3_21 0x01080000 /* op3 opcode */
201#define OP3_20 0x01000000 /* op3 opcode */
202#define OP3_1F 0x00F80000 /* op3 opcode */
203#define OP3_1E 0x00F00000 /* op3 opcode */
204#define OP3_1D 0x00E80000 /* op3 opcode */
205#define OP3_1C 0x00E00000 /* op3 opcode */
206#define OP3_1B 0x00D80000 /* op3 opcode */
207#define OP3_1A 0x00D00000 /* op3 opcode */
208#define OP3_19 0x00C80000 /* op3 opcode */
209#define OP3_18 0x00C00000 /* op3 opcode */
210#define OP3_17 0x00B80000 /* op3 opcode */
211#define OP3_16 0x00B00000 /* op3 opcode */
212#define OP3_15 0x00A80000 /* op3 opcode */
213#define OP3_14 0x00A00000 /* op3 opcode */
214#define OP3_13 0x00980000 /* op3 opcode */
215#define OP3_12 0x00900000 /* op3 opcode */
216#define OP3_11 0x00880000 /* op3 opcode */
217#define OP3_10 0x00800000 /* op3 opcode */
218#define OP3_0F 0x00780000 /* op3 opcode */
219#define OP3_0E 0x00700000 /* op3 opcode */
220#define OP3_0D 0x00680000 /* op3 opcode */
221#define OP3_0C 0x00600000 /* op3 opcode */
222#define OP3_0B 0x00580000 /* op3 opcode */
223#define OP3_0A 0x00500000 /* op3 opcode */
224#define OP3_09 0x00480000 /* op3 opcode */
225#define OP3_08 0x00400000 /* op3 opcode */
226#define OP3_07 0x00380000 /* op3 opcode */
227#define OP3_06 0x00300000 /* op3 opcode */
228#define OP3_05 0x00280000 /* op3 opcode */
229#define OP3_04 0x00200000 /* op3 opcode */
230#define OP3_03 0x00180000 /* op3 opcode */
231#define OP3_02 0x00100000 /* op3 opcode */
232#define OP3_01 0x00080000 /* op3 opcode */
233#define OP3_00 0x00000000 /* op3 opcode */
234#define OP4_03 0x00000060 /* op4 opcode */
235#define OP4_02 0x00000040 /* op4 opcode */
236#define OP4_01 0x00000020 /* op4 opcode */
237#define OP4_00 0x00000000 /* op4 opcode */
238#define OPFC_1FF 0x00003FE0 /*floating point or coprocessor opcode*/
239#define OPFC_1FE 0x00003FC0 /*floating point or coprocessor opcode*/
240#define OPFC_1FD 0x00003FA0 /*floating point or coprocessor opcode*/
241#define OPFC_1FC 0x00003F80 /*floating point or coprocessor opcode*/
242#define OPFC_1FB 0x00003F60 /*floating point or coprocessor opcode*/
243#define OPFC_1FA 0x00003F40 /*floating point or coprocessor opcode*/
244#define OPFC_1F9 0x00003F20 /*floating point or coprocessor opcode*/
245#define OPFC_1F8 0x00003F00 /*floating point or coprocessor opcode*/
246#define OPFC_1F7 0x00003EE0 /*floating point or coprocessor opcode*/
247#define OPFC_1F6 0x00003EC0 /*floating point or coprocessor opcode*/
248#define OPFC_1F5 0x00003EA0 /*floating point or coprocessor opcode*/
249#define OPFC_1F4 0x00003E80 /*floating point or coprocessor opcode*/
250#define OPFC_1F3 0x00003E60 /*floating point or coprocessor opcode*/
251#define OPFC_1F2 0x00003E40 /*floating point or coprocessor opcode*/
252#define OPFC_1F1 0x00003E20 /*floating point or coprocessor opcode*/
253#define OPFC_1F0 0x00003E00 /*floating point or coprocessor opcode*/
254#define OPFC_1EF 0x00003DE0 /*floating point or coprocessor opcode*/
255#define OPFC_1EE 0x00003DC0 /*floating point or coprocessor opcode*/
256#define OPFC_1ED 0x00003DA0 /*floating point or coprocessor opcode*/
257#define OPFC_1EC 0x00003D80 /*floating point or coprocessor opcode*/
258#define OPFC_1EB 0x00003D60 /*floating point or coprocessor opcode*/
259#define OPFC_1EA 0x00003D40 /*floating point or coprocessor opcode*/
260#define OPFC_1E9 0x00003D20 /*floating point or coprocessor opcode*/
261#define OPFC_1E8 0x00003D00 /*floating point or coprocessor opcode*/
262#define OPFC_1E7 0x00003CE0 /*floating point or coprocessor opcode*/
263#define OPFC_1E6 0x00003CC0 /*floating point or coprocessor opcode*/
264#define OPFC_1E5 0x00003CA0 /*floating point or coprocessor opcode*/
265#define OPFC_1E4 0x00003C80 /*floating point or coprocessor opcode*/
266#define OPFC_1E3 0x00003C60 /*floating point or coprocessor opcode*/
267#define OPFC_1E2 0x00003C40 /*floating point or coprocessor opcode*/
268#define OPFC_1E1 0x00003C20 /*floating point or coprocessor opcode*/
269#define OPFC_1E0 0x00003C00 /*floating point or coprocessor opcode*/
270#define OPFC_1DF 0x00003BE0 /*floating point or coprocessor opcode*/
271#define OPFC_1DE 0x00003BC0 /*floating point or coprocessor opcode*/
272#define OPFC_1DD 0x00003BA0 /*floating point or coprocessor opcode*/
273#define OPFC_1DC 0x00003B80 /*floating point or coprocessor opcode*/
274#define OPFC_1DB 0x00003B60 /*floating point or coprocessor opcode*/
275#define OPFC_1DA 0x00003B40 /*floating point or coprocessor opcode*/
276#define OPFC_1D9 0x00003B20 /*floating point or coprocessor opcode*/
277#define OPFC_1D8 0x00003B00 /*floating point or coprocessor opcode*/
278#define OPFC_1D7 0x00003AE0 /*floating point or coprocessor opcode*/
279#define OPFC_1D6 0x00003AC0 /*floating point or coprocessor opcode*/
280#define OPFC_1D5 0x00003AA0 /*floating point or coprocessor opcode*/
281#define OPFC_1D4 0x00003A80 /*floating point or coprocessor opcode*/
282#define OPFC_1D3 0x00003A60 /*floating point or coprocessor opcode*/
283#define OPFC_1D2 0x00003A40 /*floating point or coprocessor opcode*/
284#define OPFC_1D1 0x00003A20 /*floating point or coprocessor opcode*/
285#define OPFC_1D0 0x00003A00 /*floating point or coprocessor opcode*/
286#define OPFC_1CF 0x000039E0 /*floating point or coprocessor opcode*/
287#define OPFC_1CE 0x000039C0 /*floating point or coprocessor opcode*/
288#define OPFC_1CD 0x000039A0 /*floating point or coprocessor opcode*/
289#define OPFC_1CC 0x00003980 /*floating point or coprocessor opcode*/
290#define OPFC_1CB 0x00003960 /*floating point or coprocessor opcode*/
291#define OPFC_1CA 0x00003940 /*floating point or coprocessor opcode*/
292#define OPFC_1C9 0x00003920 /*floating point or coprocessor opcode*/
293#define OPFC_1C8 0x00003900 /*floating point or coprocessor opcode*/
294#define OPFC_1C7 0x000038E0 /*floating point or coprocessor opcode*/
295#define OPFC_1C6 0x000038C0 /*floating point or coprocessor opcode*/
296#define OPFC_1C5 0x000038A0 /*floating point or coprocessor opcode*/
297#define OPFC_1C4 0x00003880 /*floating point or coprocessor opcode*/
298#define OPFC_1C3 0x00003860 /*floating point or coprocessor opcode*/
299#define OPFC_1C2 0x00003840 /*floating point or coprocessor opcode*/
300#define OPFC_1C1 0x00003820 /*floating point or coprocessor opcode*/
301#define OPFC_1C0 0x00003800 /*floating point or coprocessor opcode*/
302#define OPFC_1BF 0x000037E0 /*floating point or coprocessor opcode*/
303#define OPFC_1BE 0x000037C0 /*floating point or coprocessor opcode*/
304#define OPFC_1BD 0x000037A0 /*floating point or coprocessor opcode*/
305#define OPFC_1BC 0x00003780 /*floating point or coprocessor opcode*/
306#define OPFC_1BB 0x00003760 /*floating point or coprocessor opcode*/
307#define OPFC_1BA 0x00003740 /*floating point or coprocessor opcode*/
308#define OPFC_1B9 0x00003720 /*floating point or coprocessor opcode*/
309#define OPFC_1B8 0x00003700 /*floating point or coprocessor opcode*/
310#define OPFC_1B7 0x000036E0 /*floating point or coprocessor opcode*/
311#define OPFC_1B6 0x000036C0 /*floating point or coprocessor opcode*/
312#define OPFC_1B5 0x000036A0 /*floating point or coprocessor opcode*/
313#define OPFC_1B4 0x00003680 /*floating point or coprocessor opcode*/
314#define OPFC_1B3 0x00003660 /*floating point or coprocessor opcode*/
315#define OPFC_1B2 0x00003640 /*floating point or coprocessor opcode*/
316#define OPFC_1B1 0x00003620 /*floating point or coprocessor opcode*/
317#define OPFC_1B0 0x00003600 /*floating point or coprocessor opcode*/
318#define OPFC_1AF 0x000035E0 /*floating point or coprocessor opcode*/
319#define OPFC_1AE 0x000035C0 /*floating point or coprocessor opcode*/
320#define OPFC_1AD 0x000035A0 /*floating point or coprocessor opcode*/
321#define OPFC_1AC 0x00003580 /*floating point or coprocessor opcode*/
322#define OPFC_1AB 0x00003560 /*floating point or coprocessor opcode*/
323#define OPFC_1AA 0x00003540 /*floating point or coprocessor opcode*/
324#define OPFC_1A9 0x00003520 /*floating point or coprocessor opcode*/
325#define OPFC_1A8 0x00003500 /*floating point or coprocessor opcode*/
326#define OPFC_1A7 0x000034E0 /*floating point or coprocessor opcode*/
327#define OPFC_1A6 0x000034C0 /*floating point or coprocessor opcode*/
328#define OPFC_1A5 0x000034A0 /*floating point or coprocessor opcode*/
329#define OPFC_1A4 0x00003480 /*floating point or coprocessor opcode*/
330#define OPFC_1A3 0x00003460 /*floating point or coprocessor opcode*/
331#define OPFC_1A2 0x00003440 /*floating point or coprocessor opcode*/
332#define OPFC_1A1 0x00003420 /*floating point or coprocessor opcode*/
333#define OPFC_1A0 0x00003400 /*floating point or coprocessor opcode*/
334#define OPFC_19F 0x000033E0 /*floating point or coprocessor opcode*/
335#define OPFC_19E 0x000033C0 /*floating point or coprocessor opcode*/
336#define OPFC_19D 0x000033A0 /*floating point or coprocessor opcode*/
337#define OPFC_19C 0x00003380 /*floating point or coprocessor opcode*/
338#define OPFC_19B 0x00003360 /*floating point or coprocessor opcode*/
339#define OPFC_19A 0x00003340 /*floating point or coprocessor opcode*/
340#define OPFC_199 0x00003320 /*floating point or coprocessor opcode*/
341#define OPFC_198 0x00003300 /*floating point or coprocessor opcode*/
342#define OPFC_197 0x000032E0 /*floating point or coprocessor opcode*/
343#define OPFC_196 0x000032C0 /*floating point or coprocessor opcode*/
344#define OPFC_195 0x000032A0 /*floating point or coprocessor opcode*/
345#define OPFC_194 0x00003280 /*floating point or coprocessor opcode*/
346#define OPFC_193 0x00003260 /*floating point or coprocessor opcode*/
347#define OPFC_192 0x00003240 /*floating point or coprocessor opcode*/
348#define OPFC_191 0x00003220 /*floating point or coprocessor opcode*/
349#define OPFC_190 0x00003200 /*floating point or coprocessor opcode*/
350#define OPFC_18F 0x000031E0 /*floating point or coprocessor opcode*/
351#define OPFC_18E 0x000031C0 /*floating point or coprocessor opcode*/
352#define OPFC_18D 0x000031A0 /*floating point or coprocessor opcode*/
353#define OPFC_18C 0x00003180 /*floating point or coprocessor opcode*/
354#define OPFC_18B 0x00003160 /*floating point or coprocessor opcode*/
355#define OPFC_18A 0x00003140 /*floating point or coprocessor opcode*/
356#define OPFC_189 0x00003120 /*floating point or coprocessor opcode*/
357#define OPFC_188 0x00003100 /*floating point or coprocessor opcode*/
358#define OPFC_187 0x000030E0 /*floating point or coprocessor opcode*/
359#define OPFC_186 0x000030C0 /*floating point or coprocessor opcode*/
360#define OPFC_185 0x000030A0 /*floating point or coprocessor opcode*/
361#define OPFC_184 0x00003080 /*floating point or coprocessor opcode*/
362#define OPFC_183 0x00003060 /*floating point or coprocessor opcode*/
363#define OPFC_182 0x00003040 /*floating point or coprocessor opcode*/
364#define OPFC_181 0x00003020 /*floating point or coprocessor opcode*/
365#define OPFC_180 0x00003000 /*floating point or coprocessor opcode*/
366#define OPFC_17F 0x00002FE0 /*floating point or coprocessor opcode*/
367#define OPFC_17E 0x00002FC0 /*floating point or coprocessor opcode*/
368#define OPFC_17D 0x00002FA0 /*floating point or coprocessor opcode*/
369#define OPFC_17C 0x00002F80 /*floating point or coprocessor opcode*/
370#define OPFC_17B 0x00002F60 /*floating point or coprocessor opcode*/
371#define OPFC_17A 0x00002F40 /*floating point or coprocessor opcode*/
372#define OPFC_179 0x00002F20 /*floating point or coprocessor opcode*/
373#define OPFC_178 0x00002F00 /*floating point or coprocessor opcode*/
374#define OPFC_177 0x00002EE0 /*floating point or coprocessor opcode*/
375#define OPFC_176 0x00002EC0 /*floating point or coprocessor opcode*/
376#define OPFC_175 0x00002EA0 /*floating point or coprocessor opcode*/
377#define OPFC_174 0x00002E80 /*floating point or coprocessor opcode*/
378#define OPFC_173 0x00002E60 /*floating point or coprocessor opcode*/
379#define OPFC_172 0x00002E40 /*floating point or coprocessor opcode*/
380#define OPFC_171 0x00002E20 /*floating point or coprocessor opcode*/
381#define OPFC_170 0x00002E00 /*floating point or coprocessor opcode*/
382#define OPFC_16F 0x00002DE0 /*floating point or coprocessor opcode*/
383#define OPFC_16E 0x00002DC0 /*floating point or coprocessor opcode*/
384#define OPFC_16D 0x00002DA0 /*floating point or coprocessor opcode*/
385#define OPFC_16C 0x00002D80 /*floating point or coprocessor opcode*/
386#define OPFC_16B 0x00002D60 /*floating point or coprocessor opcode*/
387#define OPFC_16A 0x00002D40 /*floating point or coprocessor opcode*/
388#define OPFC_169 0x00002D20 /*floating point or coprocessor opcode*/
389#define OPFC_168 0x00002D00 /*floating point or coprocessor opcode*/
390#define OPFC_167 0x00002CE0 /*floating point or coprocessor opcode*/
391#define OPFC_166 0x00002CC0 /*floating point or coprocessor opcode*/
392#define OPFC_165 0x00002CA0 /*floating point or coprocessor opcode*/
393#define OPFC_164 0x00002C80 /*floating point or coprocessor opcode*/
394#define OPFC_163 0x00002C60 /*floating point or coprocessor opcode*/
395#define OPFC_162 0x00002C40 /*floating point or coprocessor opcode*/
396#define OPFC_161 0x00002C20 /*floating point or coprocessor opcode*/
397#define OPFC_160 0x00002C00 /*floating point or coprocessor opcode*/
398#define OPFC_15F 0x00002BE0 /*floating point or coprocessor opcode*/
399#define OPFC_15E 0x00002BC0 /*floating point or coprocessor opcode*/
400#define OPFC_15D 0x00002BA0 /*floating point or coprocessor opcode*/
401#define OPFC_15C 0x00002B80 /*floating point or coprocessor opcode*/
402#define OPFC_15B 0x00002B60 /*floating point or coprocessor opcode*/
403#define OPFC_15A 0x00002B40 /*floating point or coprocessor opcode*/
404#define OPFC_159 0x00002B20 /*floating point or coprocessor opcode*/
405#define OPFC_158 0x00002B00 /*floating point or coprocessor opcode*/
406#define OPFC_157 0x00002AE0 /*floating point or coprocessor opcode*/
407#define OPFC_156 0x00002AC0 /*floating point or coprocessor opcode*/
408#define OPFC_155 0x00002AA0 /*floating point or coprocessor opcode*/
409#define OPFC_154 0x00002A80 /*floating point or coprocessor opcode*/
410#define OPFC_153 0x00002A60 /*floating point or coprocessor opcode*/
411#define OPFC_152 0x00002A40 /*floating point or coprocessor opcode*/
412#define OPFC_151 0x00002A20 /*floating point or coprocessor opcode*/
413#define OPFC_150 0x00002A00 /*floating point or coprocessor opcode*/
414#define OPFC_14F 0x000029E0 /*floating point or coprocessor opcode*/
415#define OPFC_14E 0x000029C0 /*floating point or coprocessor opcode*/
416#define OPFC_14D 0x000029A0 /*floating point or coprocessor opcode*/
417#define OPFC_14C 0x00002980 /*floating point or coprocessor opcode*/
418#define OPFC_14B 0x00002960 /*floating point or coprocessor opcode*/
419#define OPFC_14A 0x00002940 /*floating point or coprocessor opcode*/
420#define OPFC_149 0x00002920 /*floating point or coprocessor opcode*/
421#define OPFC_148 0x00002900 /*floating point or coprocessor opcode*/
422#define OPFC_147 0x000028E0 /*floating point or coprocessor opcode*/
423#define OPFC_146 0x000028C0 /*floating point or coprocessor opcode*/
424#define OPFC_145 0x000028A0 /*floating point or coprocessor opcode*/
425#define OPFC_144 0x00002880 /*floating point or coprocessor opcode*/
426#define OPFC_143 0x00002860 /*floating point or coprocessor opcode*/
427#define OPFC_142 0x00002840 /*floating point or coprocessor opcode*/
428#define OPFC_141 0x00002820 /*floating point or coprocessor opcode*/
429#define OPFC_140 0x00002800 /*floating point or coprocessor opcode*/
430#define OPFC_13F 0x000027E0 /*floating point or coprocessor opcode*/
431#define OPFC_13E 0x000027C0 /*floating point or coprocessor opcode*/
432#define OPFC_13D 0x000027A0 /*floating point or coprocessor opcode*/
433#define OPFC_13C 0x00002780 /*floating point or coprocessor opcode*/
434#define OPFC_13B 0x00002760 /*floating point or coprocessor opcode*/
435#define OPFC_13A 0x00002740 /*floating point or coprocessor opcode*/
436#define OPFC_139 0x00002720 /*floating point or coprocessor opcode*/
437#define OPFC_138 0x00002700 /*floating point or coprocessor opcode*/
438#define OPFC_137 0x000026E0 /*floating point or coprocessor opcode*/
439#define OPFC_136 0x000026C0 /*floating point or coprocessor opcode*/
440#define OPFC_135 0x000026A0 /*floating point or coprocessor opcode*/
441#define OPFC_134 0x00002680 /*floating point or coprocessor opcode*/
442#define OPFC_133 0x00002660 /*floating point or coprocessor opcode*/
443#define OPFC_132 0x00002640 /*floating point or coprocessor opcode*/
444#define OPFC_131 0x00002620 /*floating point or coprocessor opcode*/
445#define OPFC_130 0x00002600 /*floating point or coprocessor opcode*/
446#define OPFC_12F 0x000025E0 /*floating point or coprocessor opcode*/
447#define OPFC_12E 0x000025C0 /*floating point or coprocessor opcode*/
448#define OPFC_12D 0x000025A0 /*floating point or coprocessor opcode*/
449#define OPFC_12C 0x00002580 /*floating point or coprocessor opcode*/
450#define OPFC_12B 0x00002560 /*floating point or coprocessor opcode*/
451#define OPFC_12A 0x00002540 /*floating point or coprocessor opcode*/
452#define OPFC_129 0x00002520 /*floating point or coprocessor opcode*/
453#define OPFC_128 0x00002500 /*floating point or coprocessor opcode*/
454#define OPFC_127 0x000024E0 /*floating point or coprocessor opcode*/
455#define OPFC_126 0x000024C0 /*floating point or coprocessor opcode*/
456#define OPFC_125 0x000024A0 /*floating point or coprocessor opcode*/
457#define OPFC_124 0x00002480 /*floating point or coprocessor opcode*/
458#define OPFC_123 0x00002460 /*floating point or coprocessor opcode*/
459#define OPFC_122 0x00002440 /*floating point or coprocessor opcode*/
460#define OPFC_121 0x00002420 /*floating point or coprocessor opcode*/
461#define OPFC_120 0x00002400 /*floating point or coprocessor opcode*/
462#define OPFC_11F 0x000023E0 /*floating point or coprocessor opcode*/
463#define OPFC_11E 0x000023C0 /*floating point or coprocessor opcode*/
464#define OPFC_11D 0x000023A0 /*floating point or coprocessor opcode*/
465#define OPFC_11C 0x00002380 /*floating point or coprocessor opcode*/
466#define OPFC_11B 0x00002360 /*floating point or coprocessor opcode*/
467#define OPFC_11A 0x00002340 /*floating point or coprocessor opcode*/
468#define OPFC_119 0x00002320 /*floating point or coprocessor opcode*/
469#define OPFC_118 0x00002300 /*floating point or coprocessor opcode*/
470#define OPFC_117 0x000022E0 /*floating point or coprocessor opcode*/
471#define OPFC_116 0x000022C0 /*floating point or coprocessor opcode*/
472#define OPFC_115 0x000022A0 /*floating point or coprocessor opcode*/
473#define OPFC_114 0x00002280 /*floating point or coprocessor opcode*/
474#define OPFC_113 0x00002260 /*floating point or coprocessor opcode*/
475#define OPFC_112 0x00002240 /*floating point or coprocessor opcode*/
476#define OPFC_111 0x00002220 /*floating point or coprocessor opcode*/
477#define OPFC_110 0x00002200 /*floating point or coprocessor opcode*/
478#define OPFC_10F 0x000021E0 /*floating point or coprocessor opcode*/
479#define OPFC_10E 0x000021C0 /*floating point or coprocessor opcode*/
480#define OPFC_10D 0x000021A0 /*floating point or coprocessor opcode*/
481#define OPFC_10C 0x00002180 /*floating point or coprocessor opcode*/
482#define OPFC_10B 0x00002160 /*floating point or coprocessor opcode*/
483#define OPFC_10A 0x00002140 /*floating point or coprocessor opcode*/
484#define OPFC_109 0x00002120 /*floating point or coprocessor opcode*/
485#define OPFC_108 0x00002100 /*floating point or coprocessor opcode*/
486#define OPFC_107 0x000020E0 /*floating point or coprocessor opcode*/
487#define OPFC_106 0x000020C0 /*floating point or coprocessor opcode*/
488#define OPFC_105 0x000020A0 /*floating point or coprocessor opcode*/
489#define OPFC_104 0x00002080 /*floating point or coprocessor opcode*/
490#define OPFC_103 0x00002060 /*floating point or coprocessor opcode*/
491#define OPFC_102 0x00002040 /*floating point or coprocessor opcode*/
492#define OPFC_101 0x00002020 /*floating point or coprocessor opcode*/
493#define OPFC_100 0x00002000 /*floating point or coprocessor opcode*/
494#define OPFC_0FF 0x00001FE0 /*floating point or coprocessor opcode*/
495#define OPFC_0FE 0x00001FC0 /*floating point or coprocessor opcode*/
496#define OPFC_0FD 0x00001FA0 /*floating point or coprocessor opcode*/
497#define OPFC_0FC 0x00001F80 /*floating point or coprocessor opcode*/
498#define OPFC_0FB 0x00001F60 /*floating point or coprocessor opcode*/
499#define OPFC_0FA 0x00001F40 /*floating point or coprocessor opcode*/
500#define OPFC_0F9 0x00001F20 /*floating point or coprocessor opcode*/
501#define OPFC_0F8 0x00001F00 /*floating point or coprocessor opcode*/
502#define OPFC_0F7 0x00001EE0 /*floating point or coprocessor opcode*/
503#define OPFC_0F6 0x00001EC0 /*floating point or coprocessor opcode*/
504#define OPFC_0F5 0x00001EA0 /*floating point or coprocessor opcode*/
505#define OPFC_0F4 0x00001E80 /*floating point or coprocessor opcode*/
506#define OPFC_0F3 0x00001E60 /*floating point or coprocessor opcode*/
507#define OPFC_0F2 0x00001E40 /*floating point or coprocessor opcode*/
508#define OPFC_0F1 0x00001E20 /*floating point or coprocessor opcode*/
509#define OPFC_0F0 0x00001E00 /*floating point or coprocessor opcode*/
510#define OPFC_0EF 0x00001DE0 /*floating point or coprocessor opcode*/
511#define OPFC_0EE 0x00001DC0 /*floating point or coprocessor opcode*/
512#define OPFC_0ED 0x00001DA0 /*floating point or coprocessor opcode*/
513#define OPFC_0EC 0x00001D80 /*floating point or coprocessor opcode*/
514#define OPFC_0EB 0x00001D60 /*floating point or coprocessor opcode*/
515#define OPFC_0EA 0x00001D40 /*floating point or coprocessor opcode*/
516#define OPFC_0E9 0x00001D20 /*floating point or coprocessor opcode*/
517#define OPFC_0E8 0x00001D00 /*floating point or coprocessor opcode*/
518#define OPFC_0E7 0x00001CE0 /*floating point or coprocessor opcode*/
519#define OPFC_0E6 0x00001CC0 /*floating point or coprocessor opcode*/
520#define OPFC_0E5 0x00001CA0 /*floating point or coprocessor opcode*/
521#define OPFC_0E4 0x00001C80 /*floating point or coprocessor opcode*/
522#define OPFC_0E3 0x00001C60 /*floating point or coprocessor opcode*/
523#define OPFC_0E2 0x00001C40 /*floating point or coprocessor opcode*/
524#define OPFC_0E1 0x00001C20 /*floating point or coprocessor opcode*/
525#define OPFC_0E0 0x00001C00 /*floating point or coprocessor opcode*/
526#define OPFC_0DF 0x00001BE0 /*floating point or coprocessor opcode*/
527#define OPFC_0DE 0x00001BC0 /*floating point or coprocessor opcode*/
528#define OPFC_0DD 0x00001BA0 /*floating point or coprocessor opcode*/
529#define OPFC_0DC 0x00001B80 /*floating point or coprocessor opcode*/
530#define OPFC_0DB 0x00001B60 /*floating point or coprocessor opcode*/
531#define OPFC_0DA 0x00001B40 /*floating point or coprocessor opcode*/
532#define OPFC_0D9 0x00001B20 /*floating point or coprocessor opcode*/
533#define OPFC_0D8 0x00001B00 /*floating point or coprocessor opcode*/
534#define OPFC_0D7 0x00001AE0 /*floating point or coprocessor opcode*/
535#define OPFC_0D6 0x00001AC0 /*floating point or coprocessor opcode*/
536#define OPFC_0D5 0x00001AA0 /*floating point or coprocessor opcode*/
537#define OPFC_0D4 0x00001A80 /*floating point or coprocessor opcode*/
538#define OPFC_0D3 0x00001A60 /*floating point or coprocessor opcode*/
539#define OPFC_0D2 0x00001A40 /*floating point or coprocessor opcode*/
540#define OPFC_0D1 0x00001A20 /*floating point or coprocessor opcode*/
541#define OPFC_0D0 0x00001A00 /*floating point or coprocessor opcode*/
542#define OPFC_0CF 0x000019E0 /*floating point or coprocessor opcode*/
543#define OPFC_0CE 0x000019C0 /*floating point or coprocessor opcode*/
544#define OPFC_0CD 0x000019A0 /*floating point or coprocessor opcode*/
545#define OPFC_0CC 0x00001980 /*floating point or coprocessor opcode*/
546#define OPFC_0CB 0x00001960 /*floating point or coprocessor opcode*/
547#define OPFC_0CA 0x00001940 /*floating point or coprocessor opcode*/
548#define OPFC_0C9 0x00001920 /*floating point or coprocessor opcode*/
549#define OPFC_0C8 0x00001900 /*floating point or coprocessor opcode*/
550#define OPFC_0C7 0x000018E0 /*floating point or coprocessor opcode*/
551#define OPFC_0C6 0x000018C0 /*floating point or coprocessor opcode*/
552#define OPFC_0C5 0x000018A0 /*floating point or coprocessor opcode*/
553#define OPFC_0C4 0x00001880 /*floating point or coprocessor opcode*/
554#define OPFC_0C3 0x00001860 /*floating point or coprocessor opcode*/
555#define OPFC_0C2 0x00001840 /*floating point or coprocessor opcode*/
556#define OPFC_0C1 0x00001820 /*floating point or coprocessor opcode*/
557#define OPFC_0C0 0x00001800 /*floating point or coprocessor opcode*/
558#define OPFC_0BF 0x000017E0 /*floating point or coprocessor opcode*/
559#define OPFC_0BE 0x000017C0 /*floating point or coprocessor opcode*/
560#define OPFC_0BD 0x000017A0 /*floating point or coprocessor opcode*/
561#define OPFC_0BC 0x00001780 /*floating point or coprocessor opcode*/
562#define OPFC_0BB 0x00001760 /*floating point or coprocessor opcode*/
563#define OPFC_0BA 0x00001740 /*floating point or coprocessor opcode*/
564#define OPFC_0B9 0x00001720 /*floating point or coprocessor opcode*/
565#define OPFC_0B8 0x00001700 /*floating point or coprocessor opcode*/
566#define OPFC_0B7 0x000016E0 /*floating point or coprocessor opcode*/
567#define OPFC_0B6 0x000016C0 /*floating point or coprocessor opcode*/
568#define OPFC_0B5 0x000016A0 /*floating point or coprocessor opcode*/
569#define OPFC_0B4 0x00001680 /*floating point or coprocessor opcode*/
570#define OPFC_0B3 0x00001660 /*floating point or coprocessor opcode*/
571#define OPFC_0B2 0x00001640 /*floating point or coprocessor opcode*/
572#define OPFC_0B1 0x00001620 /*floating point or coprocessor opcode*/
573#define OPFC_0B0 0x00001600 /*floating point or coprocessor opcode*/
574#define OPFC_0AF 0x000015E0 /*floating point or coprocessor opcode*/
575#define OPFC_0AE 0x000015C0 /*floating point or coprocessor opcode*/
576#define OPFC_0AD 0x000015A0 /*floating point or coprocessor opcode*/
577#define OPFC_0AC 0x00001580 /*floating point or coprocessor opcode*/
578#define OPFC_0AB 0x00001560 /*floating point or coprocessor opcode*/
579#define OPFC_0AA 0x00001540 /*floating point or coprocessor opcode*/
580#define OPFC_0A9 0x00001520 /*floating point or coprocessor opcode*/
581#define OPFC_0A8 0x00001500 /*floating point or coprocessor opcode*/
582#define OPFC_0A7 0x000014E0 /*floating point or coprocessor opcode*/
583#define OPFC_0A6 0x000014C0 /*floating point or coprocessor opcode*/
584#define OPFC_0A5 0x000014A0 /*floating point or coprocessor opcode*/
585#define OPFC_0A4 0x00001480 /*floating point or coprocessor opcode*/
586#define OPFC_0A3 0x00001460 /*floating point or coprocessor opcode*/
587#define OPFC_0A2 0x00001440 /*floating point or coprocessor opcode*/
588#define OPFC_0A1 0x00001420 /*floating point or coprocessor opcode*/
589#define OPFC_0A0 0x00001400 /*floating point or coprocessor opcode*/
590#define OPFC_09F 0x000013E0 /*floating point or coprocessor opcode*/
591#define OPFC_09E 0x000013C0 /*floating point or coprocessor opcode*/
592#define OPFC_09D 0x000013A0 /*floating point or coprocessor opcode*/
593#define OPFC_09C 0x00001380 /*floating point or coprocessor opcode*/
594#define OPFC_09B 0x00001360 /*floating point or coprocessor opcode*/
595#define OPFC_09A 0x00001340 /*floating point or coprocessor opcode*/
596#define OPFC_099 0x00001320 /*floating point or coprocessor opcode*/
597#define OPFC_098 0x00001300 /*floating point or coprocessor opcode*/
598#define OPFC_097 0x000012E0 /*floating point or coprocessor opcode*/
599#define OPFC_096 0x000012C0 /*floating point or coprocessor opcode*/
600#define OPFC_095 0x000012A0 /*floating point or coprocessor opcode*/
601#define OPFC_094 0x00001280 /*floating point or coprocessor opcode*/
602#define OPFC_093 0x00001260 /*floating point or coprocessor opcode*/
603#define OPFC_092 0x00001240 /*floating point or coprocessor opcode*/
604#define OPFC_091 0x00001220 /*floating point or coprocessor opcode*/
605#define OPFC_090 0x00001200 /*floating point or coprocessor opcode*/
606#define OPFC_08F 0x000011E0 /*floating point or coprocessor opcode*/
607#define OPFC_08E 0x000011C0 /*floating point or coprocessor opcode*/
608#define OPFC_08D 0x000011A0 /*floating point or coprocessor opcode*/
609#define OPFC_08C 0x00001180 /*floating point or coprocessor opcode*/
610#define OPFC_08B 0x00001160 /*floating point or coprocessor opcode*/
611#define OPFC_08A 0x00001140 /*floating point or coprocessor opcode*/
612#define OPFC_089 0x00001120 /*floating point or coprocessor opcode*/
613#define OPFC_088 0x00001100 /*floating point or coprocessor opcode*/
614#define OPFC_087 0x000010E0 /*floating point or coprocessor opcode*/
615#define OPFC_086 0x000010C0 /*floating point or coprocessor opcode*/
616#define OPFC_085 0x000010A0 /*floating point or coprocessor opcode*/
617#define OPFC_084 0x00001080 /*floating point or coprocessor opcode*/
618#define OPFC_083 0x00001060 /*floating point or coprocessor opcode*/
619#define OPFC_082 0x00001040 /*floating point or coprocessor opcode*/
620#define OPFC_081 0x00001020 /*floating point or coprocessor opcode*/
621#define OPFC_080 0x00001000 /*floating point or coprocessor opcode*/
622#define OPFC_07F 0x00000FE0 /*floating point or coprocessor opcode*/
623#define OPFC_07E 0x00000FC0 /*floating point or coprocessor opcode*/
624#define OPFC_07D 0x00000FA0 /*floating point or coprocessor opcode*/
625#define OPFC_07C 0x00000F80 /*floating point or coprocessor opcode*/
626#define OPFC_07B 0x00000F60 /*floating point or coprocessor opcode*/
627#define OPFC_07A 0x00000F40 /*floating point or coprocessor opcode*/
628#define OPFC_079 0x00000F20 /*floating point or coprocessor opcode*/
629#define OPFC_078 0x00000F00 /*floating point or coprocessor opcode*/
630#define OPFC_077 0x00000EE0 /*floating point or coprocessor opcode*/
631#define OPFC_076 0x00000EC0 /*floating point or coprocessor opcode*/
632#define OPFC_075 0x00000EA0 /*floating point or coprocessor opcode*/
633#define OPFC_074 0x00000E80 /*floating point or coprocessor opcode*/
634#define OPFC_073 0x00000E60 /*floating point or coprocessor opcode*/
635#define OPFC_072 0x00000E40 /*floating point or coprocessor opcode*/
636#define OPFC_071 0x00000E20 /*floating point or coprocessor opcode*/
637#define OPFC_070 0x00000E00 /*floating point or coprocessor opcode*/
638#define OPFC_06F 0x00000DE0 /*floating point or coprocessor opcode*/
639#define OPFC_06E 0x00000DC0 /*floating point or coprocessor opcode*/
640#define OPFC_06D 0x00000DA0 /*floating point or coprocessor opcode*/
641#define OPFC_06C 0x00000D80 /*floating point or coprocessor opcode*/
642#define OPFC_06B 0x00000D60 /*floating point or coprocessor opcode*/
643#define OPFC_06A 0x00000D40 /*floating point or coprocessor opcode*/
644#define OPFC_069 0x00000D20 /*floating point or coprocessor opcode*/
645#define OPFC_068 0x00000D00 /*floating point or coprocessor opcode*/
646#define OPFC_067 0x00000CE0 /*floating point or coprocessor opcode*/
647#define OPFC_066 0x00000CC0 /*floating point or coprocessor opcode*/
648#define OPFC_065 0x00000CA0 /*floating point or coprocessor opcode*/
649#define OPFC_064 0x00000C80 /*floating point or coprocessor opcode*/
650#define OPFC_063 0x00000C60 /*floating point or coprocessor opcode*/
651#define OPFC_062 0x00000C40 /*floating point or coprocessor opcode*/
652#define OPFC_061 0x00000C20 /*floating point or coprocessor opcode*/
653#define OPFC_060 0x00000C00 /*floating point or coprocessor opcode*/
654#define OPFC_05F 0x00000BE0 /*floating point or coprocessor opcode*/
655#define OPFC_05E 0x00000BC0 /*floating point or coprocessor opcode*/
656#define OPFC_05D 0x00000BA0 /*floating point or coprocessor opcode*/
657#define OPFC_05C 0x00000B80 /*floating point or coprocessor opcode*/
658#define OPFC_05B 0x00000B60 /*floating point or coprocessor opcode*/
659#define OPFC_05A 0x00000B40 /*floating point or coprocessor opcode*/
660#define OPFC_059 0x00000B20 /*floating point or coprocessor opcode*/
661#define OPFC_058 0x00000B00 /*floating point or coprocessor opcode*/
662#define OPFC_057 0x00000AE0 /*floating point or coprocessor opcode*/
663#define OPFC_056 0x00000AC0 /*floating point or coprocessor opcode*/
664#define OPFC_055 0x00000AA0 /*floating point or coprocessor opcode*/
665#define OPFC_054 0x00000A80 /*floating point or coprocessor opcode*/
666#define OPFC_053 0x00000A60 /*floating point or coprocessor opcode*/
667#define OPFC_052 0x00000A40 /*floating point or coprocessor opcode*/
668#define OPFC_051 0x00000A20 /*floating point or coprocessor opcode*/
669#define OPFC_050 0x00000A00 /*floating point or coprocessor opcode*/
670#define OPFC_04F 0x000009E0 /*floating point or coprocessor opcode*/
671#define OPFC_04E 0x000009C0 /*floating point or coprocessor opcode*/
672#define OPFC_04D 0x000009A0 /*floating point or coprocessor opcode*/
673#define OPFC_04C 0x00000980 /*floating point or coprocessor opcode*/
674#define OPFC_04B 0x00000960 /*floating point or coprocessor opcode*/
675#define OPFC_04A 0x00000940 /*floating point or coprocessor opcode*/
676#define OPFC_049 0x00000920 /*floating point or coprocessor opcode*/
677#define OPFC_048 0x00000900 /*floating point or coprocessor opcode*/
678#define OPFC_047 0x000008E0 /*floating point or coprocessor opcode*/
679#define OPFC_046 0x000008C0 /*floating point or coprocessor opcode*/
680#define OPFC_045 0x000008A0 /*floating point or coprocessor opcode*/
681#define OPFC_044 0x00000880 /*floating point or coprocessor opcode*/
682#define OPFC_043 0x00000860 /*floating point or coprocessor opcode*/
683#define OPFC_042 0x00000840 /*floating point or coprocessor opcode*/
684#define OPFC_041 0x00000820 /*floating point or coprocessor opcode*/
685#define OPFC_040 0x00000800 /*floating point or coprocessor opcode*/
686#define OPFC_03F 0x000007E0 /*floating point or coprocessor opcode*/
687#define OPFC_03E 0x000007C0 /*floating point or coprocessor opcode*/
688#define OPFC_03D 0x000007A0 /*floating point or coprocessor opcode*/
689#define OPFC_03C 0x00000780 /*floating point or coprocessor opcode*/
690#define OPFC_03B 0x00000760 /*floating point or coprocessor opcode*/
691#define OPFC_03A 0x00000740 /*floating point or coprocessor opcode*/
692#define OPFC_039 0x00000720 /*floating point or coprocessor opcode*/
693#define OPFC_038 0x00000700 /*floating point or coprocessor opcode*/
694#define OPFC_037 0x000006E0 /*floating point or coprocessor opcode*/
695#define OPFC_036 0x000006C0 /*floating point or coprocessor opcode*/
696#define OPFC_035 0x000006A0 /*floating point or coprocessor opcode*/
697#define OPFC_034 0x00000680 /*floating point or coprocessor opcode*/
698#define OPFC_033 0x00000660 /*floating point or coprocessor opcode*/
699#define OPFC_032 0x00000640 /*floating point or coprocessor opcode*/
700#define OPFC_031 0x00000620 /*floating point or coprocessor opcode*/
701#define OPFC_030 0x00000600 /*floating point or coprocessor opcode*/
702#define OPFC_02F 0x000005E0 /*floating point or coprocessor opcode*/
703#define OPFC_02E 0x000005C0 /*floating point or coprocessor opcode*/
704#define OPFC_02D 0x000005A0 /*floating point or coprocessor opcode*/
705#define OPFC_02C 0x00000580 /*floating point or coprocessor opcode*/
706#define OPFC_02B 0x00000560 /*floating point or coprocessor opcode*/
707#define OPFC_02A 0x00000540 /*floating point or coprocessor opcode*/
708#define OPFC_029 0x00000520 /*floating point or coprocessor opcode*/
709#define OPFC_028 0x00000500 /*floating point or coprocessor opcode*/
710#define OPFC_027 0x000004E0 /*floating point or coprocessor opcode*/
711#define OPFC_026 0x000004C0 /*floating point or coprocessor opcode*/
712#define OPFC_025 0x000004A0 /*floating point or coprocessor opcode*/
713#define OPFC_024 0x00000480 /*floating point or coprocessor opcode*/
714#define OPFC_023 0x00000460 /*floating point or coprocessor opcode*/
715#define OPFC_022 0x00000440 /*floating point or coprocessor opcode*/
716#define OPFC_021 0x00000420 /*floating point or coprocessor opcode*/
717#define OPFC_020 0x00000400 /*floating point or coprocessor opcode*/
718#define OPFC_01F 0x000003E0 /*floating point or coprocessor opcode*/
719#define OPFC_01E 0x000003C0 /*floating point or coprocessor opcode*/
720#define OPFC_01D 0x000003A0 /*floating point or coprocessor opcode*/
721#define OPFC_01C 0x00000380 /*floating point or coprocessor opcode*/
722#define OPFC_01B 0x00000360 /*floating point or coprocessor opcode*/
723#define OPFC_01A 0x00000340 /*floating point or coprocessor opcode*/
724#define OPFC_019 0x00000320 /*floating point or coprocessor opcode*/
725#define OPFC_018 0x00000300 /*floating point or coprocessor opcode*/
726#define OPFC_017 0x000002E0 /*floating point or coprocessor opcode*/
727#define OPFC_016 0x000002C0 /*floating point or coprocessor opcode*/
728#define OPFC_015 0x000002A0 /*floating point or coprocessor opcode*/
729#define OPFC_014 0x00000280 /*floating point or coprocessor opcode*/
730#define OPFC_013 0x00000260 /*floating point or coprocessor opcode*/
731#define OPFC_012 0x00000240 /*floating point or coprocessor opcode*/
732#define OPFC_011 0x00000220 /*floating point or coprocessor opcode*/
733#define OPFC_010 0x00000200 /*floating point or coprocessor opcode*/
734#define OPFC_00F 0x000001E0 /*floating point or coprocessor opcode*/
735#define OPFC_00E 0x000001C0 /*floating point or coprocessor opcode*/
736#define OPFC_00D 0x000001A0 /*floating point or coprocessor opcode*/
737#define OPFC_00C 0x00000180 /*floating point or coprocessor opcode*/
738#define OPFC_00B 0x00000160 /*floating point or coprocessor opcode*/
739#define OPFC_00A 0x00000140 /*floating point or coprocessor opcode*/
740#define OPFC_009 0x00000120 /*floating point or coprocessor opcode*/
741#define OPFC_008 0x00000100 /*floating point or coprocessor opcode*/
742#define OPFC_007 0x000000E0 /*floating point or coprocessor opcode*/
743#define OPFC_006 0x000000C0 /*floating point or coprocessor opcode*/
744#define OPFC_005 0x000000A0 /*floating point or coprocessor opcode*/
745#define OPFC_004 0x00000080 /*floating point or coprocessor opcode*/
746#define OPFC_003 0x00000060 /*floating point or coprocessor opcode*/
747#define OPFC_002 0x00000040 /*floating point or coprocessor opcode*/
748#define OPFC_001 0x00000020 /*floating point or coprocessor opcode*/
749#define OPFC_000 0x00000000 /*floating point or coprocessor opcode*/
750
751#define OPF2TO0_0 0x00000000 /* OPF opcode */
752#define OPF2TO0_1 0x00000020 /* OPF opcode */
753#define OPF2TO0_2 0x00000040 /* OPF opcode */
754#define OPF2TO0_3 0x00000050 /* OPF opcode */
755#define OPF2TO0_4 0x00000080 /* OPF opcode */
756#define OPF2TO0_5 0x000000A0 /* OPF opcode */
757#define OPF2TO0_6 0x000000C0 /* OPF opcode */
758#define OPF2TO0_7 0x000000E0 /* OPF opcode */
759
760#define OPF2_0 0x00000000
761#define OPF2_1 0x00000080
762
763#define OPFMOV_0 0x00000000
764#define OPFMOV_1 0x00000020
765#define OPFMOV_2 0x00000040
766#define OPFMOV_3 0x00000050
767#define OPFMOV_4 0x00000080
768#define OPFMOV_5 0x000000A0
769#define OPFMOV_6 0x000000C0
770#define OPFMOV_7 0x000000E0
771
772/* instruction fields: IU register equates */
773
774#define RD_i7 0x3E000000 /* destination register: %i7 */
775#define RD_i6 0x3C000000 /* destination register: %i6 */
776#define RD_i5 0x3A000000 /* destination register: %i5 */
777#define RD_i4 0x38000000 /* destination register: %i4 */
778#define RD_i3 0x36000000 /* destination register: %i3 */
779#define RD_i2 0x34000000 /* destination register: %i2 */
780#define RD_i1 0x32000000 /* destination register: %i1 */
781#define RD_i0 0x30000000 /* destination register: %i0 */
782#define RD_l7 0x2E000000 /* destination register: %l7 */
783#define RD_l6 0x2C000000 /* destination register: %l6 */
784#define RD_l5 0x2A000000 /* destination register: %l5 */
785#define RD_l4 0x28000000 /* destination register: %l4 */
786#define RD_l3 0x26000000 /* destination register: %l3 */
787#define RD_l2 0x24000000 /* destination register: %l2 */
788#define RD_l1 0x22000000 /* destination register: %l1 */
789#define RD_l0 0x20000000 /* destination register: %l0 */
790#define RD_o7 0x1E000000 /* destination register: %o7 */
791#define RD_o6 0x1C000000 /* destination register: %o6 */
792#define RD_o5 0x1A000000 /* destination register: %o5 */
793#define RD_o4 0x18000000 /* destination register: %o4 */
794#define RD_o3 0x16000000 /* destination register: %o3 */
795#define RD_o2 0x14000000 /* destination register: %o2 */
796#define RD_o1 0x12000000 /* destination register: %o1 */
797#define RD_o0 0x10000000 /* destination register: %o0 */
798#define RD_g7 0x0E000000 /* destination register: %g7 */
799#define RD_g6 0x0C000000 /* destination register: %g6 */
800#define RD_g5 0x0A000000 /* destination register: %g5 */
801#define RD_g4 0x08000000 /* destination register: %g4 */
802#define RD_g3 0x06000000 /* destination register: %g3 */
803#define RD_g2 0x04000000 /* destination register: %g2 */
804#define RD_g1 0x02000000 /* destination register: %g1 */
805#define RD_g0 0x00000000 /* destination register: %g0 */
806#define RS1_i7 0x0007C000 /* source register 1: %i7 */
807#define RS1_i6 0x00078000 /* source register 1: %i6 */
808#define RS1_i5 0x00074000 /* source register 1: %i5 */
809#define RS1_i4 0x00070000 /* source register 1: %i4 */
810#define RS1_i3 0x0006C000 /* source register 1: %i3 */
811#define RS1_i2 0x00068000 /* source register 1: %i2 */
812#define RS1_i1 0x00064000 /* source register 1: %i1 */
813#define RS1_i0 0x00060000 /* source register 1: %i0 */
814#define RS1_l7 0x0005C000 /* source register 1: %l7 */
815#define RS1_l6 0x00058000 /* source register 1: %l6 */
816#define RS1_l5 0x00054000 /* source register 1: %l5 */
817#define RS1_l4 0x00050000 /* source register 1: %l4 */
818#define RS1_l3 0x0004C000 /* source register 1: %l3 */
819#define RS1_l2 0x00048000 /* source register 1: %l2 */
820#define RS1_l1 0x00044000 /* source register 1: %l1 */
821#define RS1_l0 0x00040000 /* source register 1: %l0 */
822#define RS1_o7 0x0003C000 /* source register 1: %o7 */
823#define RS1_o6 0x00038000 /* source register 1: %o6 */
824#define RS1_o5 0x00034000 /* source register 1: %o5 */
825#define RS1_o4 0x00030000 /* source register 1: %o4 */
826#define RS1_o3 0x0002C000 /* source register 1: %o3 */
827#define RS1_o2 0x00028000 /* source register 1: %o2 */
828#define RS1_o1 0x00024000 /* source register 1: %o1 */
829#define RS1_o0 0x00020000 /* source register 1: %o0 */
830#define RS1_g7 0x0001C000 /* source register 1: %g7 */
831#define RS1_g6 0x00018000 /* source register 1: %g6 */
832#define RS1_g5 0x00014000 /* source register 1: %g5 */
833#define RS1_g4 0x00010000 /* source register 1: %g4 */
834#define RS1_g3 0x0000C000 /* source register 1: %g3 */
835#define RS1_g2 0x00008000 /* source register 1: %g2 */
836#define RS1_g1 0x00004000 /* source register 1: %g1 */
837#define RS1_g0 0x00000000 /* source register 1: %g0 */
838#define RS2_i7 0x0000001F /* source register 2: %i7 */
839#define RS2_i6 0x0000001E /* source register 2: %i6 */
840#define RS2_i5 0x0000001D /* source register 2: %i5 */
841#define RS2_i4 0x0000001C /* source register 2: %i4 */
842#define RS2_i3 0x0000001B /* source register 2: %i3 */
843#define RS2_i2 0x0000001A /* source register 2: %i2 */
844#define RS2_i1 0x00000019 /* source register 2: %i1 */
845#define RS2_i0 0x00000018 /* source register 2: %i0 */
846#define RS2_l7 0x00000017 /* source register 2: %l7 */
847#define RS2_l6 0x00000016 /* source register 2: %l6 */
848#define RS2_l5 0x00000015 /* source register 2: %l5 */
849#define RS2_l4 0x00000014 /* source register 2: %l4 */
850#define RS2_l3 0x00000013 /* source register 2: %l3 */
851#define RS2_l2 0x00000012 /* source register 2: %l2 */
852#define RS2_l1 0x00000011 /* source register 2: %l1 */
853#define RS2_l0 0x00000010 /* source register 2: %l0 */
854#define RS2_o7 0x0000000F /* source register 2: %o7 */
855#define RS2_o6 0x0000000E /* source register 2: %o6 */
856#define RS2_o5 0x0000000D /* source register 2: %o5 */
857#define RS2_o4 0x0000000C /* source register 2: %o4 */
858#define RS2_o3 0x0000000B /* source register 2: %o3 */
859#define RS2_o2 0x0000000A /* source register 2: %o2 */
860#define RS2_o1 0x00000009 /* source register 2: %o1 */
861#define RS2_o0 0x00000008 /* source register 2: %o0 */
862#define RS2_g7 0x00000007 /* source register 2: %g7 */
863#define RS2_g6 0x00000006 /* source register 2: %g6 */
864#define RS2_g5 0x00000005 /* source register 2: %g5 */
865#define RS2_g4 0x00000004 /* source register 2: %g4 */
866#define RS2_g3 0x00000003 /* source register 2: %g3 */
867#define RS2_g2 0x00000002 /* source register 2: %g2 */
868#define RS2_g1 0x00000001 /* source register 2: %g1 */
869#define RS2_g0 0x00000000 /* source register 2: %g0 */
870
871/* instruction fields: FP register equates */
872
873#define RD_f31 0x3E000000 /* destination register: %f31 */
874#define RD_f30 0x3C000000 /* destination register: %f30 */
875#define RD_f29 0x3A000000 /* destination register: %f29 */
876#define RD_f28 0x38000000 /* destination register: %f28 */
877#define RD_f27 0x36000000 /* destination register: %f27 */
878#define RD_f26 0x34000000 /* destination register: %f26 */
879#define RD_f25 0x32000000 /* destination register: %f25 */
880#define RD_f24 0x30000000 /* destination register: %f24 */
881#define RD_f23 0x2E000000 /* destination register: %f23 */
882#define RD_f22 0x2C000000 /* destination register: %f22 */
883#define RD_f21 0x2A000000 /* destination register: %f21 */
884#define RD_f20 0x28000000 /* destination register: %f20 */
885#define RD_f19 0x26000000 /* destination register: %f19 */
886#define RD_f18 0x24000000 /* destination register: %f18 */
887#define RD_f17 0x22000000 /* destination register: %f17 */
888#define RD_f16 0x20000000 /* destination register: %f16 */
889#define RD_f15 0x1E000000 /* destination register: %f15 */
890#define RD_f14 0x1C000000 /* destination register: %f14 */
891#define RD_f13 0x1A000000 /* destination register: %f13 */
892#define RD_f12 0x18000000 /* destination register: %f12 */
893#define RD_f11 0x16000000 /* destination register: %f11 */
894#define RD_f10 0x14000000 /* destination register: %f10 */
895#define RD_f09 0x12000000 /* destination register: %f09 */
896#define RD_f08 0x10000000 /* destination register: %f08 */
897#define RD_f07 0x0E000000 /* destination register: %f07 */
898#define RD_f06 0x0C000000 /* destination register: %f06 */
899#define RD_f05 0x0A000000 /* destination register: %f05 */
900#define RD_f04 0x08000000 /* destination register: %f04 */
901#define RD_f03 0x06000000 /* destination register: %f03 */
902#define RD_f02 0x04000000 /* destination register: %f02 */
903#define RD_f01 0x02000000 /* destination register: %f01 */
904#define RD_f00 0x00000000 /* destination register: %f00 */
905#define RS1_f31 0x0007C000 /* source register 1: %f31 */
906#define RS1_f30 0x00078000 /* source register 1: %f30 */
907#define RS1_f29 0x00074000 /* source register 1: %f29 */
908#define RS1_f28 0x00070000 /* source register 1: %f28 */
909#define RS1_f27 0x0006C000 /* source register 1: %f27 */
910#define RS1_f26 0x00068000 /* source register 1: %f26 */
911#define RS1_f25 0x00064000 /* source register 1: %f25 */
912#define RS1_f24 0x00060000 /* source register 1: %f24 */
913#define RS1_f23 0x0005C000 /* source register 1: %f23 */
914#define RS1_f22 0x00058000 /* source register 1: %f22 */
915#define RS1_f21 0x00054000 /* source register 1: %f21 */
916#define RS1_f20 0x00050000 /* source register 1: %f20 */
917#define RS1_f19 0x0004C000 /* source register 1: %f19 */
918#define RS1_f18 0x00048000 /* source register 1: %f18 */
919#define RS1_f17 0x00044000 /* source register 1: %f17 */
920#define RS1_f16 0x00040000 /* source register 1: %f16 */
921#define RS1_f15 0x0003C000 /* source register 1: %f15 */
922#define RS1_f14 0x00038000 /* source register 1: %f14 */
923#define RS1_f13 0x00034000 /* source register 1: %f13 */
924#define RS1_f12 0x00030000 /* source register 1: %f12 */
925#define RS1_f11 0x0002C000 /* source register 1: %f11 */
926#define RS1_f10 0x00028000 /* source register 1: %f10 */
927#define RS1_f09 0x00024000 /* source register 1: %f09 */
928#define RS1_f08 0x00020000 /* source register 1: %f08 */
929#define RS1_f07 0x0001C000 /* source register 1: %f07 */
930#define RS1_f06 0x00018000 /* source register 1: %f06 */
931#define RS1_f05 0x00014000 /* source register 1: %f05 */
932#define RS1_f04 0x00010000 /* source register 1: %f04 */
933#define RS1_f03 0x0000C000 /* source register 1: %f03 */
934#define RS1_f02 0x00008000 /* source register 1: %f02 */
935#define RS1_f01 0x00004000 /* source register 1: %f01 */
936#define RS1_f00 0x00000000 /* source register 1: %f00 */
937#define RS2_f31 0x0000001F /* source register 2: %f31 */
938#define RS2_f30 0x0000001E /* source register 2: %f30 */
939#define RS2_f29 0x0000001D /* source register 2: %f29 */
940#define RS2_f28 0x0000001C /* source register 2: %f28 */
941#define RS2_f27 0x0000001B /* source register 2: %f27 */
942#define RS2_f26 0x0000001A /* source register 2: %f26 */
943#define RS2_f25 0x00000019 /* source register 2: %f25 */
944#define RS2_f24 0x00000018 /* source register 2: %f24 */
945#define RS2_f23 0x00000017 /* source register 2: %f23 */
946#define RS2_f22 0x00000016 /* source register 2: %f22 */
947#define RS2_f21 0x00000015 /* source register 2: %f21 */
948#define RS2_f20 0x00000014 /* source register 2: %f20 */
949#define RS2_f19 0x00000013 /* source register 2: %f19 */
950#define RS2_f18 0x00000012 /* source register 2: %f18 */
951#define RS2_f17 0x00000011 /* source register 2: %f17 */
952#define RS2_f16 0x00000010 /* source register 2: %f16 */
953#define RS2_f15 0x0000000F /* source register 2: %f15 */
954#define RS2_f14 0x0000000E /* source register 2: %f14 */
955#define RS2_f13 0x0000000D /* source register 2: %f13 */
956#define RS2_f12 0x0000000C /* source register 2: %f12 */
957#define RS2_f11 0x0000000B /* source register 2: %f11 */
958#define RS2_f10 0x0000000A /* source register 2: %f10 */
959#define RS2_f09 0x00000009 /* source register 2: %f09 */
960#define RS2_f08 0x00000008 /* source register 2: %f08 */
961#define RS2_f07 0x00000007 /* source register 2: %f07 */
962#define RS2_f06 0x00000006 /* source register 2: %f06 */
963#define RS2_f05 0x00000005 /* source register 2: %f05 */
964#define RS2_f04 0x00000004 /* source register 2: %f04 */
965#define RS2_f03 0x00000003 /* source register 2: %f03 */
966#define RS2_f02 0x00000002 /* source register 2: %f02 */
967#define RS2_f01 0x00000001 /* source register 2: %f01 */
968#define RS2_f00 0x00000000 /* source register 2: %f00 */
969
970/* instruction fields: miscellaneous equates */
971
972#define A_1 0x20000000 /* annul bit on */
973#define A_0 0x00000000 /* annul bit off */
974
975#define PRED_1 0x00080000 /* prediction bit on */
976#define PRED_0 0x00000000 /* prediction bit off */
977#define CC_I 0x00000000 /* use 32 bit cc */
978#define CC_X 0x00200000 /* use 64 bit cc */
979#define FCC_FCC0 0x00000000 /* use fcc0 */
980#define FCC_FCC1 0x00100000 /* use fcc1 */
981#define FCC_FCC2 0x00200000 /* use fcc2 */
982#define FCC_FCC3 0x00300000 /* use fcc3 */
983#define FCMPCC_FCC0 0x00000000 /* use fcc0 */
984#define FCMPCC_FCC1 0x02000000 /* use fcc1 */
985#define FCMPCC_FCC2 0x04000000 /* use fcc2 */
986#define FCMPCC_FCC3 0x06000000 /* use fcc3 */
987#define MIF_I 0x00040000 /* use integer condition codes */
988#define MIF_F 0x00000000 /* use floating condition codes */
989#define MIF_F_MASK 0xfffbffff /* use use to mask out cc2 bit */
990#define MCC_I 0x00000000 /* use 32 bit cc */
991#define MCC_X 0x00001000 /* use 64 bit cc */
992#define MCC_FCC0 0x00000000 /* use fcc0 */
993#define MCC_FCC1 0x00000800 /* use fcc1 */
994#define MCC_FCC2 0x00001000 /* use fcc2 */
995#define MCC_FCC3 0x00001800 /* use fcc3 */
996#define FMIF_I 0x00002000 /* use integer condition codes */
997#define FMIF_F 0x00000000 /* use floating condition codes */
998#define FMCC_I 0x00002000 /* use 32 bit cc */
999#define FMCC_X 0x00003000 /* use 64 bit cc */
1000#define FMCC_FCC0 0x00000000 /* use fcc0 */
1001#define FMCC_FCC1 0x00000800 /* use fcc1 */
1002#define FMCC_FCC2 0x00001000 /* use fcc2 */
1003#define FMCC_FCC3 0x00001800 /* use fcc3 */
1004
1005#define COND_F 0x1E000000 /* test condition F */
1006#define COND_E 0x1C000000 /* test condition E */
1007#define COND_D 0x1A000000 /* test condition D */
1008#define COND_C 0x18000000 /* test condition C */
1009#define COND_B 0x16000000 /* test condition B */
1010#define COND_A 0x14000000 /* test condition A */
1011#define COND_9 0x12000000 /* test condition 9 */
1012#define COND_8 0x10000000 /* test condition 8 */
1013#define COND_7 0x0E000000 /* test condition 7 */
1014#define COND_6 0x0C000000 /* test condition 6 */
1015#define COND_5 0x0A000000 /* test condition 5 */
1016#define COND_4 0x08000000 /* test condition 4 */
1017#define COND_3 0x06000000 /* test condition 3 */
1018#define COND_2 0x04000000 /* test condition 2 */
1019#define COND_1 0x02000000 /* test condition 1 */
1020#define COND_0 0x00000000 /* test condition 0 */
1021
1022
1023#define RCOND_7 0x0E000000 /* test register-contents condition 7 */
1024#define RCOND_6 0x0C000000 /* test register-contents condition 6 */
1025#define RCOND_5 0x0A000000 /* test register-contents condition 5 */
1026#define RCOND_4 0x08000000 /* test register-contents condition 4 */
1027#define RCOND_3 0x06000000 /* test register-contents condition 3 */
1028#define RCOND_2 0x04000000 /* test register-contents condition 2 */
1029#define RCOND_1 0x02000000 /* test register-contents condition 1 */
1030#define RCOND_0 0x00000000 /* test register-contents condition 0 */
1031
1032#define MRCOND_7 0x00001C00 /* test register-contents condition 7 */
1033#define MRCOND_6 0x00001800 /* test register-contents condition 6 */
1034#define MRCOND_5 0x00001400 /* test register-contents condition 5 */
1035#define MRCOND_4 0x00001000 /* test register-contents condition 4 */
1036#define MRCOND_3 0x00000C00 /* test register-contents condition 3 */
1037#define MRCOND_2 0x00000800 /* test register-contents condition 2 */
1038#define MRCOND_1 0x00000400 /* test register-contents condition 1 */
1039#define MRCOND_0 0x00000000 /* test register-contents condition 0 */
1040
1041#define MCOND_0 0x00000000 /* cond in move conditional */
1042#define MCOND_1 0x00004000 /* cond in move conditional */
1043#define MCOND_2 0x00008000 /* cond in move conditional */
1044#define MCOND_3 0x0000C000 /* cond in move conditional */
1045#define MCOND_4 0x00010000 /* cond in move conditional */
1046#define MCOND_5 0x00014000 /* cond in move conditional */
1047#define MCOND_6 0x00018000 /* cond in move conditional */
1048#define MCOND_7 0x0001C000 /* cond in move conditional */
1049#define MCOND_8 0x00020000 /* cond in move conditional */
1050#define MCOND_9 0x00024000 /* cond in move conditional */
1051#define MCOND_A 0x00028000 /* cond in move conditional */
1052#define MCOND_B 0x0002C000 /* cond in move conditional */
1053#define MCOND_C 0x00030000 /* cond in move conditional */
1054#define MCOND_D 0x00034000 /* cond in move conditional */
1055#define MCOND_E 0x00038000 /* cond in move conditional */
1056#define MCOND_F 0x0003C000 /* cond in move conditional */
1057
1058#define I_1 0x00002000 /* second ALU operand is simm13*/
1059#define I_0 0x00000000 /* second ALU operand is rs2 and possibly ASI */
1060#define ASI_SUPER_D 0x00000160 /* alternate address space: supervisor data */
1061#define ASI_USER_D 0x00000140 /* alternate address space: user data */
1062#define ASI_SUPER_I 0x00000120 /* alternate address space: supervisor instruction */
1063#define ASI_USER_I 0x00000100 /* alternate address space: user instruction */
1064
1065 /* Function types for the Q saved instruction */
1066
1067#define SAVED_fcn0 0x00000000 /* saved instruction */
1068#define SAVED_fcn1 0x02000000 /* restored instruction */
1069#define SAVED_fcn2 0x04000000 /* allclean instruction */
1070#define SAVED_fcn3 0x06000000 /* otherw instruction */
1071#define SAVED_fcn4 0x08000000 /* normalw instruction */
1072#define SAVED_fcn5 0x0a000000 /* invalw instruction */
1073
1074 /* trap vs. hypertrap differentiation */
1075
1076#define HTRAP 0x00000080 /* bit 7 of trap number field set if htrap */
1077
1078/* instruction types */
1079
1080/* Listed mostly in alphabetical order
1081 * Note that assembly language formats are the overriding concern here.
1082 * Sometimes an instruction and it's assebly language format map
1083 * one-to-one, but generally, instructions are grouped by the way they
1084 * print.
1085 *
1086 * Values must be chosen with care because of the interaction between
1087 * the integer version of the instruction type in the INST table
1088 * and the byte version in the format table.
1089 *
1090 * itXxxx values should be 1 - 255.
1091 * 0 is reserved to mark the end of the format table.
1092 * values outside the 1 - 255 range (e.g. -1) are reserved for
1093 * spotting difficult instructions. These special values can
1094 * not appear in the format table.
1095 */
1096
1097 /*
1098 * This is where special cases go.. We catch them right away in
1099 * dsmPrint and handle them separately
1100 */
1101
1102 /*
1103 * Notice that there is no entry for zero. That's so we know when
1104 * we've hit the end of the format table
1105 */
1106#define itArgAddress 0x01
1107#define itArgMaybeRs1Rd 0x02
1108#define itArgMaybeRs2Rd 0x03
1109#define itArgRd 0x04
1110#define itArgRegOrUimm 0x05
1111#define itArgRegOrUimmRd 0x06
1112#define itArgToAddress 0x07
1113#define itBranch 0x08
1114#define itBtst 0x09
1115#define itCall 0x0A
1116#define itCmp 0x0B
1117#define itCpop1 0x0C
1118#define itCpop2 0x0D
1119#define itFP2op 0x0E
1120#define itFP3op 0x0F
1121#define itFPCmp 0x10
1122#define itFpop1 0x11
1123#define itFpop2 0x12
1124#define itInc 0x13
1125#define itIU3op 0x14
1126#define itIU3opSimm 0x15
1127#define itJmpl 0x16
1128#define itLd 0x17
1129#define itLdAsi 0x18
1130#define itLdCreg 0x19
1131#define itLdCspec 0x1A
1132#define itLdFreg 0x1B
1133#define itLdFspec 0x1C
1134#define itMovSpec 0x1D
1135#define itNoArg 0x1E
1136#define itRdSpec 0x1F
1137#define itSethi 0x20
1138#define itShift 0x21
1139#define itSt 0x22
1140#define itStAsi 0x23
1141#define itStCreg 0x24
1142#define itStCspec 0x25
1143#define itStFreg 0x26
1144#define itStFspec 0x27
1145#define itTrap 0x28
1146#define itTst 0x29
1147#define itUnimp 0x2A
1148#define itWrSpec 0x2B
1149
1150#define itBranchP 0x2C
1151#define itBReg 0x2D
1152#define itCas 0x2E
1153#define itCasAsi 0x2F
1154#define itLdFregAsi 0x30
1155#define itLdFspecAsi 0x31
1156#define itMovCc 0x32
1157#define itMovRCc 0x33
1158#define itPopc 0x34
1159#define itShiftX 0x35
1160#define itStFregAsi 0x36
1161#define itStFspecAsi 0x37
1162#define itPrefetch 0x38
1163#define itFMovCc 0x39
1164#define itFMovRCc 0x3A
1165#define itFBranchP 0x3B
1166#define itMembar 0x3C
1167#define itFPCmpX 0x3D
1168#define itTrapX 0x3E
1169#define itSP3op 0x3F
1170
1171/*for mixed precision operands */
1172#define itFP3op1 0x41
1173#define itFP3opm 0x42
1174#define itFP2op1 0x43
1175#define itFP2op2 0x44
1176#define itFP2op_1 0x45
1177#define itFP2op_2 0x46
1178
1179/*For the SGI instructions */
1180#define itFP3opG 0x47
1181#define itFP3opGm 0x48
1182#define itFP3opG_1 0x49
1183#define itFP3opGX 0x4A
1184#define itFP3opGXm 0x4B
1185#define itFP2opG 0x4C
1186#define itFP2opGa 0x4D
1187#define itFP2opGXm 0x4E
1188#define itFP2opG_1 0x4F
1189#define itFP1opG 0x50
1190
1191/* byte insert / extract */
1192#define itFP2opGbyt 0x51
1193#define itFP3opGbyt 0x52
1194
1195/* for flusha only, currently */
1196#define itArgAddressAsi 0x53
1197
1198/* the following structure is not size compatible with the
1199 one for the Motorola 68k family due to changed word size. */
1200
1201typedef struct
1202 {
1203 const char *name;
1204 uint32_t op;
1205 uint32_t mask;
1206 int type;
1207 } INST;
1208
1209extern INST inst[];
1210
1211/*
1212 * Instruction Format tokens
1213 */
1214
1215#define atEnd 0x0 /* MUST be zero */
1216#define atOp 0x01
1217#define atTab 0x02
1218#define atComma 0x03
1219#define atRs1 0x04
1220#define atRegOrUimm 0x05
1221#define atRegOrSimm 0x06
1222#define atRd 0x07
1223#define atAnnul 0x08
1224#define atAddress 0x09
1225#define atAsi 0x0A
1226#define atConst22 0x0B
1227#define atCregRd 0x0C
1228#define atCregRs1 0x0D
1229#define atCregRs2 0x0E
1230#define atCspec 0x0F
1231#define atDisp22 0x10
1232#define atImm22 0x11
1233#define atOpfc 0x12
1234#define atDisp30 0x13
1235#define atFregRd 0x14
1236#define atFregRs1 0x15
1237#define atFregRs2 0x16
1238#define atFspec 0x17
1239#define atShift 0x18
1240#define atSpec 0x19
1241#define atToAddress 0x1A
1242#define atToRegAddr 0x1B
1243#define atTrap 0x1C
1244#define atSimmInc 0x1D
1245#define atMaybeRs1 0x1E
1246#define atMaybeRs2 0x1F
1247
1248#define atCasAddr 0x20
1249#define atCc 0x21
1250#define atDisp19 0x22
1251#define atDisp16 0x23
1252#define atMovCc 0x24
1253#define atPred 0x25
1254#define atShiftX 0x26
1255#define atRegOrSimm11 0x27
1256#define atRs2 0x28
1257#define atFCc 0x29
1258#define atConstMembar 0x2A
1259#define atTrapCc 0x2B
1260#define atFcmpCc 0x2C
1261#define atSDQ 0x2D
1262#define atFMovCc 0x2E
1263#define atX 0x2F
1264#define atFPred 0x30
1265#define atRegOrSimm13 0x31
1266#define atFregRs2m 0x32
1267#define atFregRd1 0x33
1268#define atFregRd_1 0x34
1269#define atFregRd2 0x35
1270#define atFregRd_2 0x36
1271
1272#define atFregRs1G 0x38
1273#define atFregRs2G 0x39
1274#define atFregRdG 0x4A
1275#define atFregRs1G1 0x4B
1276#define atFregRs2G1 0x4C
1277#define atFregRdG1 0x4D
1278#define atFregRs1G_1 0x4E
1279#define atFregRs2G_1 0x4F
1280#define atFregRdG_1 0x50
1281#define atRegOrSimm10 0x52
1282
1283/* for byte insert / extract */
1284#define atByteLen 0x53
1285#define atByteShift 0x54
1286
1287#define atFcn 0x55
1288#define atFregRd_i 0x51
1289#define atIregRdOrFregRd 0x37
1290
1291#ifdef __cplusplus
1292}
1293#endif
1294
1295#endif /* _TSPARCV9_DIS_PRIV_H */