annotate packages/hal/mips/arch/current/include/mips_opcode.h @ 66:bf00f99aec69 ecos-sw-2000-02-02

Merge from eCos master repository on 2000-02-02-19:16:44-GMT
author jlarmour
date Wed, 02 Feb 2000 19:57:02 +0000
parents 443894e2e912
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
1 /*-
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
2 * Copyright (c) 1992 The Regents of the University of California.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
3 * All rights reserved.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
4 *
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
5 * This code is derived from software contributed to Berkeley by
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
6 * Ralph Campbell.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
7 *
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
8 * Redistribution and use in source and binary forms, with or without
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
9 * modification, are permitted provided that the following conditions
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
10 * are met:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
11 * 1. Redistributions of source code must retain the above copyright
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
12 * notice, this list of conditions and the following disclaimer.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
13 * 2. Redistributions in binary form must reproduce the above copyright
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
14 * notice, this list of conditions and the following disclaimer in the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
15 * documentation and/or other materials provided with the distribution.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
16 * 3. All advertising materials mentioning features or use of this software
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
17 * must display the following acknowledgement:
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
18 * This product includes software developed by the University of
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
19 * California, Berkeley and its contributors.
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
20 * 4. Neither the name of the University nor the names of its contributors
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
21 * may be used to endorse or promote products derived from this software
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
22 * without specific prior written permission.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
23 *
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
24 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
25 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
34 * SUCH DAMAGE.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
35 *
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
36 * from: @(#)mips_opcode.h 7.1 (Berkeley) 3/19/92
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
37 * via: mips_opcode.h,v 1.1 1994/03/10 16:15:10 (algorithmics)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
38 */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
39
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
40 /*
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
41 * Define the instruction formats and opcode values for the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
42 * MIPS instruction set.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
43 */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
44
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
45 #ifndef _MIPS_OPCODE_H
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
46 #define _MIPS_OPCODE_H
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
47
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
48 /*
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
49 * Define the instruction formats.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
50 */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
51 typedef union {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
52 unsigned word;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
53
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
54 #ifdef MIPSEL
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
55 struct {
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
56 unsigned imm: 16;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
57 unsigned rt: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
58 unsigned rs: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
59 unsigned op: 6;
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
60 } IType;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
61
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
62 struct {
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
63 unsigned target: 26;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
64 unsigned op: 6;
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
65 } JType;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
66
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
67 struct {
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
68 unsigned func: 6;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
69 unsigned shamt: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
70 unsigned rd: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
71 unsigned rt: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
72 unsigned rs: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
73 unsigned op: 6;
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
74 } RType;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
75
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
76 struct {
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
77 unsigned func: 6;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
78 unsigned fd: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
79 unsigned fs: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
80 unsigned ft: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
81 unsigned fmt: 4;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
82 unsigned : 1; /* always '1' */
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
83 unsigned op: 6; /* always '0x11' */
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
84 } FRType;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
85 #else
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
86 struct {
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
87 unsigned op: 6;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
88 unsigned rs: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
89 unsigned rt: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
90 unsigned imm: 16;
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
91 } IType;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
92
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
93 struct {
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
94 unsigned op: 6;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
95 unsigned target: 26;
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
96 } JType;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
97
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
98 struct {
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
99 unsigned op: 6;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
100 unsigned rs: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
101 unsigned rt: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
102 unsigned rd: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
103 unsigned shamt: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
104 unsigned func: 6;
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
105 } RType;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
106
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
107 struct {
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
108 unsigned op: 6; /* always '0x11' */
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
109 unsigned : 1; /* always '1' */
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
110 unsigned fmt: 4;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
111 unsigned func: 6;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
112 unsigned ft: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
113 unsigned fs: 5;
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
114 unsigned fd: 5;
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
115 } FRType;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
116 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
117 } InstFmt;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
118
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
119 /*
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
120 * Values for the 'op' field.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
121 */
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
122 #define OP_SPECIAL 000
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
123 #define OP_REGIMM 001
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
124 #define OP_J 002
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
125 #define OP_JAL 003
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
126 #define OP_BEQ 004
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
127 #define OP_BNE 005
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
128 #define OP_BLEZ 006
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
129 #define OP_BGTZ 007
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
130
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
131 #define OP_ADDI 010
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
132 #define OP_ADDIU 011
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
133 #define OP_SLTI 012
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
134 #define OP_SLTIU 013
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
135 #define OP_ANDI 014
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
136 #define OP_ORI 015
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
137 #define OP_XORI 016
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
138 #define OP_LUI 017
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
139
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
140 #define OP_COP0 020
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
141 #define OP_COP1 021
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
142 #define OP_COP2 022
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
143 #define OP_BEQL 024
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
144 #define OP_BNEL 025
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
145 #define OP_BLEZL 026
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
146 #define OP_BGTZL 027
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
147
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
148 #define OP_DADDI 030
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
149 #define OP_DADDIU 031
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
150 #define OP_LDL 032
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
151 #define OP_LDR 033
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
152
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
153 #define OP_LB 040
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
154 #define OP_LH 041
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
155 #define OP_LWL 042
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
156 #define OP_LW 043
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
157 #define OP_LBU 044
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
158 #define OP_LHU 045
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
159 #define OP_LWR 046
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
160 #define OP_LWU 047
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
161
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
162 #define OP_SB 050
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
163 #define OP_SH 051
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
164 #define OP_SWL 052
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
165 #define OP_SW 053
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
166 #define OP_SDL 054
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
167 #define OP_SDR 055
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
168 #define OP_SWR 056
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
169 #define OP_CACHE 057
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
170
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
171 #define OP_LL 060
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
172 #define OP_LWC1 061
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
173 #define OP_LWC2 062
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
174 #define OP_LLD 064
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
175 #define OP_LDC1 065
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
176 #define OP_LDC2 066
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
177 #define OP_LD 067
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
178
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
179 #define OP_SC 070
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
180 #define OP_SWC1 071
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
181 #define OP_SWC2 072
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
182 #define OP_SCD 074
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
183 #define OP_SDC1 075
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
184 #define OP_SDC2 076
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
185 #define OP_SD 077
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
186
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
187 /*
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
188 * Values for the 'func' field when 'op' == OP_SPECIAL.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
189 */
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
190 #define OP_SLL 000
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
191 #define OP_SRL 002
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
192 #define OP_SRA 003
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
193 #define OP_SLLV 004
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
194 #define OP_SRLV 006
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
195 #define OP_SRAV 007
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
196
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
197 #define OP_JR 010
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
198 #define OP_JALR 011
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
199 #define OP_SYSCALL 014
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
200 #define OP_BREAK 015
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
201 #define OP_SYNC 017
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
202
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
203 #define OP_MFHI 020
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
204 #define OP_MTHI 021
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
205 #define OP_MFLO 022
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
206 #define OP_MTLO 023
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
207 #define OP_DSLLV 024
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
208 #define OP_DSRLV 026
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
209 #define OP_DSRAV 027
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
210
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
211 #define OP_MULT 030
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
212 #define OP_MULTU 031
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
213 #define OP_DIV 032
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
214 #define OP_DIVU 033
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
215 #define OP_DMULT 034
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
216 #define OP_DMULTU 035
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
217 #define OP_DDIV 036
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
218 #define OP_DDIVU 037
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
219
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
220 #define OP_ADD 040
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
221 #define OP_ADDU 041
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
222 #define OP_SUB 042
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
223 #define OP_SUBU 043
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
224 #define OP_AND 044
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
225 #define OP_OR 045
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
226 #define OP_XOR 046
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
227 #define OP_NOR 047
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
228
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
229 #define OP_SLT 052
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
230 #define OP_SLTU 053
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
231 #define OP_DADD 054
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
232 #define OP_DADDU 055
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
233 #define OP_DSUB 056
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
234 #define OP_DSUBU 057
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
235
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
236 #define OP_TGE 060
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
237 #define OP_TGEU 061
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
238 #define OP_TLT 062
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
239 #define OP_TLTU 063
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
240 #define OP_TEQ 064
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
241 #define OP_TNE 066
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
242
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
243 #define OP_DSLL 070
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
244 #define OP_DSRL 072
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
245 #define OP_DSRA 073
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
246 #define OP_DSLL32 074
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
247 #define OP_DSRL32 076
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
248 #define OP_DSRA32 077
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
249
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
250 /*
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
251 * Values for the 'func' field when 'op' == OP_REGIMM.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
252 */
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
253 #define OP_BLTZ 000
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
254 #define OP_BGEZ 001
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
255 #define OP_BLTZL 002
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
256 #define OP_BGEZL 003
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
257
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
258 #define OP_TGEI 010
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
259 #define OP_TGEIU 011
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
260 #define OP_TLTI 012
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
261 #define OP_TLTIU 013
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
262 #define OP_TEQI 014
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
263 #define OP_TNEI 016
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
264
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
265 #define OP_BLTZAL 020
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
266 #define OP_BGEZAL 021
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
267 #define OP_BLTZALL 022
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
268 #define OP_BGEZALL 023
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
269
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
270 /*
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
271 * Values for the 'rs' field when 'op' == OP_COPz.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
272 */
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
273 #define OP_MF 000
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
274 #define OP_DMF 001
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
275 #define OP_CF 002
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
276 #define OP_MT 004
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
277 #define OP_DMT 005
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
278 #define OP_CT 006
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
279 #define OP_BC 010
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
280
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
281 /*
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
282 * Values for the 'rt' field when 'op' == OP_COPz and 'rt' == OP_BC.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
283 */
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
284 #define COPz_BCF 0x00
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
285 #define COPz_BCT 0x01
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
286 #define COPz_BCFL 0x02
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
287 #define COPz_BCTL 0x03
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
288
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
289 /*
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
290 * Instructions with specal significance to debuggers.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
291 */
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
292 #define BREAK_INSTR 0x0005000d /* instruction code for break */
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
293 #define NOP_INSTR 0x00000000 /* instruction code for no-op */
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
294
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
295 #endif /* _MIPS_OPCODE_H */