1/* pj-opc.c -- Definitions for picoJava opcodes.
2   Copyright 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
3   Contributed by Steve Chamberlain of Transmeta (sac@pobox.com).
4
5   This program is free software; you can redistribute it and/or modify
6   it under the terms of the GNU General Public License as published by
7   the Free Software Foundation; either version 2 of the License, or
8   (at your option) any later version.
9
10   This program is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   GNU General Public License for more details.
14
15   You should have received a copy of the GNU General Public License
16   along with this program; if not, write to the Free Software
17   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
18
19#include "sysdep.h"
20#include "opcode/pj.h"
21
22const pj_opc_info_t pj_opc_info[512] =
23{
24{ 0x00,   -1, 1, {O_N, O_N}, {"nop"}},
25{ 0x01,   -1, 1, {O_N, O_N}, {"aconst_null"}},
26{ 0x02,   -1, 1, {O_N, O_N}, {"iconst_m1"}},
27{ 0x03,   -1, 1, {O_N, O_N}, {"iconst_0"}},
28{ 0x04,   -1, 1, {O_N, O_N}, {"iconst_1"}},
29{ 0x05,   -1, 1, {O_N, O_N}, {"iconst_2"}},
30{ 0x06,   -1, 1, {O_N, O_N}, {"iconst_3"}},
31{ 0x07,   -1, 1, {O_N, O_N}, {"iconst_4"}},
32{ 0x08,   -1, 1, {O_N, O_N}, {"iconst_5"}},
33{ 0x09,   -1, 1, {O_N, O_N}, {"lconst_0"}},
34{ 0x0a,   -1, 1, {O_N, O_N}, {"lconst_1"}},
35{ 0x0b,   -1, 1, {O_N, O_N}, {"fconst_0"}},
36{ 0x0c,   -1, 1, {O_N, O_N}, {"fconst_1"}},
37{ 0x0d,   -1, 1, {O_N, O_N}, {"fconst_2"}},
38{ 0x0e,   -1, 1, {O_N, O_N}, {"dconst_0"}},
39{ 0x0f,   -1, 1, {O_N, O_N}, {"dconst_1"}},
40{ 0x10,   -1, 2, {O_8, O_N}, {"bipush"}},
41{ 0x11,   -1, 3, {O_16, O_N}, {"sipush"}},
42{ 0x12,   -1, 2, {O_N, O_N}, {"ldc"}},
43{ 0x13,   -1, 3, {O_N, O_N}, {"ldc_w"}},
44{ 0x14,   -1, 3, {O_N, O_N}, {"ldc2_w"}},
45{ 0x15,   -1, 2, {O_U8, O_N}, {"iload"}},
46{ 0x16,   -1, 2, {O_U8, O_N}, {"lload"}},
47{ 0x17,   -1, 2, {O_U8, O_N}, {"fload"}},
48{ 0x18,   -1, 2, {O_U8, O_N}, {"dload"}},
49{ 0x19,   -1, 2, {O_U8, O_N}, {"aload"}},
50{ 0x1a,   -1, 1, {O_N, O_N}, {"iload_0"}},
51{ 0x1b,   -1, 1, {O_N, O_N}, {"iload_1"}},
52{ 0x1c,   -1, 1, {O_N, O_N}, {"iload_2"}},
53{ 0x1d,   -1, 1, {O_N, O_N}, {"iload_3"}},
54{ 0x1e,   -1, 1, {O_N, O_N}, {"lload_0"}},
55{ 0x1f,   -1, 1, {O_N, O_N}, {"lload_1"}},
56{ 0x20,   -1, 1, {O_N, O_N}, {"lload_2"}},
57{ 0x21,   -1, 1, {O_N, O_N}, {"lload_3"}},
58{ 0x22,   -1, 1, {O_N, O_N}, {"fload_0"}},
59{ 0x23,   -1, 1, {O_N, O_N}, {"fload_1"}},
60{ 0x24,   -1, 1, {O_N, O_N}, {"fload_2"}},
61{ 0x25,   -1, 1, {O_N, O_N}, {"fload_3"}},
62{ 0x26,   -1, 1, {O_N, O_N}, {"dload_0"}},
63{ 0x27,   -1, 1, {O_N, O_N}, {"dload_1"}},
64{ 0x28,   -1, 1, {O_N, O_N}, {"dload_2"}},
65{ 0x29,   -1, 1, {O_N, O_N}, {"dload_3"}},
66{ 0x2a,   -1, 1, {O_N, O_N}, {"aload_0"}},
67{ 0x2b,   -1, 1, {O_N, O_N}, {"aload_1"}},
68{ 0x2c,   -1, 1, {O_N, O_N}, {"aload_2"}},
69{ 0x2d,   -1, 1, {O_N, O_N}, {"aload_3"}},
70{ 0x2e,   -1, 1, {O_N, O_N}, {"iaload"}},
71{ 0x2f,   -1, 1, {O_N, O_N}, {"laload"}},
72{ 0x30,   -1, 1, {O_N, O_N}, {"faload"}},
73{ 0x31,   -1, 1, {O_N, O_N}, {"daload"}},
74{ 0x32,   -1, 1, {O_N, O_N}, {"aaload"}},
75{ 0x33,   -1, 1, {O_N, O_N}, {"baload"}},
76{ 0x34,   -1, 1, {O_N, O_N}, {"caload"}},
77{ 0x35,   -1, 1, {O_N, O_N}, {"saload"}},
78{ 0x36,   -1, 2, {O_U8, O_N}, {"istore"}},
79{ 0x37,   -1, 2, {O_U8, O_N}, {"lstore"}},
80{ 0x38,   -1, 2, {O_U8, O_N}, {"fstore"}},
81{ 0x39,   -1, 2, {O_U8, O_N}, {"dstore"}},
82{ 0x3a,   -1, 2, {O_U8, O_N}, {"astore"}},
83{ 0x3b,   -1, 1, {O_N, O_N}, {"istore_0"}},
84{ 0x3c,   -1, 1, {O_N, O_N}, {"istore_1"}},
85{ 0x3d,   -1, 1, {O_N, O_N}, {"istore_2"}},
86{ 0x3e,   -1, 1, {O_N, O_N}, {"istore_3"}},
87{ 0x3f,   -1, 1, {O_N, O_N}, {"lstore_0"}},
88{ 0x40,   -1, 1, {O_N, O_N}, {"lstore_1"}},
89{ 0x41,   -1, 1, {O_N, O_N}, {"lstore_2"}},
90{ 0x42,   -1, 1, {O_N, O_N}, {"lstore_3"}},
91{ 0x43,   -1, 1, {O_N, O_N}, {"fstore_0"}},
92{ 0x44,   -1, 1, {O_N, O_N}, {"fstore_1"}},
93{ 0x45,   -1, 1, {O_N, O_N}, {"fstore_2"}},
94{ 0x46,   -1, 1, {O_N, O_N}, {"fstore_3"}},
95{ 0x47,   -1, 1, {O_N, O_N}, {"dstore_0"}},
96{ 0x48,   -1, 1, {O_N, O_N}, {"dstore_1"}},
97{ 0x49,   -1, 1, {O_N, O_N}, {"dstore_2"}},
98{ 0x4a,   -1, 1, {O_N, O_N}, {"dstore_3"}},
99{ 0x4b,   -1, 1, {O_N, O_N}, {"astore_0"}},
100{ 0x4c,   -1, 1, {O_N, O_N}, {"astore_1"}},
101{ 0x4d,   -1, 1, {O_N, O_N}, {"astore_2"}},
102{ 0x4e,   -1, 1, {O_N, O_N}, {"astore_3"}},
103{ 0x4f,   -1, 1, {O_N, O_N}, {"iastore"}},
104{ 0x50,   -1, 1, {O_N, O_N}, {"lastore"}},
105{ 0x51,   -1, 1, {O_N, O_N}, {"fastore"}},
106{ 0x52,   -1, 1, {O_N, O_N}, {"dastore"}},
107{ 0x53,   -1, 1, {O_N, O_N}, {"aastore"}},
108{ 0x54,   -1, 1, {O_N, O_N}, {"bastore"}},
109{ 0x55,   -1, 1, {O_N, O_N}, {"castore"}},
110{ 0x56,   -1, 1, {O_N, O_N}, {"sastore"}},
111{ 0x57,   -1, 1, {O_N, O_N}, {"pop"}},
112{ 0x58,   -1, 1, {O_N, O_N}, {"pop2"}},
113{ 0x59,   -1, 1, {O_N, O_N}, {"dup"}},
114{ 0x5a,   -1, 1, {O_N, O_N}, {"dup_x1"}},
115{ 0x5b,   -1, 1, {O_N, O_N}, {"dup_x2"}},
116{ 0x5c,   -1, 1, {O_N, O_N}, {"dup2"}},
117{ 0x5d,   -1, 1, {O_N, O_N}, {"dup2_x1"}},
118{ 0x5e,   -1, 1, {O_N, O_N}, {"dup2_x2"}},
119{ 0x5f,   -1, 1, {O_N, O_N}, {"swap"}},
120{ 0x60,   -1, 1, {O_N, O_N}, {"iadd"}},
121{ 0x61,   -1, 1, {O_N, O_N}, {"ladd"}},
122{ 0x62,   -1, 1, {O_N, O_N}, {"fadd"}},
123{ 0x63,   -1, 1, {O_N, O_N}, {"dadd"}},
124{ 0x64,   -1, 1, {O_N, O_N}, {"isub"}},
125{ 0x65,   -1, 1, {O_N, O_N}, {"lsub"}},
126{ 0x66,   -1, 1, {O_N, O_N}, {"fsub"}},
127{ 0x67,   -1, 1, {O_N, O_N}, {"dsub"}},
128{ 0x68,   -1, 1, {O_N, O_N}, {"imul"}},
129{ 0x69,   -1, 1, {O_N, O_N}, {"lmul"}},
130{ 0x6a,   -1, 1, {O_N, O_N}, {"fmul"}},
131{ 0x6b,   -1, 1, {O_N, O_N}, {"dmul"}},
132{ 0x6c,   -1, 1, {O_N, O_N}, {"idiv"}},
133{ 0x6d,   -1, 1, {O_N, O_N}, {"ldiv"}},
134{ 0x6e,   -1, 1, {O_N, O_N}, {"fdiv"}},
135{ 0x6f,   -1, 1, {O_N, O_N}, {"ddiv"}},
136{ 0x70,   -1, 1, {O_N, O_N}, {"irem"}},
137{ 0x71,   -1, 1, {O_N, O_N}, {"lrem"}},
138{ 0x72,   -1, 1, {O_N, O_N}, {"frem"}},
139{ 0x73,   -1, 1, {O_N, O_N}, {"drem"}},
140{ 0x74,   -1, 1, {O_N, O_N}, {"ineg"}},
141{ 0x75,   -1, 1, {O_N, O_N}, {"lneg"}},
142{ 0x76,   -1, 1, {O_N, O_N}, {"fneg"}},
143{ 0x77,   -1, 1, {O_N, O_N}, {"dneg"}},
144{ 0x78,   -1, 1, {O_N, O_N}, {"ishl"}},
145{ 0x79,   -1, 1, {O_N, O_N}, {"lshl"}},
146{ 0x7a,   -1, 1, {O_N, O_N}, {"ishr"}},
147{ 0x7b,   -1, 1, {O_N, O_N}, {"lshr"}},
148{ 0x7c,   -1, 1, {O_N, O_N}, {"iushr"}},
149{ 0x7d,   -1, 1, {O_N, O_N}, {"lushr"}},
150{ 0x7e,   -1, 1, {O_N, O_N}, {"iand"}},
151{ 0x7f,   -1, 1, {O_N, O_N}, {"land"}},
152{ 0x80,   -1, 1, {O_N, O_N}, {"ior"}},
153{ 0x81,   -1, 1, {O_N, O_N}, {"lor"}},
154{ 0x82,   -1, 1, {O_N, O_N}, {"ixor"}},
155{ 0x83,   -1, 1, {O_N, O_N}, {"lxor"}},
156{ 0x84,   -1, 3, {O_U8, O_8}, {"iinc"}},
157{ 0x85,   -1, 1, {O_N, O_N}, {"i2l"}},
158{ 0x86,   -1, 1, {O_N, O_N}, {"i2f"}},
159{ 0x87,   -1, 1, {O_N, O_N}, {"i2d"}},
160{ 0x88,   -1, 1, {O_N, O_N}, {"l2i"}},
161{ 0x89,   -1, 1, {O_N, O_N}, {"l2f"}},
162{ 0x8a,   -1, 1, {O_N, O_N}, {"l2d"}},
163{ 0x8b,   -1, 1, {O_N, O_N}, {"f2i"}},
164{ 0x8c,   -1, 1, {O_N, O_N}, {"f2l"}},
165{ 0x8d,   -1, 1, {O_N, O_N}, {"f2d"}},
166{ 0x8e,   -1, 1, {O_N, O_N}, {"d2i"}},
167{ 0x8f,   -1, 1, {O_N, O_N}, {"d2l"}},
168{ 0x90,   -1, 1, {O_N, O_N}, {"d2f"}},
169{ 0x91,   -1, 1, {O_N, O_N}, {"i2b"}},
170{ 0x92,   -1, 1, {O_N, O_N}, {"i2c"}},
171{ 0x93,   -1, 1, {O_N, O_N}, {"i2s"}},
172{ 0x94,   -1, 1, {O_N, O_N}, {"lcmp"}},
173{ 0x95,   -1, 1, {O_N, O_N}, {"fcmpl"}},
174{ 0x96,   -1, 1, {O_N, O_N}, {"fcmpg"}},
175{ 0x97,   -1, 1, {O_N, O_N}, {"dcmpl"}},
176{ 0x98,   -1, 1, {O_N, O_N}, {"dcmpg"}},
177{ 0x99,   -1, 3, {O_R16, O_N}, {"ifeq"}},
178{ 0x9a,   -1, 3, {O_R16, O_N}, {"ifne"}},
179{ 0x9b,   -1, 3, {O_R16, O_N}, {"iflt"}},
180{ 0x9c,   -1, 3, {O_R16, O_N}, {"ifge"}},
181{ 0x9d,   -1, 3, {O_R16, O_N}, {"ifgt"}},
182{ 0x9e,   -1, 3, {O_R16, O_N}, {"ifle"}},
183{ 0x9f,   -1, 3, {O_R16, O_N}, {"if_icmpeq"}},
184{ 0xa0,   -1, 3, {O_R16, O_N}, {"if_icmpne"}},
185{ 0xa1,   -1, 3, {O_R16, O_N}, {"if_icmplt"}},
186{ 0xa2,   -1, 3, {O_R16, O_N}, {"if_icmpge"}},
187{ 0xa3,   -1, 3, {O_R16, O_N}, {"if_icmpgt"}},
188{ 0xa4,   -1, 3, {O_R16, O_N}, {"if_icmple"}},
189{ 0xa5,   -1, 3, {O_R16, O_N}, {"if_acmpeq"}},
190{ 0xa6,   -1, 3, {O_R16, O_N}, {"if_acmpne"}},
191{ 0xa7,   -1, 3, {O_R16, O_N}, {"goto"}},
192{ 0xa8,   -1, 3, {O_R16, O_N}, {"jsr"}},
193{ 0xa9,   -1, 2, {O_U8, O_N}, {"ret"}},
194{ 0xaa,   -1, 1, {O_N, O_N}, {"tableswitch"}},
195{ 0xab,   -1, 1, {O_N, O_N}, {"lookupswitch"}},
196{ 0xac,   -1, 1, {O_N, O_N}, {"ireturn"}},
197{ 0xad,   -1, 1, {O_N, O_N}, {"lreturn"}},
198{ 0xae,   -1, 1, {O_N, O_N}, {"freturn"}},
199{ 0xaf,   -1, 1, {O_N, O_N}, {"dreturn"}},
200{ 0xb0,   -1, 1, {O_N, O_N}, {"areturn"}},
201{ 0xb1,   -1, 1, {O_N, O_N}, {"return"}},
202{ 0xb2,   -1, 3, {O_U16, O_N}, {"getstatic"}},
203{ 0xb3,   -1, 3, {O_U16, O_N}, {"putstatic"}},
204{ 0xb4,   -1, 3, {O_U16, O_N}, {"getfield"}},
205{ 0xb5,   -1, 3, {O_U16, O_N}, {"putfield"}},
206{ 0xb6,   -1, 3, {O_U16, O_N}, {"invokevirtual"}},
207{ 0xb7,   -1, 3, {O_U16, O_N}, {"invokespecial"}},
208{ 0xb8,   -1, 3, {O_U16, O_N}, {"invokestatic"}},
209{ 0xb9,   -1, 5, {O_U16, O_U8}, {"invokeinterface"}},
210{ 0xba,   -1, 1, {O_N, O_N}, {"bad_ba"}},
211{ 0xbb,   -1, 3, {O_N, O_N}, {"new"}},
212{ 0xbc,   -1, 2, {O_N, O_N}, {"newarray"}},
213{ 0xbd,   -1, 3, {O_N, O_N}, {"anewarray"}},
214{ 0xbe,   -1, 1, {O_N, O_N}, {"arraylength"}},
215{ 0xbf,   -1, 1, {O_N, O_N}, {"athrow"}},
216{ 0xc0,   -1, 3, {O_N, O_N}, {"checkcast"}},
217{ 0xc1,   -1, 3, {O_N, O_N}, {"instanceof"}},
218{ 0xc2,   -1, 1, {O_N, O_N}, {"monitorenter"}},
219{ 0xc3,   -1, 1, {O_N, O_N}, {"monitorexit"}},
220{ 0xc4,   -1, 1, {O_N, O_N}, {"wide"}},
221{ 0xc5,   -1, 4, {O_N, O_N}, {"multianewarray"}},
222{ 0xc6,   -1, 3, {O_N, O_N}, {"ifnull"}},
223{ 0xc7,   -1, 3, {O_N, O_N}, {"ifnonnull"}},
224{ 0xc8,   -1, 5, {O_R32, O_N}, {"goto_w"}},
225{ 0xc9,   -1, 5, {O_R32, O_N}, {"jsr_w"}},
226{ 0xca,   -1, 3, {O_N, O_N}, {"breakpoint"}},
227{ 0xcb,   -1, 2, {O_U8, O_N}, {"ldc_quick"}},
228{ 0xcc,   -1, 3, {O_U16, O_N}, {"ldc_w_quick"}},
229{ 0xcd,   -1, 3, {O_U16, O_N}, {"ldc2_w_quick"}},
230{ 0xce,   -1, 3, {O_U16, O_N}, {"getfield_quick"}},
231{ 0xcf,   -1, 3, {O_U16, O_N}, {"putfield_quick"}},
232{ 0xd0,   -1, 3, {O_U16, O_N}, {"getfield2_quick"}},
233{ 0xd1,   -1, 3, {O_U16, O_N}, {"putfield2_quick"}},
234{ 0xd2,   -1, 3, {O_U16, O_N}, {"getstatic_quick"}},
235{ 0xd3,   -1, 3, {O_U16, O_N}, {"putstatic_quick"}},
236{ 0xd4,   -1, 3, {O_U16, O_N}, {"getstatic2_quick"}},
237{ 0xd5,   -1, 3, {O_U16, O_N}, {"putstatic2_quick"}},
238{ 0xd6,   -1, 3, {O_U16, O_N}, {"invokevirtual_quick"}},
239{ 0xd7,   -1, 3, {O_U16, O_N}, {"invokenonvirtual_quick"}},
240{ 0xd8,   -1, 3, {O_U16, O_N}, {"invokesuper_quick"}},
241{ 0xd9,   -1, 3, {O_U16, O_N}, {"invokestatic_quick"}},
242{ 0xda,   -1, 3, {O_U16, O_N}, {"invokeinterface_quick"}},
243{ 0xdb,   -1, 1, {O_N, O_N}, {"bad_db"}},
244{ 0xdc,   -1, 1, {O_N, O_N}, {"aastore_quick"}},
245{ 0xdd,   -1, 3, {O_U16, O_N}, {"new_quick"}},
246{ 0xde,   -1, 3, {O_U16, O_N}, {"anewarray_quick"}},
247{ 0xdf,   -1, 3, {O_U16, O_N}, {"multianewarray_quick"}},
248{ 0xe0,   -1, 3, {O_U16, O_N}, {"checkcast_quick"}},
249{ 0xe1,   -1, 3, {O_U16, O_N}, {"instanceof_quick"}},
250{ 0xe2,   -1, 3, {O_U16, O_N}, {"invokevirtiual_quick_w"}},
251{ 0xe3,   -1, 3, {O_U16, O_N}, {"getfield_quick_w"}},
252{ 0xe4,   -1, 3, {O_U16, O_N}, {"putfield_quick_w"}},
253{ 0xe5,   -1, 1, {O_N, O_N}, {"nonnull_quick"}},
254{ 0xe6,   -1, 3, {O_U16, O_N}, {"agetfield_quick"}},
255{ 0xe7,   -1, 3, {O_U16, O_N}, {"aputfield_quick"}},
256{ 0xe8,   -1, 3, {O_U16, O_N}, {"agetstatic_quick"}},
257{ 0xe9,   -1, 3, {O_U16, O_N}, {"aputstatic_quick"}},
258{ 0xea,   -1, 2, {O_U8, O_N}, {"aldc_quick"}},
259{ 0xeb,   -1, 3, {O_U16, O_N}, {"aldc_w_quick"}},
260{ 0xec,   -1, 1, {O_N, O_N}, {"exit_sync_method"}},
261{ 0xed,   -1, 3, {O_16, O_N}, {"sethi"}},
262{ 0xee,   -1, 3, {O_U8, O_8}, {"load_word_index"}},
263{ 0xef,   -1, 3, {O_U8, O_8}, {"load_short_index"}},
264{ 0xf0,   -1, 3, {O_U8, O_8}, {"load_char_index"}},
265{ 0xf1,   -1, 3, {O_U8, O_8}, {"load_byte_index"}},
266{ 0xf2,   -1, 3, {O_U8, O_8}, {"load_ubyte_index"}},
267{ 0xf3,   -1, 3, {O_U8, O_8}, {"store_word_index"}},
268{ 0xf4,   -1, 3, {O_U8, O_8}, {"na_store_word_index"}},
269{ 0xf5,   -1, 3, {O_U8, O_8}, {"store_short_index"}},
270{ 0xf6,   -1, 3, {O_U8, O_8}, {"store_byte_index"}},
271{ 0xf7,   -1, 1, {O_N, O_N}, {"bad_f7"}},
272{ 0xf8,   -1, 1, {O_N, O_N}, {"bad_f8"}},
273{ 0xf9,   -1, 1, {O_N, O_N}, {"bad_f9"}},
274{ 0xfa,   -1, 1, {O_N, O_N}, {"bad_fa"}},
275{ 0xfb,   -1, 1, {O_N, O_N}, {"bad_fb"}},
276{ 0xfc,   -1, 1, {O_N, O_N}, {"bad_fc"}},
277{ 0xfd,   -1, 1, {O_N, O_N}, {"bad_fd"}},
278{ 0xfe,   -1, 1, {O_N, O_N}, {"bad_fe"}},
279
280{ 0xff, 0x00, 2, {O_N, O_N}, {"load_ubyte"}},
281{ 0xff, 0x01, 2, {O_N, O_N}, {"load_byte"}},
282{ 0xff, 0x02, 2, {O_N, O_N}, {"load_char"}},
283{ 0xff, 0x03, 2, {O_N, O_N}, {"load_short"}},
284{ 0xff, 0x04, 2, {O_N, O_N}, {"load_word"}},
285{ 0xff, 0x05, 2, {O_N, O_N}, {"priv_ret_from_trap"}},
286{ 0xff, 0x06, 2, {O_N, O_N}, {"priv_read_dcache_tag"}},
287{ 0xff, 0x07, 2, {O_N, O_N}, {"priv_read_dcache_data"}},
288{ 0xff, 0x08, 2, {O_N, O_N}, {"bad"}},
289{ 0xff, 0x09, 2, {O_N, O_N}, {"bad"}},
290{ 0xff, 0x0a, 2, {O_N, O_N}, {"load_char_oe"}},
291{ 0xff, 0x0b, 2, {O_N, O_N}, {"load_short_oe"}},
292{ 0xff, 0x0c, 2, {O_N, O_N}, {"load_word_oe"}},
293{ 0xff, 0x0d, 2, {O_N, O_N}, {"return0"}},
294{ 0xff, 0x0e, 2, {O_N, O_N}, {"priv_read_icache_tag"}},
295{ 0xff, 0x0f, 2, {O_N, O_N}, {"priv_read_icache_data"}},
296{ 0xff, 0x10, 2, {O_N, O_N}, {"ncload_ubyte"}},
297{ 0xff, 0x11, 2, {O_N, O_N}, {"ncload_byte"}},
298{ 0xff, 0x12, 2, {O_N, O_N}, {"ncload_char"}},
299{ 0xff, 0x13, 2, {O_N, O_N}, {"ncload_short"}},
300{ 0xff, 0x14, 2, {O_N, O_N}, {"ncload_word"}},
301{ 0xff, 0x15, 2, {O_N, O_N}, {"iucmp"}},
302{ 0xff, 0x16, 2, {O_N, O_N}, {"priv_powerdown"}},
303{ 0xff, 0x17, 2, {O_N, O_N}, {"cache_invalidate"}},
304{ 0xff, 0x18, 2, {O_N, O_N}, {"bad"}},
305{ 0xff, 0x19, 2, {O_N, O_N}, {"bad"}},
306{ 0xff, 0x1a, 2, {O_N, O_N}, {"ncload_char_oe"}},
307{ 0xff, 0x1b, 2, {O_N, O_N}, {"ncload_short_oe"}},
308{ 0xff, 0x1c, 2, {O_N, O_N}, {"ncload_word_oe"}},
309{ 0xff, 0x1d, 2, {O_N, O_N}, {"return1"}},
310{ 0xff, 0x1e, 2, {O_N, O_N}, {"cache_flush"}},
311{ 0xff, 0x1f, 2, {O_N, O_N}, {"cache_index_flush"}},
312{ 0xff, 0x20, 2, {O_N, O_N}, {"store_byte"}},
313{ 0xff, 0x21, 2, {O_N, O_N}, {"bad"}},
314{ 0xff, 0x22, 2, {O_N, O_N}, {"store_short"}},
315{ 0xff, 0x23, 2, {O_N, O_N}, {"bad"}},
316{ 0xff, 0x24, 2, {O_N, O_N}, {"store_word"}},
317{ 0xff, 0x25, 2, {O_N, O_N}, {"soft_trap"}},
318{ 0xff, 0x26, 2, {O_N, O_N}, {"priv_write_dcache_tag"}},
319{ 0xff, 0x27, 2, {O_N, O_N}, {"priv_write_dcache_data"}},
320{ 0xff, 0x28, 2, {O_N, O_N}, {"bad"}},
321{ 0xff, 0x29, 2, {O_N, O_N}, {"bad"}},
322{ 0xff, 0x2a, 2, {O_N, O_N}, {"store_short_oe"}},
323{ 0xff, 0x2b, 2, {O_N, O_N}, {"bad"}},
324{ 0xff, 0x2c, 2, {O_N, O_N}, {"store_word_oe"}},
325{ 0xff, 0x2d, 2, {O_N, O_N}, {"return2"}},
326{ 0xff, 0x2e, 2, {O_N, O_N}, {"priv_write_icache_tag"}},
327{ 0xff, 0x2f, 2, {O_N, O_N}, {"priv_write_icache_data"}},
328{ 0xff, 0x30, 2, {O_N, O_N}, {"ncstore_byte"}},
329{ 0xff, 0x31, 2, {O_N, O_N}, {"bad"}},
330{ 0xff, 0x32, 2, {O_N, O_N}, {"ncstore_short"}},
331{ 0xff, 0x33, 2, {O_N, O_N}, {"bad"}},
332{ 0xff, 0x34, 2, {O_N, O_N}, {"ncstore_word"}},
333{ 0xff, 0x35, 2, {O_N, O_N}, {"bad"}},
334{ 0xff, 0x36, 2, {O_N, O_N}, {"priv_reset"}},
335{ 0xff, 0x37, 2, {O_N, O_N}, {"get_current_class"}},
336{ 0xff, 0x38, 2, {O_N, O_N}, {"bad"}},
337{ 0xff, 0x39, 2, {O_N, O_N}, {"bad"}},
338{ 0xff, 0x3a, 2, {O_N, O_N}, {"ncstore_short_oe"}},
339{ 0xff, 0x3b, 2, {O_N, O_N}, {"bad"}},
340{ 0xff, 0x3c, 2, {O_N, O_N}, {"ncstore_word_oe"}},
341{ 0xff, 0x3d, 2, {O_N, O_N}, {"call"}},
342{ 0xff, 0x3e, 2, {O_N, O_N}, {"zero_line"}},
343{ 0xff, 0x3f, 2, {O_N, O_N}, {"priv_update_optop"}},
344{ 0xff, 0x40, 2, {O_N, O_N}, {"read_pc"}},
345{ 0xff, 0x41, 2, {O_N, O_N}, {"read_vars"}},
346{ 0xff, 0x42, 2, {O_N, O_N}, {"read_frame"}},
347{ 0xff, 0x43, 2, {O_N, O_N}, {"read_optop"}},
348{ 0xff, 0x44, 2, {O_N, O_N}, {"priv_read_oplim"}},
349{ 0xff, 0x45, 2, {O_N, O_N}, {"read_const_pool"}},
350{ 0xff, 0x46, 2, {O_N, O_N}, {"priv_read_psr"}},
351{ 0xff, 0x47, 2, {O_N, O_N}, {"priv_read_trapbase"}},
352{ 0xff, 0x48, 2, {O_N, O_N}, {"priv_read_lockcount0"}},
353{ 0xff, 0x49, 2, {O_N, O_N}, {"priv_read_lockcount1"}},
354{ 0xff, 0x4a, 2, {O_N, O_N}, {"bad"}},
355{ 0xff, 0x4b, 2, {O_N, O_N}, {"bad"}},
356{ 0xff, 0x4c, 2, {O_N, O_N}, {"priv_read_lockaddr0"}},
357{ 0xff, 0x4d, 2, {O_N, O_N}, {"priv_read_lockaddr1"}},
358{ 0xff, 0x4e, 2, {O_N, O_N}, {"bad"}},
359{ 0xff, 0x4f, 2, {O_N, O_N}, {"bad"}},
360{ 0xff, 0x50, 2, {O_N, O_N}, {"priv_read_userrange1"}},
361{ 0xff, 0x51, 2, {O_N, O_N}, {"priv_read_gc_config"}},
362{ 0xff, 0x52, 2, {O_N, O_N}, {"priv_read_brk1a"}},
363{ 0xff, 0x53, 2, {O_N, O_N}, {"priv_read_brk2a"}},
364{ 0xff, 0x54, 2, {O_N, O_N}, {"priv_read_brk12c"}},
365{ 0xff, 0x55, 2, {O_N, O_N}, {"priv_read_userrange2"}},
366{ 0xff, 0x56, 2, {O_N, O_N}, {"bad"}},
367{ 0xff, 0x57, 2, {O_N, O_N}, {"priv_read_versionid"}},
368{ 0xff, 0x58, 2, {O_N, O_N}, {"priv_read_hcr"}},
369{ 0xff, 0x59, 2, {O_N, O_N}, {"priv_read_sc_bottom"}},
370{ 0xff, 0x5a, 2, {O_N, O_N}, {"read_global0"}},
371{ 0xff, 0x5b, 2, {O_N, O_N}, {"read_global1"}},
372{ 0xff, 0x5c, 2, {O_N, O_N}, {"read_global2"}},
373{ 0xff, 0x5d, 2, {O_N, O_N}, {"read_global3"}},
374{ 0xff, 0x5e, 2, {O_N, O_N}, {"bad"}},
375{ 0xff, 0x5f, 2, {O_N, O_N}, {"bad"}},
376{ 0xff, 0x60, 2, {O_N, O_N}, {"write_pc"}},
377{ 0xff, 0x61, 2, {O_N, O_N}, {"write_vars"}},
378{ 0xff, 0x62, 2, {O_N, O_N}, {"write_frame"}},
379{ 0xff, 0x63, 2, {O_N, O_N}, {"write_optop"}},
380{ 0xff, 0x64, 2, {O_N, O_N}, {"priv_write_oplim"}},
381{ 0xff, 0x65, 2, {O_N, O_N}, {"write_const_pool"}},
382{ 0xff, 0x66, 2, {O_N, O_N}, {"priv_write_psr"}},
383{ 0xff, 0x67, 2, {O_N, O_N}, {"priv_write_trapbase"}},
384{ 0xff, 0x68, 2, {O_N, O_N}, {"priv_write_lockcount0"}},
385{ 0xff, 0x69, 2, {O_N, O_N}, {"priv_write_lockcount1"}},
386{ 0xff, 0x6a, 2, {O_N, O_N}, {"bad"}},
387{ 0xff, 0x6b, 2, {O_N, O_N}, {"bad"}},
388{ 0xff, 0x6c, 2, {O_N, O_N}, {"priv_write_lockaddr0"}},
389{ 0xff, 0x6d, 2, {O_N, O_N}, {"priv_write_lockaddr1"}},
390{ 0xff, 0x6e, 2, {O_N, O_N}, {"bad"}},
391{ 0xff, 0x6f, 2, {O_N, O_N}, {"bad"}},
392{ 0xff, 0x70, 2, {O_N, O_N}, {"priv_write_userrange1"}},
393{ 0xff, 0x71, 2, {O_N, O_N}, {"priv_write_gc_config"}},
394{ 0xff, 0x72, 2, {O_N, O_N}, {"priv_write_brk1a"}},
395{ 0xff, 0x73, 2, {O_N, O_N}, {"priv_write_brk2a"}},
396{ 0xff, 0x74, 2, {O_N, O_N}, {"priv_write_brk12c"}},
397{ 0xff, 0x75, 2, {O_N, O_N}, {"priv_write_userrange2"}},
398{ 0xff, 0x76, 2, {O_N, O_N}, {"bad"}},
399{ 0xff, 0x77, 2, {O_N, O_N}, {"bad"}},
400{ 0xff, 0x78, 2, {O_N, O_N}, {"bad"}},
401{ 0xff, 0x79, 2, {O_N, O_N}, {"priv_write_sc_bottom"}},
402{ 0xff, 0x7a, 2, {O_N, O_N}, {"write_global0"}},
403{ 0xff, 0x7b, 2, {O_N, O_N}, {"write_global1"}},
404{ 0xff, 0x7c, 2, {O_N, O_N}, {"write_global2"}},
405{ 0xff, 0x7d, 2, {O_N, O_N}, {"write_global3"}},
406{ 0xff, 0x7e, 2, {O_N, O_N}, {"bad"}},
407{ 0xff, 0x7f, 2, {O_N, O_N}, {"bad"}},
408{ 0xff, 0x80, 2, {O_N, O_N}, {"bad"}},
409{ 0xff, 0x81, 2, {O_N, O_N}, {"bad"}},
410{ 0xff, 0x82, 2, {O_N, O_N}, {"bad"}},
411{ 0xff, 0x83, 2, {O_N, O_N}, {"bad"}},
412{ 0xff, 0x84, 2, {O_N, O_N}, {"bad"}},
413{ 0xff, 0x85, 2, {O_N, O_N}, {"bad"}},
414{ 0xff, 0x86, 2, {O_N, O_N}, {"bad"}},
415{ 0xff, 0x87, 2, {O_N, O_N}, {"bad"}},
416{ 0xff, 0x88, 2, {O_N, O_N}, {"bad"}},
417{ 0xff, 0x89, 2, {O_N, O_N}, {"bad"}},
418{ 0xff, 0x8a, 2, {O_N, O_N}, {"bad"}},
419{ 0xff, 0x8b, 2, {O_N, O_N}, {"bad"}},
420{ 0xff, 0x8c, 2, {O_N, O_N}, {"bad"}},
421{ 0xff, 0x8d, 2, {O_N, O_N}, {"bad"}},
422{ 0xff, 0x8e, 2, {O_N, O_N}, {"bad"}},
423{ 0xff, 0x8f, 2, {O_N, O_N}, {"bad"}},
424{ 0xff, 0x90, 2, {O_N, O_N}, {"bad"}},
425{ 0xff, 0x91, 2, {O_N, O_N}, {"bad"}},
426{ 0xff, 0x92, 2, {O_N, O_N}, {"bad"}},
427{ 0xff, 0x93, 2, {O_N, O_N}, {"bad"}},
428{ 0xff, 0x94, 2, {O_N, O_N}, {"bad"}},
429{ 0xff, 0x95, 2, {O_N, O_N}, {"bad"}},
430{ 0xff, 0x96, 2, {O_N, O_N}, {"bad"}},
431{ 0xff, 0x97, 2, {O_N, O_N}, {"bad"}},
432{ 0xff, 0x98, 2, {O_N, O_N}, {"bad"}},
433{ 0xff, 0x99, 2, {O_N, O_N}, {"bad"}},
434{ 0xff, 0x9a, 2, {O_N, O_N}, {"bad"}},
435{ 0xff, 0x9b, 2, {O_N, O_N}, {"bad"}},
436{ 0xff, 0x9c, 2, {O_N, O_N}, {"bad"}},
437{ 0xff, 0x9d, 2, {O_N, O_N}, {"bad"}},
438{ 0xff, 0x9e, 2, {O_N, O_N}, {"bad"}},
439{ 0xff, 0x9f, 2, {O_N, O_N}, {"bad"}},
440{ 0xff, 0xa0, 2, {O_N, O_N}, {"bad"}},
441{ 0xff, 0xa1, 2, {O_N, O_N}, {"bad"}},
442{ 0xff, 0xa2, 2, {O_N, O_N}, {"bad"}},
443{ 0xff, 0xa3, 2, {O_N, O_N}, {"bad"}},
444{ 0xff, 0xa4, 2, {O_N, O_N}, {"bad"}},
445{ 0xff, 0xa5, 2, {O_N, O_N}, {"bad"}},
446{ 0xff, 0xa6, 2, {O_N, O_N}, {"bad"}},
447{ 0xff, 0xa7, 2, {O_N, O_N}, {"bad"}},
448{ 0xff, 0xa8, 2, {O_N, O_N}, {"bad"}},
449{ 0xff, 0xa9, 2, {O_N, O_N}, {"bad"}},
450{ 0xff, 0xaa, 2, {O_N, O_N}, {"bad"}},
451{ 0xff, 0xab, 2, {O_N, O_N}, {"bad"}},
452{ 0xff, 0xac, 2, {O_N, O_N}, {"bad"}},
453{ 0xff, 0xad, 2, {O_N, O_N}, {"bad"}},
454{ 0xff, 0xae, 2, {O_N, O_N}, {"bad"}},	/*LM_FIXED*/
455{ 0xff, 0xaf, 2, {O_N, O_N}, {"bad"}},	/*LM_FIXED*/
456{ 0xff, 0xb0, 2, {O_N, O_N}, {"bad"}},	/*LM_FIXED*/
457{ 0xff, 0xb1, 2, {O_N, O_N}, {"bad"}},	/*LM_FIXED*/
458{ 0xff, 0xb2, 2, {O_N, O_N}, {"bad"}},
459{ 0xff, 0xb3, 2, {O_N, O_N}, {"bad"}},
460{ 0xff, 0xb4, 2, {O_N, O_N}, {"bad"}},
461{ 0xff, 0xb5, 2, {O_N, O_N}, {"bad"}},
462{ 0xff, 0xb6, 2, {O_N, O_N}, {"bad"}},
463{ 0xff, 0xb7, 2, {O_N, O_N}, {"bad"}},
464{ 0xff, 0xb8, 2, {O_N, O_N}, {"bad"}},
465{ 0xff, 0xb9, 2, {O_N, O_N}, {"bad"}},
466{ 0xff, 0xba, 2, {O_N, O_N}, {"bad"}},
467{ 0xff, 0xbb, 2, {O_N, O_N}, {"bad"}},
468{ 0xff, 0xbc, 2, {O_N, O_N}, {"bad"}},
469{ 0xff, 0xbd, 2, {O_N, O_N}, {"bad"}},
470{ 0xff, 0xbe, 2, {O_N, O_N}, {"bad"}},
471{ 0xff, 0xbf, 2, {O_N, O_N}, {"bad"}},
472{ 0xff, 0xc0, 2, {O_N, O_N}, {"bad"}},
473{ 0xff, 0xc1, 2, {O_N, O_N}, {"bad"}},
474{ 0xff, 0xc2, 2, {O_N, O_N}, {"bad"}},
475{ 0xff, 0xc3, 2, {O_N, O_N}, {"bad"}},
476{ 0xff, 0xc4, 2, {O_N, O_N}, {"bad"}},
477{ 0xff, 0xc5, 2, {O_N, O_N}, {"bad"}},
478{ 0xff, 0xc6, 2, {O_N, O_N}, {"bad"}},
479{ 0xff, 0xc7, 2, {O_N, O_N}, {"bad"}},
480{ 0xff, 0xc8, 2, {O_N, O_N}, {"bad"}},
481{ 0xff, 0xc9, 2, {O_N, O_N}, {"bad"}},
482{ 0xff, 0xca, 2, {O_N, O_N}, {"bad"}},
483{ 0xff, 0xcb, 2, {O_N, O_N}, {"bad"}},
484{ 0xff, 0xcc, 2, {O_N, O_N}, {"bad"}},
485{ 0xff, 0xcd, 2, {O_N, O_N}, {"bad"}},
486{ 0xff, 0xce, 2, {O_N, O_N}, {"bad"}},
487{ 0xff, 0xcf, 2, {O_N, O_N}, {"bad"}},
488{ 0xff, 0xd0, 2, {O_N, O_N}, {"bad"}},
489{ 0xff, 0xd1, 2, {O_N, O_N}, {"bad"}},
490{ 0xff, 0xd2, 2, {O_N, O_N}, {"bad"}},
491{ 0xff, 0xd3, 2, {O_N, O_N}, {"bad"}},
492{ 0xff, 0xd4, 2, {O_N, O_N}, {"bad"}},
493{ 0xff, 0xd5, 2, {O_N, O_N}, {"bad"}},
494{ 0xff, 0xd6, 2, {O_N, O_N}, {"bad"}},
495{ 0xff, 0xd7, 2, {O_N, O_N}, {"bad"}},
496{ 0xff, 0xd8, 2, {O_N, O_N}, {"bad"}},
497{ 0xff, 0xd9, 2, {O_N, O_N}, {"bad"}},
498{ 0xff, 0xda, 2, {O_N, O_N}, {"bad"}},
499{ 0xff, 0xdb, 2, {O_N, O_N}, {"bad"}},
500{ 0xff, 0xdc, 2, {O_N, O_N}, {"bad"}},
501{ 0xff, 0xdd, 2, {O_N, O_N}, {"bad"}},
502{ 0xff, 0xde, 2, {O_N, O_N}, {"bad"}},
503{ 0xff, 0xdf, 2, {O_N, O_N}, {"bad"}},
504{ 0xff, 0xe0, 2, {O_N, O_N}, {"bad"}},
505{ 0xff, 0xe1, 2, {O_N, O_N}, {"bad"}},
506{ 0xff, 0xe2, 2, {O_N, O_N}, {"bad"}},
507{ 0xff, 0xe3, 2, {O_N, O_N}, {"bad"}},
508{ 0xff, 0xe4, 2, {O_N, O_N}, {"bad"}},
509{ 0xff, 0xe5, 2, {O_N, O_N}, {"bad"}},
510{ 0xff, 0xe6, 2, {O_N, O_N}, {"bad"}},
511{ 0xff, 0xe7, 2, {O_N, O_N}, {"bad"}},
512{ 0xff, 0xe8, 2, {O_N, O_N}, {"bad"}},
513{ 0xff, 0xe9, 2, {O_N, O_N}, {"bad"}},
514{ 0xff, 0xea, 2, {O_N, O_N}, {"bad"}},
515{ 0xff, 0xeb, 2, {O_N, O_N}, {"bad"}},
516{ 0xff, 0xec, 2, {O_N, O_N}, {"bad"}},
517{ 0xff, 0xed, 2, {O_N, O_N}, {"bad"}},
518{ 0xff, 0xee, 2, {O_N, O_N}, {"bad"}},
519{ 0xff, 0xef, 2, {O_N, O_N}, {"bad"}},
520{ 0xff, 0xf0, 2, {O_N, O_N}, {"bad"}},
521{ 0xff, 0xf1, 2, {O_N, O_N}, {"bad"}},
522{ 0xff, 0xf2, 2, {O_N, O_N}, {"bad"}},
523{ 0xff, 0xf3, 2, {O_N, O_N}, {"bad"}},
524{ 0xff, 0xf4, 2, {O_N, O_N}, {"bad"}},
525{ 0xff, 0xf5, 2, {O_N, O_N}, {"bad"}},
526{ 0xff, 0xf6, 2, {O_N, O_N}, {"bad"}},
527{ 0xff, 0xf7, 2, {O_N, O_N}, {"bad"}},
528{ 0xff, 0xf8, 2, {O_N, O_N}, {"bad"}},
529{ 0xff, 0xf9, 2, {O_N, O_N}, {"bad"}},
530{ 0xff, 0xfa, 2, {O_N, O_N}, {"bad"}},
531{ 0xff, 0xfb, 2, {O_N, O_N}, {"bad"}},
532{ 0xff, 0xfc, 2, {O_N, O_N}, {"bad"}},
533{ 0xff, 0xfd, 2, {O_N, O_N}, {"bad"}},
534{ 0xff, 0xfe, 2, {O_N, O_N}, {"bad"}},
535{ 0xff, 0xff, 2, {O_N, O_N}, {"bad"}},
536};
537