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

Subversion Repositories or1k

[/] [or1k/] [tags/] [start/] [gdb-5.0/] [utils/] [amd-udi/] [include/] [opcodes.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 106 markom
/* @(#)opcodes.h        5.19 93/08/10 17:49:11, Srini,AMD */
2
/******************************************************************************
3
 * Copyright 1991 Advanced Micro Devices, Inc.
4
 *
5
 * This software is the property of Advanced Micro Devices, Inc  (AMD)  which
6
 * specifically  grants the user the right to modify, use and distribute this
7
 * software provided this notice is not removed or altered.  All other rights
8
 * are reserved by AMD.
9
 *
10
 * AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS
11
 * SOFTWARE.  IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL
12
 * DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR
13
 * USE OF THIS SOFTWARE.
14
 *
15
 * So that all may benefit from your experience, please report  any  problems
16
 * or  suggestions about this software to the 29K Technical Support Center at
17
 * 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131  in  the  UK,  or
18
 * 0031-11-1129 in Japan, toll free.  The direct dial number is 512-462-4118.
19
 *
20
 * Advanced Micro Devices, Inc.
21
 * 29K Support Products
22
 * Mail Stop 573
23
 * 5900 E. Ben White Blvd.
24
 * Austin, TX 78741
25
 * 800-292-9263
26
 *****************************************************************************
27
 *      Engineer: Srini Subramanian.
28
 *****************************************************************************
29
 **
30
 **       This file gives the definitions of opcodes in the Am29000
31
 **       processor.
32
 **
33
 **       This file defines the opcodes used in the Am29000 processor.
34
 **       The opcodes here are defined as the first eight-bit field in
35
 **       the (32-bit) instruction.  Note that many instructions are
36
 **       defined with a "mode bit" in the least significant bit of the
37
 **       opcode field.  In this definition, instructions with
38
 **       different mode bits are treated as different instructions.
39
 **       This allows consistent processing of eight bit opcodes.
40
 **
41
 **       For instance, AND with the mode bit set to zero (M=0) defines
42
 **       the third eight bit field in the instruction word as being
43
 **       the content of a register.  When M=1 the content of the third
44
 **       field is taken to be an immediate value, zero-extended to 32
45
 **       bits.
46
 **
47
 **       The #define statements below will treat AND as two different
48
 **       instructions called AND0 and AND1.  As you might suspect,
49
 **       AND0 is describes the opcode AND when M=0 and AND1 describes
50
 **       the opcode AND where M=1.
51
 **
52
 **       Note1: Wherever the name of an opcode as listed in the User's
53
 **              Manual confilcts with either a reserved keyword, or a
54
 **              previously defined opcode, "_op" is appended to the
55
 **              name.
56
 **
57
 **       Note2: These opcodes are sorted in numerical order.
58
 **
59
 **       Note3: Opcodes are broken up into groups of 16 (16#n0# to
60
 **              16#nF#).
61
 **
62
 **       Note4: When no opcode is defined, a variable of the name
63
 **              illegal_nn is declared in that space.  The value of
64
 **              "nn" is the number of the opcode in hexadecimal.
65
 **
66
 *****************************************************************************
67
 */
68
 
69
#ifndef _OPCODES_H_INCLUDED_
70
#define _OPCODES_H_INCLUDED_
71
 
72
#define   ILLEGAL_00   0x00
73
#define   CONSTN       0x01
74
#define   CONSTH       0x02
75
#define   CONST        0x03
76
#define   MTSRIM       0x04
77
#define   CONSTHZ      0x05
78
#define   LOADL0       0x06
79
#define   LOADL1       0x07
80
#define   CLZ0         0x08
81
#define   CLZ1         0x09
82
#define   EXBYTE0      0x0A
83
#define   EXBYTE1      0x0B
84
#define   INBYTE0      0x0C
85
#define   INBYTE1      0x0D
86
#define   STOREL0      0x0E
87
#define   STOREL1      0x0F
88
 
89
#define   ADDS0        0x10
90
#define   ADDS1        0x11
91
#define   ADDU0        0x12
92
#define   ADDU1        0x13
93
#define   ADD0         0x14
94
#define   ADD1         0x15
95
#define   LOAD0        0x16
96
#define   LOAD1        0x17
97
#define   ADDCS0       0x18
98
#define   ADDCS1       0x19
99
#define   ADDCU0       0x1A
100
#define   ADDCU1       0x1B
101
#define   ADDC0        0x1C
102
#define   ADDC1        0x1D
103
#define   STORE0       0x1E
104
#define   STORE1       0x1F
105
 
106
#define   SUBS0        0x20
107
#define   SUBS1        0x21
108
#define   SUBU0        0x22
109
#define   SUBU1        0x23
110
#define   SUB0         0x24
111
#define   SUB1         0x25
112
#define   LOADSET0     0x26
113
#define   LOADSET1     0x27
114
#define   SUBCS0       0x28
115
#define   SUBCS1       0x29
116
#define   SUBCU0       0x2A
117
#define   SUBCU1       0x2B
118
#define   SUBC0        0x2C
119
#define   SUBC1        0x2D
120
#define   CPBYTE0      0x2E
121
#define   CPBYTE1      0x2F
122
 
123
#define   SUBRS0       0x30
124
#define   SUBRS1       0x31
125
#define   SUBRU0       0x32
126
#define   SUBRU1       0x33
127
#define   SUBR0        0x34
128
#define   SUBR1        0x35
129
#define   LOADM0       0x36
130
#define   LOADM1       0x37
131
#define   SUBRCS0      0x38
132
#define   SUBRCS1      0x39
133
#define   SUBRCU0      0x3A
134
#define   SUBRCU1      0x3B
135
#define   SUBRC0       0x3C
136
#define   SUBRC1       0x3D
137
#define   STOREM0      0x3E
138
#define   STOREM1      0x3F
139
 
140
#define   CPLT0        0x40
141
#define   CPLT1        0x41
142
#define   CPLTU0       0x42
143
#define   CPLTU1       0x43
144
#define   CPLE0        0x44
145
#define   CPLE1        0x45
146
#define   CPLEU0       0x46
147
#define   CPLEU1       0x47
148
#define   CPGT0        0x48
149
#define   CPGT1        0x49
150
#define   CPGTU0       0x4A
151
#define   CPGTU1       0x4B
152
#define   CPGE0        0x4C
153
#define   CPGE1        0x4D
154
#define   CPGEU0       0x4E
155
#define   CPGEU1       0x4F
156
 
157
#define   ASLT0        0x50
158
#define   ASLT1        0x51
159
#define   ASLTU0       0x52
160
#define   ASLTU1       0x53
161
#define   ASLE0        0x54
162
#define   ASLE1        0x55
163
#define   ASLEU0       0x56
164
#define   ASLEU1       0x57
165
#define   ASGT0        0x58
166
#define   ASGT1        0x59
167
#define   ASGTU0       0x5A
168
#define   ASGTU1       0x5B
169
#define   ASGE0        0x5C
170
#define   ASGE1        0x5D
171
#define   ASGEU0       0x5E
172
#define   ASGEU1       0x5F
173
 
174
#define   CPEQ0        0x60
175
#define   CPEQ1        0x61
176
#define   CPNEQ0       0x62
177
#define   CPNEQ1       0x63
178
#define   MUL0         0x64
179
#define   MUL1         0x65
180
#define   MULL0        0x66
181
#define   MULL1        0x67
182
#define   DIV0_OP0     0x68
183
#define   DIV0_OP1     0x69
184
#define   DIV_OP0      0x6A
185
#define   DIV_OP1      0x6B
186
#define   DIVL0        0x6C
187
#define   DIVL1        0x6D
188
#define   DIVREM0      0x6E
189
#define   DIVREM1      0x6F
190
 
191
#define   ASEQ0        0x70
192
#define   ASEQ1        0x71
193
#define   ASNEQ0       0x72
194
#define   ASNEQ1       0x73
195
#define   MULU0        0x74
196
#define   MULU1        0x75
197
#define   ILLEGAL_76   0x76
198
#define   ILLEGAL_77   0x77
199
#define   INHW0        0x78
200
#define   INHW1        0x79
201
#define   EXTRACT0     0x7A
202
#define   EXTRACT1     0x7B
203
#define   EXHW0        0x7C
204
#define   EXHW1        0x7D
205
#define   EXHWS        0x7E
206
#define   ILLEGAL_7F   0x7F
207
 
208
#define   SLL0         0x80
209
#define   SLL1         0x81
210
#define   SRL0         0x82
211
#define   SRL1         0x83
212
#define   ILLEGAL_84   0x84
213
#define   ILLEGAL_85   0x85
214
#define   SRA0         0x86
215
#define   SRA1         0x87
216
#define   IRET         0x88
217
#define   HALT_OP      0x89
218
#define   ILLEGAL_8A   0x8A
219
#define   ILLEGAL_8B   0x8B
220
#define   IRETINV      0x8C
221
#define   ILLEGAL_8D   0x8D
222
#define   ILLEGAL_8E   0x8E
223
#define   ILLEGAL_8F   0x8F
224
 
225
#define   AND_OP0      0x90
226
#define   AND_OP1      0x91
227
#define   OR_OP0       0x92
228
#define   OR_OP1       0x93
229
#define   XOR_OP0      0x94
230
#define   XOR_OP1      0x95
231
#define   XNOR0        0x96
232
#define   XNOR1        0x97
233
#define   NOR0         0x98
234
#define   NOR1         0x99
235
#define   NAND0        0x9A
236
#define   NAND1        0x9B
237
#define   ANDN0        0x9C
238
#define   ANDN1        0x9D
239
#define   SETIP        0x9E
240
#define   INV          0x9F
241
 
242
#define   JMP0         0xA0
243
#define   JMP1         0xA1
244
#define   ILLEGAL_A2   0xA2
245
#define   ILLEGAL_A3   0xA3
246
#define   JMPF0        0xA4
247
#define   JMPF1        0xA5
248
#define   ILLEGAL_A6   0xA6
249
#define   ILLEGAL_A7   0xA7
250
#define   CALL0        0xA8
251
#define   CALL1        0xA9
252
#define   ORN_OP0       0xAA
253
#define   ORN_OP1       0xAB
254
#define   JMPT0        0xAC
255
#define   JMPT1        0xAD
256
#define   ILLEGAL_AE   0xAE
257
#define   ILLEGAL_AF   0xAF
258
 
259
#define   ILLEGAL_B0   0xB0
260
#define   ILLEGAL_B1   0xB1
261
#define   ILLEGAL_B2   0xB2
262
#define   ILLEGAL_B3   0xB3
263
#define   JMPFDEC0     0xB4
264
#define   JMPFDEC1     0xB5
265
#define   MFTLB        0xB6
266
#define   ILLEGAL_B7   0xB7
267
#define   ILLEGAL_B8   0xB8
268
#define   ILLEGAL_B9   0xB9
269
#define   ILLEGAL_BA   0xBA
270
#define   ILLEGAL_BB   0xBB
271
#define   ILLEGAL_BC   0xBC
272
#define   ILLEGAL_BD   0xBD
273
#define   MTTLB        0xBE
274
#define   ILLEGAL_BF   0xBF
275
 
276
#define   JMPI         0xC0
277
#define   ILLEGAL_C1   0xC1
278
#define   ILLEGAL_C2   0xC2
279
#define   ILLEGAL_C3   0xC3
280
#define   JMPFI        0xC4
281
#define   ILLEGAL_C5   0xC5
282
#define   MFSR         0xC6
283
#define   ILLEGAL_C7   0xC7
284
#define   CALLI        0xC8
285
#define   ILLEGAL_C9   0xC9
286
#define   ILLEGAL_CA   0xCA
287
#define   ILLEGAL_CB   0xCB
288
#define   JMPTI        0xCC
289
#define   ILLEGAL_CD   0xCD
290
#define   MTSR         0xCE
291
#define   ILLEGAL_CF   0xCF
292
 
293
#define   ILLEGAL_D0   0xD0
294
#define   ILLEGAL_D1   0xD1
295
#define   ILLEGAL_D2   0xD2
296
#define   ILLEGAL_D3   0xD3
297
#define   ILLEGAL_D4   0xD4
298
#define   ILLEGAL_D5   0xD5
299
#define   ILLEGAL_D6   0xD6
300
#define   EMULATE      0xD7
301
#define   ILLEGAL_D8   0xD8
302
#define   ILLEGAL_D9   0xD9
303
#define   ILLEGAL_DA   0xDA
304
#define   ILLEGAL_DB   0xDB
305
#define   ILLEGAL_DC   0xDC
306
#define   ILLEGAL_DD   0xDD
307
#define   MULTM        0xDE
308
#define   MULTMU       0xDF
309
 
310
#define   MULTIPLY     0xE0
311
#define   DIVIDE       0xE1
312
#define   MULTIPLU     0xE2
313
#define   DIVIDU       0xE3
314
#define   CONVERT      0xE4
315
#define   SQRT         0xE5
316
#define   CLASS        0xE6
317
#define   ILLEGAL_E7   0xE7
318
#define   ILLEGAL_E8   0xE8
319
#define   ILLEGAL_E9   0xE9
320
#define   FEQ          0xEA
321
#define   DEQ          0xEB
322
#define   FGT          0xEC
323
#define   DGT          0xED
324
#define   FGE          0xEE
325
#define   DGE          0xEF
326
 
327
#define   FADD         0xF0
328
#define   DADD         0xF1
329
#define   FSUB         0xF2
330
#define   DSUB         0xF3
331
#define   FMUL         0xF4
332
#define   DMUL         0xF5
333
#define   FDIV         0xF6
334
#define   DDIV         0xF7
335
#define   ILLEGAL_F8   0xF8
336
#define   FDMUL        0xF9
337
#define   ILLEGAL_FA   0xFA
338
#define   ILLEGAL_FB   0xFB
339
#define   ILLEGAL_FC   0xFC
340
#define   ILLEGAL_FD   0xFD
341
#define   ILLEGAL_FE   0xFE
342
#define   ILLEGAL_FF   0xFF
343
 
344
/* External declarations of variable defined in opcodes.c */
345
 
346
extern char     *opcode_name[];
347
extern char     *reg[];
348
extern char     *spreg[];
349
 
350
#endif  /* _OPCODES_H_INCLUDED_ */

powered by: WebSVN 2.1.0

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