1 /* src/vm/jit/ir/bytecode.c - Java byte code handling
4 CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
6 This file is part of CACAO.
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License as
10 published by the Free Software Foundation; either version 2, or (at
11 your option) any later version.
13 This program is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
30 #include "vm/jit/ir/bytecode.h"
33 /* bytecodes ******************************************************************/
35 bytecode_t bytecode[256] = {
37 { 1, 1, "aconst_null" },
38 { 1, 1, "iconst_m1" },
100 { 1, 0, "lstore_1" },
101 { 1, 0, "lstore_2" },
102 { 1, 0, "lstore_3" },
103 { 1, 0, "fstore_0" },
104 { 1, 0, "fstore_1" },
105 { 1, 0, "fstore_2" },
106 { 1, 0, "fstore_3" },
107 { 1, 0, "dstore_0" },
108 { 1, 0, "dstore_1" },
109 { 1, 0, "dstore_2" },
110 { 1, 0, "dstore_3" },
111 { 1, 0, "astore_0" },
112 { 1, 0, "astore_1" },
113 { 1, 0, "astore_2" },
114 { 1, 0, "astore_3" },
126 { 1, 1+3, "dup_x1" },
127 { 1, 2+4, "dup_x2" },
129 { 1, 2+5, "dup2_x1" },
130 { 1, 3+6, "dup2_x2" },
181 { 1, 1, "int2byte" },
182 { 1, 1, "int2char" },
183 { 1, 1, "int2short" },
195 { 3, 0, "if_icmpe" },
196 { 3, 0, "if_icmpne" },
197 { 3, 0, "if_icmplt" },
198 { 3, 0, "if_icmpge" },
199 { 3, 0, "if_icmpgt" },
200 { 3, 0, "if_icmple" },
201 { 3, 0, "if_acmpeq" },
202 { 3, 0, "if_acmpne" },
206 { 0, 0, "tableswitch" },
207 { 0, 0, "lookupswitch" },
214 { 3, 1, "getstatic" },
215 { 3, 0, "putstatic" },
216 { 3, 1, "getfield" },
217 { 3, 0, "putfield" },
218 { 3, 1, "invokevirtual" },
219 { 3, 1, "invokespecial" },
220 { 3, 1, "invokestatic" },
221 { 5, 1, "invokeinterface" },
222 { 1, 1, "undef186" }, /* XXX */
224 { 2, 1, "newarray" },
225 { 3, 1, "anewarray" },
226 { 1, 1, "arraylength" },
228 { 3, 1, "checkcast" },
229 { 3, 1, "instanceof" },
230 { 1, 0, "monitorenter" },
231 { 1, 0, "monitorexit" },
233 { 4, 1, "multianewarray" },
235 { 3, 0, "ifnonnull" },
238 { 1, 0, "breakpoint" },
243 * These are local overrides for various environment variables in Emacs.
244 * Please do not remove this and leave it at the end of the file, where
245 * Emacs will automagically detect them.
246 * ---------------------------------------------------------------------
249 * indent-tabs-mode: t
253 * vim:noexpandtab:sw=4:ts=4: