KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > javassist > bytecode > Opcode


1 /*
2  * Javassist, a Java-bytecode translator toolkit.
3  * Copyright (C) 1999-2005 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  *
10  * Software distributed under the License is distributed on an "AS IS" basis,
11  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12  * for the specific language governing rights and limitations under the
13  * License.
14  */

15
16 package javassist.bytecode;
17
18 /**
19  * JVM Instruction Set.
20  *
21  * <p>This interface defines opcodes and
22  * array types for the NEWARRAY instruction.
23  *
24  * @see Mnemonic
25  */

26 public interface Opcode {
27     /* Opcodes */
28
29     int AALOAD = 50;
30     int AASTORE = 83;
31     int ACONST_NULL = 1;
32     int ALOAD = 25;
33     int ALOAD_0 = 42;
34     int ALOAD_1 = 43;
35     int ALOAD_2 = 44;
36     int ALOAD_3 = 45;
37     int ANEWARRAY = 189;
38     int ARETURN = 176;
39     int ARRAYLENGTH = 190;
40     int ASTORE = 58;
41     int ASTORE_0 = 75;
42     int ASTORE_1 = 76;
43     int ASTORE_2 = 77;
44     int ASTORE_3 = 78;
45     int ATHROW = 191;
46     int BALOAD = 51;
47     int BASTORE = 84;
48     int BIPUSH = 16;
49     int CALOAD = 52;
50     int CASTORE = 85;
51     int CHECKCAST = 192;
52     int D2F = 144;
53     int D2I = 142;
54     int D2L = 143;
55     int DADD = 99;
56     int DALOAD = 49;
57     int DASTORE = 82;
58     int DCMPG = 152;
59     int DCMPL = 151;
60     int DCONST_0 = 14;
61     int DCONST_1 = 15;
62     int DDIV = 111;
63     int DLOAD = 24;
64     int DLOAD_0 = 38;
65     int DLOAD_1 = 39;
66     int DLOAD_2 = 40;
67     int DLOAD_3 = 41;
68     int DMUL = 107;
69     int DNEG = 119;
70     int DREM = 115;
71     int DRETURN = 175;
72     int DSTORE = 57;
73     int DSTORE_0 = 71;
74     int DSTORE_1 = 72;
75     int DSTORE_2 = 73;
76     int DSTORE_3 = 74;
77     int DSUB = 103;
78     int DUP = 89;
79     int DUP2 = 92;
80     int DUP2_X1 = 93;
81     int DUP2_X2 = 94;
82     int DUP_X1 = 90;
83     int DUP_X2 = 91;
84     int F2D = 141;
85     int F2I = 139;
86     int F2L = 140;
87     int FADD = 98;
88     int FALOAD = 48;
89     int FASTORE = 81;
90     int FCMPG = 150;
91     int FCMPL = 149;
92     int FCONST_0 = 11;
93     int FCONST_1 = 12;
94     int FCONST_2 = 13;
95     int FDIV = 110;
96     int FLOAD = 23;
97     int FLOAD_0 = 34;
98     int FLOAD_1 = 35;
99     int FLOAD_2 = 36;
100     int FLOAD_3 = 37;
101     int FMUL = 106;
102     int FNEG = 118;
103     int FREM = 114;
104     int FRETURN = 174;
105     int FSTORE = 56;
106     int FSTORE_0 = 67;
107     int FSTORE_1 = 68;
108     int FSTORE_2 = 69;
109     int FSTORE_3 = 70;
110     int FSUB = 102;
111     int GETFIELD = 180;
112     int GETSTATIC = 178;
113     int GOTO = 167;
114     int GOTO_W = 200;
115     int I2B = 145;
116     int I2C = 146;
117     int I2D = 135;
118     int I2F = 134;
119     int I2L = 133;
120     int I2S = 147;
121     int IADD = 96;
122     int IALOAD = 46;
123     int IAND = 126;
124     int IASTORE = 79;
125     int ICONST_0 = 3;
126     int ICONST_1 = 4;
127     int ICONST_2 = 5;
128     int ICONST_3 = 6;
129     int ICONST_4 = 7;
130     int ICONST_5 = 8;
131     int ICONST_M1 = 2;
132     int IDIV = 108;
133     int IFEQ = 153;
134     int IFGE = 156;
135     int IFGT = 157;
136     int IFLE = 158;
137     int IFLT = 155;
138     int IFNE = 154;
139     int IFNONNULL = 199;
140     int IFNULL = 198;
141     int IF_ACMPEQ = 165;
142     int IF_ACMPNE = 166;
143     int IF_ICMPEQ = 159;
144     int IF_ICMPGE = 162;
145     int IF_ICMPGT = 163;
146     int IF_ICMPLE = 164;
147     int IF_ICMPLT = 161;
148     int IF_ICMPNE = 160;
149     int IINC = 132;
150     int ILOAD = 21;
151     int ILOAD_0 = 26;
152     int ILOAD_1 = 27;
153     int ILOAD_2 = 28;
154     int ILOAD_3 = 29;
155     int IMUL = 104;
156     int INEG = 116;
157     int INSTANCEOF = 193;
158     int INVOKEINTERFACE = 185;
159     int INVOKESPECIAL = 183;
160     int INVOKESTATIC = 184;
161     int INVOKEVIRTUAL = 182;
162     int IOR = 128;
163     int IREM = 112;
164     int IRETURN = 172;
165     int ISHL = 120;
166     int ISHR = 122;
167     int ISTORE = 54;
168     int ISTORE_0 = 59;
169     int ISTORE_1 = 60;
170     int ISTORE_2 = 61;
171     int ISTORE_3 = 62;
172     int ISUB = 100;
173     int IUSHR = 124;
174     int IXOR = 130;
175     int JSR = 168;
176     int JSR_W = 201;
177     int L2D = 138;
178     int L2F = 137;
179     int L2I = 136;
180     int LADD = 97;
181     int LALOAD = 47;
182     int LAND = 127;
183     int LASTORE = 80;
184     int LCMP = 148;
185     int LCONST_0 = 9;
186     int LCONST_1 = 10;
187     int LDC = 18;
188     int LDC2_W = 20;
189     int LDC_W = 19;
190     int LDIV = 109;
191     int LLOAD = 22;
192     int LLOAD_0 = 30;
193     int LLOAD_1 = 31;
194     int LLOAD_2 = 32;
195     int LLOAD_3 = 33;
196     int LMUL = 105;
197     int LNEG = 117;
198     int LOOKUPSWITCH = 171;
199     int LOR = 129;
200     int LREM = 113;
201     int LRETURN = 173;
202     int LSHL = 121;
203     int LSHR = 123;
204     int LSTORE = 55;
205     int LSTORE_0 = 63;
206     int LSTORE_1 = 64;
207     int LSTORE_2 = 65;
208     int LSTORE_3 = 66;
209     int LSUB = 101;
210     int LUSHR = 125;
211     int LXOR = 131;
212     int MONITORENTER = 194;
213     int MONITOREXIT = 195;
214     int MULTIANEWARRAY = 197;
215     int NEW = 187;
216     int NEWARRAY = 188;
217     int NOP = 0;
218     int POP = 87;
219     int POP2 = 88;
220     int PUTFIELD = 181;
221     int PUTSTATIC = 179;
222     int RET = 169;
223     int RETURN = 177;
224     int SALOAD = 53;
225     int SASTORE = 86;
226     int SIPUSH = 17;
227     int SWAP = 95;
228     int TABLESWITCH = 170;
229     int WIDE = 196;
230
231     /* array-type code for the newarray instruction */
232
233     int T_BOOLEAN = 4;
234     int T_CHAR = 5;
235     int T_FLOAT = 6;
236     int T_DOUBLE = 7;
237     int T_BYTE = 8;
238     int T_SHORT = 9;
239     int T_INT = 10;
240     int T_LONG = 11;
241
242     /* how many values are pushed on the operand stack. */
243     int[] STACK_GROW = {
244         0, // nop, 0
245
1, // aconst_null, 1
246
1, // iconst_m1, 2
247
1, // iconst_0, 3
248
1, // iconst_1, 4
249
1, // iconst_2, 5
250
1, // iconst_3, 6
251
1, // iconst_4, 7
252
1, // iconst_5, 8
253
2, // lconst_0, 9
254
2, // lconst_1, 10
255
1, // fconst_0, 11
256
1, // fconst_1, 12
257
1, // fconst_2, 13
258
2, // dconst_0, 14
259
2, // dconst_1, 15
260
1, // bipush, 16
261
1, // sipush, 17
262
1, // ldc, 18
263
1, // ldc_w, 19
264
2, // ldc2_w, 20
265
1, // iload, 21
266
2, // lload, 22
267
1, // fload, 23
268
2, // dload, 24
269
1, // aload, 25
270
1, // iload_0, 26
271
1, // iload_1, 27
272
1, // iload_2, 28
273
1, // iload_3, 29
274
2, // lload_0, 30
275
2, // lload_1, 31
276
2, // lload_2, 32
277
2, // lload_3, 33
278
1, // fload_0, 34
279
1, // fload_1, 35
280
1, // fload_2, 36
281
1, // fload_3, 37
282
2, // dload_0, 38
283
2, // dload_1, 39
284
2, // dload_2, 40
285
2, // dload_3, 41
286
1, // aload_0, 42
287
1, // aload_1, 43
288
1, // aload_2, 44
289
1, // aload_3, 45
290
-1, // iaload, 46
291
0, // laload, 47
292
-1, // faload, 48
293
0, // daload, 49
294
-1, // aaload, 50
295
-1, // baload, 51
296
-1, // caload, 52
297
-1, // saload, 53
298
-1, // istore, 54
299
-2, // lstore, 55
300
-1, // fstore, 56
301
-2, // dstore, 57
302
-1, // astore, 58
303
-1, // istore_0, 59
304
-1, // istore_1, 60
305
-1, // istore_2, 61
306
-1, // istore_3, 62
307
-2, // lstore_0, 63
308
-2, // lstore_1, 64
309
-2, // lstore_2, 65
310
-2, // lstore_3, 66
311
-1, // fstore_0, 67
312
-1, // fstore_1, 68
313
-1, // fstore_2, 69
314
-1, // fstore_3, 70
315
-2, // dstore_0, 71
316
-2, // dstore_1, 72
317
-2, // dstore_2, 73
318
-2, // dstore_3, 74
319
-1, // astore_0, 75
320
-1, // astore_1, 76
321
-1, // astore_2, 77
322
-1, // astore_3, 78
323
-3, // iastore, 79
324
-4, // lastore, 80
325
-3, // fastore, 81
326
-4, // dastore, 82
327
-3, // aastore, 83
328
-3, // bastore, 84
329
-3, // castore, 85
330
-3, // sastore, 86
331
-1, // pop, 87
332
-2, // pop2, 88
333
1, // dup, 89
334
1, // dup_x1, 90
335
1, // dup_x2, 91
336
2, // dup2, 92
337
2, // dup2_x1, 93
338
2, // dup2_x2, 94
339
0, // swap, 95
340
-1, // iadd, 96
341
-2, // ladd, 97
342
-1, // fadd, 98
343
-2, // dadd, 99
344
-1, // isub, 100
345
-2, // lsub, 101
346
-1, // fsub, 102
347
-2, // dsub, 103
348
-1, // imul, 104
349
-2, // lmul, 105
350
-1, // fmul, 106
351
-2, // dmul, 107
352
-1, // idiv, 108
353
-2, // ldiv, 109
354
-1, // fdiv, 110
355
-2, // ddiv, 111
356
-1, // irem, 112
357
-2, // lrem, 113
358
-1, // frem, 114
359
-2, // drem, 115
360
0, // ineg, 116
361
0, // lneg, 117
362
0, // fneg, 118
363
0, // dneg, 119
364
-1, // ishl, 120
365
-1, // lshl, 121
366
-1, // ishr, 122
367
-1, // lshr, 123
368
-1, // iushr, 124
369
-1, // lushr, 125
370
-1, // iand, 126
371
-2, // land, 127
372
-1, // ior, 128
373
-2, // lor, 129
374
-1, // ixor, 130
375
-2, // lxor, 131
376
0, // iinc, 132
377
1, // i2l, 133
378
0, // i2f, 134
379
1, // i2d, 135
380
-1, // l2i, 136
381
-1, // l2f, 137
382
0, // l2d, 138
383
0, // f2i, 139
384
1, // f2l, 140
385
1, // f2d, 141
386
-1, // d2i, 142
387
0, // d2l, 143
388
-1, // d2f, 144
389
0, // i2b, 145
390
0, // i2c, 146
391
0, // i2s, 147
392
-3, // lcmp, 148
393
-1, // fcmpl, 149
394
-1, // fcmpg, 150
395
-3, // dcmpl, 151
396
-3, // dcmpg, 152
397
-1, // ifeq, 153
398
-1, // ifne, 154
399
-1, // iflt, 155
400
-1, // ifge, 156
401
-1, // ifgt, 157
402
-1, // ifle, 158
403
-2, // if_icmpeq, 159
404
-2, // if_icmpne, 160
405
-2, // if_icmplt, 161
406
-2, // if_icmpge, 162
407
-2, // if_icmpgt, 163
408
-2, // if_icmple, 164
409
-2, // if_acmpeq, 165
410
-2, // if_acmpne, 166
411
0, // goto, 167
412
1, // jsr, 168
413
0, // ret, 169
414
-1, // tableswitch, 170
415
-1, // lookupswitch, 171
416
-1, // ireturn, 172
417
-2, // lreturn, 173
418
-1, // freturn, 174
419
-2, // dreturn, 175
420
-1, // areturn, 176
421
0, // return, 177
422
0, // getstatic, 178 depends on the type
423
0, // putstatic, 179 depends on the type
424
0, // getfield, 180 depends on the type
425
0, // putfield, 181 depends on the type
426
0, // invokevirtual, 182 depends on the type
427
0, // invokespecial, 183 depends on the type
428
0, // invokestatic, 184 depends on the type
429
0, // invokeinterface, 185 depends on the type
430
0, // undefined, 186
431
1, // new, 187
432
0, // newarray, 188
433
0, // anewarray, 189
434
0, // arraylength, 190
435
0, // athrow, 191 stack is cleared
436
0, // checkcast, 192
437
0, // instanceof, 193
438
-1, // monitorenter, 194
439
-1, // monitorexit, 195
440
0, // wide, 196 depends on the following opcode
441
0, // multianewarray, 197 depends on the dimensions
442
-1, // ifnull, 198
443
-1, // ifnonnull, 199
444
0, // goto_w, 200
445
1 // jsr_w, 201
446
};
447 }
448
Popular Tags