• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Javassist, a Java-bytecode translator toolkit.
3  * Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.
4  *
5  * The contents of this file are subject to the Mozilla Public License Version
6  * 1.1 (the "License"); you may not use this file except in compliance with
7  * the License.  Alternatively, the contents of this file may be used under
8  * the terms of the GNU Lesser General Public License Version 2.1 or later,
9  * or the Apache License Version 2.0.
10  *
11  * Software distributed under the License is distributed on an "AS IS" basis,
12  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13  * for the specific language governing rights and limitations under the
14  * License.
15  */
16 
17 package javassist.bytecode;
18 
19 /**
20  * JVM Instruction Names.
21  *
22  * <p>This interface has been separated from javassist.bytecode.Opcode
23  * because typical bytecode translators do not use mnemonics.  If this
24  * interface were merged with Opcode, extra memory would be unnecessary
25  * consumed.
26  *
27  * @see Opcode
28  */
29 public interface Mnemonic {
30 
31     /**
32      * The instruction names (mnemonics) sorted by the opcode.
33      * The length of this array is 202 (jsr_w=201).
34      */
35     String[] OPCODE = {
36         "nop",  /* 0*/
37         "aconst_null",  /* 1*/
38         "iconst_m1",    /* 2*/
39         "iconst_0",     /* 3*/
40         "iconst_1",     /* 4*/
41         "iconst_2",     /* 5*/
42         "iconst_3",     /* 6*/
43         "iconst_4",     /* 7*/
44         "iconst_5",     /* 8*/
45         "lconst_0",     /* 9*/
46         "lconst_1",     /* 10*/
47         "fconst_0",     /* 11*/
48         "fconst_1",     /* 12*/
49         "fconst_2",     /* 13*/
50         "dconst_0",     /* 14*/
51         "dconst_1",     /* 15*/
52         "bipush",       /* 16*/
53         "sipush",       /* 17*/
54         "ldc",  /* 18*/
55         "ldc_w",        /* 19*/
56         "ldc2_w",       /* 20*/
57         "iload",        /* 21*/
58         "lload",        /* 22*/
59         "fload",        /* 23*/
60         "dload",        /* 24*/
61         "aload",        /* 25*/
62         "iload_0",      /* 26*/
63         "iload_1",      /* 27*/
64         "iload_2",      /* 28*/
65         "iload_3",      /* 29*/
66         "lload_0",      /* 30*/
67         "lload_1",      /* 31*/
68         "lload_2",      /* 32*/
69         "lload_3",      /* 33*/
70         "fload_0",      /* 34*/
71         "fload_1",      /* 35*/
72         "fload_2",      /* 36*/
73         "fload_3",      /* 37*/
74         "dload_0",      /* 38*/
75         "dload_1",      /* 39*/
76         "dload_2",      /* 40*/
77         "dload_3",      /* 41*/
78         "aload_0",      /* 42*/
79         "aload_1",      /* 43*/
80         "aload_2",      /* 44*/
81         "aload_3",      /* 45*/
82         "iaload",       /* 46*/
83         "laload",       /* 47*/
84         "faload",       /* 48*/
85         "daload",       /* 49*/
86         "aaload",       /* 50*/
87         "baload",       /* 51*/
88         "caload",       /* 52*/
89         "saload",       /* 53*/
90         "istore",       /* 54*/
91         "lstore",       /* 55*/
92         "fstore",       /* 56*/
93         "dstore",       /* 57*/
94         "astore",       /* 58*/
95         "istore_0",     /* 59*/
96         "istore_1",     /* 60*/
97         "istore_2",     /* 61*/
98         "istore_3",     /* 62*/
99         "lstore_0",     /* 63*/
100         "lstore_1",     /* 64*/
101         "lstore_2",     /* 65*/
102         "lstore_3",     /* 66*/
103         "fstore_0",     /* 67*/
104         "fstore_1",     /* 68*/
105         "fstore_2",     /* 69*/
106         "fstore_3",     /* 70*/
107         "dstore_0",     /* 71*/
108         "dstore_1",     /* 72*/
109         "dstore_2",     /* 73*/
110         "dstore_3",     /* 74*/
111         "astore_0",     /* 75*/
112         "astore_1",     /* 76*/
113         "astore_2",     /* 77*/
114         "astore_3",     /* 78*/
115         "iastore",      /* 79*/
116         "lastore",      /* 80*/
117         "fastore",      /* 81*/
118         "dastore",      /* 82*/
119         "aastore",      /* 83*/
120         "bastore",      /* 84*/
121         "castore",      /* 85*/
122         "sastore",      /* 86*/
123         "pop",  /* 87*/
124         "pop2", /* 88*/
125         "dup",  /* 89*/
126         "dup_x1",       /* 90*/
127         "dup_x2",       /* 91*/
128         "dup2", /* 92*/
129         "dup2_x1",      /* 93*/
130         "dup2_x2",      /* 94*/
131         "swap", /* 95*/
132         "iadd", /* 96*/
133         "ladd", /* 97*/
134         "fadd", /* 98*/
135         "dadd", /* 99*/
136         "isub", /* 100*/
137         "lsub", /* 101*/
138         "fsub", /* 102*/
139         "dsub", /* 103*/
140         "imul", /* 104*/
141         "lmul", /* 105*/
142         "fmul", /* 106*/
143         "dmul", /* 107*/
144         "idiv", /* 108*/
145         "ldiv", /* 109*/
146         "fdiv", /* 110*/
147         "ddiv", /* 111*/
148         "irem", /* 112*/
149         "lrem", /* 113*/
150         "frem", /* 114*/
151         "drem", /* 115*/
152         "ineg", /* 116*/
153         "lneg", /* 117*/
154         "fneg", /* 118*/
155         "dneg", /* 119*/
156         "ishl", /* 120*/
157         "lshl", /* 121*/
158         "ishr", /* 122*/
159         "lshr", /* 123*/
160         "iushr",        /* 124*/
161         "lushr",        /* 125*/
162         "iand", /* 126*/
163         "land", /* 127*/
164         "ior",  /* 128*/
165         "lor",  /* 129*/
166         "ixor", /* 130*/
167         "lxor", /* 131*/
168         "iinc", /* 132*/
169         "i2l",  /* 133*/
170         "i2f",  /* 134*/
171         "i2d",  /* 135*/
172         "l2i",  /* 136*/
173         "l2f",  /* 137*/
174         "l2d",  /* 138*/
175         "f2i",  /* 139*/
176         "f2l",  /* 140*/
177         "f2d",  /* 141*/
178         "d2i",  /* 142*/
179         "d2l",  /* 143*/
180         "d2f",  /* 144*/
181         "i2b",  /* 145*/
182         "i2c",  /* 146*/
183         "i2s",  /* 147*/
184         "lcmp", /* 148*/
185         "fcmpl",        /* 149*/
186         "fcmpg",        /* 150*/
187         "dcmpl",        /* 151*/
188         "dcmpg",        /* 152*/
189         "ifeq", /* 153*/
190         "ifne", /* 154*/
191         "iflt", /* 155*/
192         "ifge", /* 156*/
193         "ifgt", /* 157*/
194         "ifle", /* 158*/
195         "if_icmpeq",    /* 159*/
196         "if_icmpne",    /* 160*/
197         "if_icmplt",    /* 161*/
198         "if_icmpge",    /* 162*/
199         "if_icmpgt",    /* 163*/
200         "if_icmple",    /* 164*/
201         "if_acmpeq",    /* 165*/
202         "if_acmpne",    /* 166*/
203         "goto", /* 167*/
204         "jsr",  /* 168*/
205         "ret",  /* 169*/
206         "tableswitch",  /* 170*/
207         "lookupswitch", /* 171*/
208         "ireturn",      /* 172*/
209         "lreturn",      /* 173*/
210         "freturn",      /* 174*/
211         "dreturn",      /* 175*/
212         "areturn",      /* 176*/
213         "return",       /* 177*/
214         "getstatic",    /* 178*/
215         "putstatic",    /* 179*/
216         "getfield",     /* 180*/
217         "putfield",     /* 181*/
218         "invokevirtual",        /* 182*/
219         "invokespecial",        /* 183*/
220         "invokestatic", /* 184*/
221         "invokeinterface",      /* 185*/
222         "invokedynamic",        /* 186 */
223         "new",  /* 187*/
224         "newarray",     /* 188*/
225         "anewarray",    /* 189*/
226         "arraylength",  /* 190*/
227         "athrow",       /* 191*/
228         "checkcast",    /* 192*/
229         "instanceof",   /* 193*/
230         "monitorenter", /* 194*/
231         "monitorexit",  /* 195*/
232         "wide", /* 196*/
233         "multianewarray",       /* 197*/
234         "ifnull",       /* 198*/
235         "ifnonnull",    /* 199*/
236         "goto_w",       /* 200*/
237         "jsr_w"         /* 201*/
238     };
239 }
240