Java Virtual Machine


ByteCodes (Sorted by Opcode)

Code Instruction Stack arguments Stack results Brief description
0 nop do nothing
1 aconst_null …,null push null
2 iconst_m1      
3 iconst_0 …,0 push int constant 0
4 iconst_1 …,1 push int constant 1
5 iconst_2 …,2 push int constant 2
6 iconst_3 …,3 push int constant 3
7 iconst_4 …,4 push int constant 4
8 iconst_5 …,5 push int constant 5
9 lconst_0 …,word1,word2 load long constant 0
10 lconst_1 …,word1,word3 load long constant 1
11 fconst_0 …,0.0 push float constant
12 fconst_1 …,1.0 push float constant
13 fconst_2 …,2.0 push float constant
14 dconst_0 …,word1,word2 push double
15 dconst_1 …,word1,word3 push double
16 bipush …,value push byte
17 sipush …,value push short
18 ldc …,item push item from constant pool
19 ldc_w …,item push item from constant pool
20 ldc2_w …,item.word1,item.word2 push item from constant pool
21 iload …,value load int from a local variable
22 lload …,word1,word2 load long from local variable
23 fload …,value load float from local variable
24 dload …,word1,word2 load double from local variable
25 aload …,objectref load reference from local variable
26 iload_0 …,value load int from a local variable
27 iload_1 …,value load int from a local variable
28 iload_2 …,value load int from a local variable
29 iload_3 …,value load int from a local variable
30 lload_0 …,word1,word3 load long from local variable
31 lload_1 …,word1,word4 load long from local variable
32 lload_2 …,word1,word5 load long from local variable
33 lload_3 …,word1,word6 load long from local variable
34 fload_0 …,value load float from local variable
35 fload_1 …,value load float from local variable
36 fload_2 …,value load float from local variable
37 fload_3 …,value load float from local variable
38 dload_0 …,word1,word2 load double from local variable
39 dload_1 …,word1,word2 load double from local variable
40 dload_2 …,word1,word2 load double from local variable
41 dload_3 …,word1,word2 load double from local variable
42 aload_0 …,objectref load reference from local variable
43 aload_1 …,objectref load reference from local variable
44 aload_2 …,objectref load reference from local variable
45 aload_3 …,objectref load reference from local variable
46 iaload …,arrayref,index …,value load int from array
47 laload …,arrayref,index …,word1,word2 load long from array
48 faload …,arrayref,index …,value load float from array
49 daload …,arrayref,index …,word1,word2 load double from array
50 aaload …,arrayref,index …,value load a reference from array
51 baload …,arrayref,index …,value load byte or boolean from array
52 caload …,arrayref,index …,value load char from array
53 saload …,arrayref,index …,value load short from array
54 istore …,value store int into local variable
55 lstore …,word1,word2 store long into local variable
56 fstore …,value store float into local variable
57 dstore …,word1,word2 store double into local variable
58 astore …,objectref store reference in local vairable
59 istore_0 …,value store int into local variable
60 istore_1 …,value store int into local variable
61 istore_2 …,value store int into local variable
62 istore_3 …,value store int into local variable
63 lstore_0 …,word1,word2 store long into local variable
64 lstore_1 …,word1,word2 store long into local variable
65 lstore_2 …,word1,word2 store long into local variable
66 lstore_3 …,word1,word2 store long into local variable
67 fstore_0 …,value store float into local variable
68 fstore_1 …,value store float into local variable
69 fstore_2 …,value store float into local variable
70 fstore_3 …,value store float into local variable
71 dstore_0 …,word1,word2 store double into local variable
72 dstore_1 …,word1,word2 store double into local variable
73 dstore_2 …,word1,word2 store double into local variable
74 dstore_3 …,word1,word2 store double into local variable
75 astore_0 …,objectref store reference in local vairable
76 astore_1 …,objectref store reference in local vairable
77 astore_2 …,objectref store reference in local vairable
78 astore_3 …,objectref store reference in local vairable
79 iastore …,arrayref,index,value store into int array
80 lastore …,arrayref,index,word1,word2 store into long array
81 fastore …,arrayref,index,value store into float array
82 dastore …,arrayref,index,word1,word2 store into double array
83 aastore …,arrayref,index,value store into reference array
84 bastore …,arrayref,index,value store into byte or boolean array
85 castore …,arrayref,index,value store into char array
86 sastore …,arrayref,index,value store short into array
87 pop …,word pop the top word of the operand stack
88 pop2 …,word1,word2 pop the top two words of the operand stack
89 dup …,word …,word,word duplicate top operand stack word
90 dup_x1 …,word2,word1 …,word1,word2,word1 duplicate top operand stack word and put two down
91 dup_x2 …,word3,word2,word1 …,word1,word3,word2,word1 duplicate top operand stack word and put three down
92 dup2 …,word2,word1 …,word2,word1,word2,word1 duplicate top two operand stack words
93 dup2_x1 …,w3,w2,w1 …,w2,w1,w3,w2,w1 duplicate top two operand stack words and put three down
94 dup2_x2 …,w4,w3,w2,w1 …,w2,w1,w4,w3,w2,w1 duplicate top two operand stack words and put four down
95 swap …,word2,word1 …,word1,word2 swap top two words on the operand stack
96 iadd …,value1,value2 …,result add int
97 ladd …,word1,word2,word1,word2 …,word1,word2 add long
98 fadd …,value1,value2 …,result add float
99 dadd …,word1,word2,word1,word2 …,word1,word2 add double
100 isub …,value1,value2 …,result subtract int (value1 - value2)
101 lsub …,word1,word2,word1,word2 …,word1,word2 subtract long
102 fsub …,value1,value2 …,result subtract float
103 dsub …,word1,word2,word1,word2 …,word1,word2 subtract double
104 imul …,value1,value2 …,result multiply int
105 lmul …,word1,word2,word1,word2 …,word1,word2 multiply long
106 fmul …,value1,value2 …,result multiply float
107 dmul …,word1,word2,word1,word2 …,word1,word2 multiply double
108 idiv …,value1,value2 …,result divide int (value1/value2)
109 ldiv …,word1,word2,word1,word2 …,word1,word2 divide long
110 fdiv …,value1,value2 …,result divide float
111 ddiv …,word1,word2,word1,word2 …,word1,word2` divide double
112 irem …,value1,value2 …,result remainder int (value1 % value2)
113 lrem …,word1,word2,word1,word3 …,word1,word3 remainder long
114 frem …,value1,value2 …,result remainder float
115 drem …,word1,word2,word1,word2 …,word1,word2 remainder double
116 ineg …,value …,result negate int
117 lneg …,word1,word2 …,word1,word2 negate long
118 fneg …,value …,result negate float
119 dneg …,word1,word2 …,word1,word2 negate double
120 ishl …,value1,value2 …,result shift left int
121 lshl …,word1,word2,word1,word2 …,word1,word2 shift left long
122 ishr …,value1,value3 …,result shift right int
123 lshr …,word1,word2,word1,word2 …,word1,word2 arithmetic shift right long
124 iushr …,value1,value2 …,result logical right int shift
125 lushr …,word1,word2,word1,word2 …,word1,word2 logical right long shift
126 iand …,value1,value2 …,result boolean AND int
127 land …,word1,word2,word1,word2 …,word1,word2 boolean AND long
128 ior …,value1,value2 …,result boolean OR int
129 lor …,word1,word2,word1,word2 …,word1,word2 boolean OR long
130 ixor …,value1,value2 …,result boolean XOR int
131 lxor …,word1,word2,word1,word2 …,word1,word2 boolean XOR long
132 iinc increment local variable by a constant
133 i2l …,value …,word1,word2 convert int to long
134 i2f …,value …,result convert int to float
135 i2d …,value …,word1,word2 convert int to double
136 l2i …,word1,word2 …,result convert long to int
137 l2f …,word1,word2 …,result convert long to float
138 l2d …,word1,word2 …,word1,word2 convert double to long
139 f2i …,value …,result convert float to int
140 f2l …,value …,w1,w2 convert float to long
141 f2d …,value …,w1,w2 convert float to double
142 d2i …,word1,word2 …,result convert double to int
143 d2l …,word1,word2 …,result convert double to long
144 d2f …,word1,word2 …,result convert double to float
145 i2b …,value …,result convert int to byte
146 i2c …,value …,result convert int to char
147 i2s …,value …,result convert int to short
148 lcmp …,word1,word2,word1,word2 …,result compare long
149 fcmpl …,value1,value2 …,result compare float
150 fcmpg …,value1,value2 …,result compare float
151 dcmpl …,word1,word2,word1,word2 …,result compare double
152 dcmpg …,word1,word2,word1,word2 …,result compare double
153 ifeq …,value branch if equal zero
154 ifne …,value branch if not equal zero
155 iflt …,value branch if less than zero
156 ifge …,value branch if greater than or equal to zero
157 ifgt …,value branch if greater than zero
158 ifle …,value branch if less than or equal zero
159 if_icmpeq …,value1,value2 branch if int equal
160 if_icmpne …,value1,value2 branch if int not equal
161 if_icmplt …,value1,value2 branch if int less than
162 if_cmpge …,value1,value2 branch if int greater than or equal
163 if_icmpgt …,value1,value2 branch if int greater than
164 if_icmple …,value1,value2 branch if int less than or equal
165 if_acmpeq …,value1,value2 branch if reference equal
166 if_acmpne …,value1,value2 branch if reference not equal
167 goto branch always
168 jsr …,address jump subroutine
169 ret return from a subroutine
170 tableswitch …,index access jump table by index and jump
171 lookupswitch …,key access jump table by key match and jump
172 ireturn …,value - return int from method
173 lreturn …,word1,word2 - return long from method
174 freturn …,value - return float from method
175 dreturn …,word1,word2 - return double from method
176 areturn …,objectref - return reference from method
177 return - return void from a method
178 getstatic …,value get static field from class
179 getstatic …,word1,word2 get static field from class
179 putstatic …,value set a static field in a class
179 putstatic …,word1,word2 set a static field in a class
180 getfield …,objectref …,value fetch field from object
180 getfield …,objectref …,word1,word2 fetch field from object
181 putfield …,objectref,value set field in an object
181 putfield …,objectref,word1,word2 set field in an object
182 invokevirtual …,objectref,arg1,arg2,… invoke an instance method
183 invokespecial …,objectref,arg1,arg2,… invoke a special interface method
184 invokestatic …,objectref,arg1,arg2,… invoke a class (static) method
185 invokeinterface …,objectref,arg1,arg2,… invoke an interface method
186 xxxunusedxxx      
187 new …,objectref create a new object
188 newarray …,count …,arrayref crate a new array
189 anewarray …,count …,arrayref create new array of reference
190 arraylength …,arrayref …,length get length of array
191 athrow …,objectref objectref throw exception or error
192 checkcast …,objectref …,objectref check whether object is of given type
193 instanceof …,objectref …,result determine if object is of a given type
194 monitorenter …,objectref enter monitor for an object
195 monitorexit …,objectref exit monitor for an object
196 wide      
197 multianewarray …,count1,[count2,…] …,arrayref create a new multidimensional array
198 ifnull …,value branch if reference is null
199 ifnonnull …,value branch if reference is non null
200 goto_w branch always (wide index)
201 jsr_w …,address jump subroutine
202 breakpoint      
203 ldc_quick …,item push item from constant pool
204 ldc_w_quick …,item push item from constant pool
205 ldc2_w_quick …,item.word1,item.word3 push item from constant pool
206 getfield_quick      
207 putfield_quick      
208 getfield2_quick      
209 putfield2_quick      
210 getstatic_quick      
211 putstatic_quick      
212 getstatic2_quick      
213 putstatic2_quick      
214 invokevirtual_quick      
215 invokenonvirtual_quick      
216 invokesuper_quick      
217 invokestatic_quick      
218 invokeinterface_quick      
219 invokevirtualobject_quick      
221 new_quick …,objectref create a new object
222 anewarray_quick      
223 multianewarray_quick …,count1,[count2,…] …,arrayref create a new multidimensional array
224 checkcast_quick      
225 instanceof_quick      
226 invokevirtual_quick_w      
227 getfield_quick_w      
228 putfield_quick_w      
254 impdep1      
255 impdep2      

ByteCodes (Sorted by Instruction)

Code Instruction Stack arguments Stack results Brief description
50 aaload …,arrayref,index …,value load a reference from array
83 aastore …,arrayref,index,value store into reference array
1 aconst_null …,null push null
25 aload …,objectref load reference from local variable
42 aload_0 …,objectref load reference from local variable
43 aload_1 …,objectref load reference from local variable
44 aload_2 …,objectref load reference from local variable
45 aload_3 …,objectref load reference from local variable
189 anewarray …,count …,arrayref create new array of reference
222 anewarray_quick      
176 areturn …,objectref - return reference from method
190 arraylength …,arrayref …,length get length of array
58 astore …,objectref store reference in local vairable
75 astore_0 …,objectref store reference in local vairable
76 astore_1 …,objectref store reference in local vairable
77 astore_2 …,objectref store reference in local vairable
78 astore_3 …,objectref store reference in local vairable
191 athrow …,objectref objectref throw exception or error
51 baload …,arrayref,index …,value load byte or boolean from array
84 bastore …,arrayref,index,value store into byte or boolean array
16 bipush …,value push byte
202 breakpoint      
52 caload …,arrayref,index …,value load char from array
85 castore …,arrayref,index,value store into char array
192 checkcast …,objectref …,objectref check whether object is of given type
224 checkcast_quick      
144 d2f …,word1,word2 …,result convert double to float
142 d2i …,word1,word2 …,result convert double to int
143 d2l …,word1,word2 …,result convert double to long
99 dadd …,word1,word2,word1,word2 …,word1,word2 add double
49 daload …,arrayref,index …,word1,word2 load double from array
82 dastore …,arrayref,index,word1,word2 store into double array
152 dcmpg …,word1,word2,word1,word2 …,result compare double
151 dcmpl …,word1,word2,word1,word2 …,result compare double
14 dconst_0 …,word1,word2 push double
15 dconst_1 …,word1,word3 push double
111 ddiv …,word1,word2,word1,word2 …,word1,word2` divide double
24 dload …,word1,word2 load double from local variable
38 dload_0 …,word1,word2 load double from local variable
39 dload_1 …,word1,word2 load double from local variable
40 dload_2 …,word1,word2 load double from local variable
41 dload_3 …,word1,word2 load double from local variable
107 dmul …,word1,word2,word1,word2 …,word1,word2 multiply double
119 dneg …,word1,word2 …,word1,word2 negate double
115 drem …,word1,word2,word1,word2 …,word1,word2 remainder double
175 dreturn …,word1,word2 - return double from method
57 dstore …,word1,word2 store double into local variable
71 dstore_0 …,word1,word2 store double into local variable
72 dstore_1 …,word1,word2 store double into local variable
73 dstore_2 …,word1,word2 store double into local variable
74 dstore_3 …,word1,word2 store double into local variable
103 dsub …,word1,word2,word1,word2 …,word1,word2 subtract double
89 dup …,word …,word,word duplicate top operand stack word
90 dup_x1 …,word2,word1 …,word1,word2,word1 duplicate top operand stack word and put two down
91 dup_x2 …,word3,word2,word1 …,word1,word3,word2,word1 duplicate top operand stack word and put three down
92 dup2 …,word2,word1 …,word2,word1,word2,word1 duplicate top two operand stack words
93 dup2_x1 …,w3,w2,w1 …,w2,w1,w3,w2,w1 duplicate top two operand stack words and put three down
94 dup2_x2 …,w4,w3,w2,w1 …,w2,w1,w4,w3,w2,w1 duplicate top two operand stack words and put four down
141 f2d …,value …,w1,w2 convert float to double
139 f2i …,value …,result convert float to int
140 f2l …,value …,w1,w2 convert float to long
98 fadd …,value1,value2 …,result add float
48 faload …,arrayref,index …,value load float from array
81 fastore …,arrayref,index,value store into float array
150 fcmpg …,value1,value2 …,result compare float
149 fcmpl …,value1,value2 …,result compare float
11 fconst_0 …,0.0 push float constant
12 fconst_1 …,1.0 push float constant
13 fconst_2 …,2.0 push float constant
110 fdiv …,value1,value2 …,result divide float
23 fload …,value load float from local variable
34 fload_0 …,value load float from local variable
35 fload_1 …,value load float from local variable
36 fload_2 …,value load float from local variable
37 fload_3 …,value load float from local variable
106 fmul …,value1,value2 …,result multiply float
118 fneg …,value …,result negate float
114 frem …,value1,value2 …,result remainder float
174 freturn …,value - return float from method
56 fstore …,value store float into local variable
67 fstore_0 …,value store float into local variable
68 fstore_1 …,value store float into local variable
69 fstore_2 …,value store float into local variable
70 fstore_3 …,value store float into local variable
102 fsub …,value1,value2 …,result subtract float
180 getfield …,objectref …,value fetch field from object
180 getfield …,objectref …,word1,word2 fetch field from object
206 getfield_quick      
227 getfield_quick_w      
208 getfield2_quick      
178 getstatic …,value get static field from class
179 getstatic …,word1,word2 get static field from class
210 getstatic_quick      
212 getstatic2_quick      
167 goto branch always
200 goto_w branch always (wide index)
145 i2b …,value …,result convert int to byte
146 i2c …,value …,result convert int to char
135 i2d …,value …,word1,word2 convert int to double
134 i2f …,value …,result convert int to float
133 i2l …,value …,word1,word2 convert int to long
147 i2s …,value …,result convert int to short
96 iadd …,value1,value2 …,result add int
46 iaload …,arrayref,index …,value load int from array
126 iand …,value1,value2 …,result boolean AND int
79 iastore …,arrayref,index,value store into int array
3 iconst_0 …,0 push int constant 0
4 iconst_1 …,1 push int constant 1
5 iconst_2 …,2 push int constant 2
6 iconst_3 …,3 push int constant 3
7 iconst_4 …,4 push int constant 4
8 iconst_5 …,5 push int constant 5
2 iconst_m1      
108 idiv …,value1,value2 …,result divide int (value1/value2)
165 if_acmpeq …,value1,value2 branch if reference equal
166 if_acmpne …,value1,value2 branch if reference not equal
162 if_cmpge …,value1,value2 branch if int greater than or equal
159 if_icmpeq …,value1,value2 branch if int equal
163 if_icmpgt …,value1,value2 branch if int greater than
164 if_icmple …,value1,value2 branch if int less than or equal
161 if_icmplt …,value1,value2 branch if int less than
160 if_icmpne …,value1,value2 branch if int not equal
153 ifeq …,value branch if equal zero
156 ifge …,value branch if greater than or equal to zero
157 ifgt …,value branch if greater than zero
158 ifle …,value branch if less than or equal zero
155 iflt …,value branch if less than zero
154 ifne …,value branch if not equal zero
199 ifnonnull …,value branch if reference is non null
198 ifnull …,value branch if reference is null
132 iinc increment local variable by a constant
21 iload …,value load int from a local variable
26 iload_0 …,value load int from a local variable
27 iload_1 …,value load int from a local variable
28 iload_2 …,value load int from a local variable
29 iload_3 …,value load int from a local variable
254 impdep1      
255 impdep2      
104 imul …,value1,value2 …,result multiply int
116 ineg …,value …,result negate int
193 instanceof …,objectref …,result determine if object is of a given type
225 instanceof_quick      
185 invokeinterface …,objectref,arg1,arg2,… invoke an interface method
218 invokeinterface_quick      
215 invokenonvirtual_quick      
183 invokespecial …,objectref,arg1,arg2,… invoke a special interface method
184 invokestatic …,objectref,arg1,arg2,… invoke a class (static) method
217 invokestatic_quick      
216 invokesuper_quick      
182 invokevirtual …,objectref,arg1,arg2,… invoke an instance method
214 invokevirtual_quick      
226 invokevirtual_quick_w      
219 invokevirtualobject_quick      
128 ior …,value1,value2 …,result boolean OR int
112 irem …,value1,value2 …,result remainder int (value1 % value2)
172 ireturn …,value - return int from method
120 ishl …,value1,value2 …,result shift left int
122 ishr …,value1,value3 …,result shift right int
54 istore …,value store int into local variable
59 istore_0 …,value store int into local variable
60 istore_1 …,value store int into local variable
61 istore_2 …,value store int into local variable
62 istore_3 …,value store int into local variable
100 isub …,value1,value2 …,result subtract int (value1 - value2)
124 iushr …,value1,value2 …,result logical right int shift
130 ixor …,value1,value2 …,result boolean XOR int
168 jsr …,address jump subroutine
201 jsr_w …,address jump subroutine
138 l2d …,word1,word2 …,word1,word2 convert double to long
137 l2f …,word1,word2 …,result convert long to float
136 l2i …,word1,word2 …,result convert long to int
97 ladd …,word1,word2,word1,word2 …,word1,word2 add long
47 laload …,arrayref,index …,word1,word2 load long from array
127 land …,word1,word2,word1,word2 …,word1,word2 boolean AND long
80 lastore …,arrayref,index,word1,word2 store into long array
148 lcmp …,word1,word2,word1,word2 …,result compare long
9 lconst_0 …,word1,word2 load long constant 0
10 lconst_1 …,word1,word3 load long constant 1
18 ldc …,item push item from constant pool
203 ldc_quick …,item push item from constant pool
19 ldc_w …,item push item from constant pool
204 ldc_w_quick …,item push item from constant pool
20 ldc2_w …,item.word1,item.word2 push item from constant pool
205 ldc2_w_quick …,item.word1,item.word3 push item from constant pool
109 ldiv …,word1,word2,word1,word2 …,word1,word2 divide long
22 lload …,word1,word2 load long from local variable
30 lload_0 …,word1,word3 load long from local variable
31 lload_1 …,word1,word4 load long from local variable
32 lload_2 …,word1,word5 load long from local variable
33 lload_3 …,word1,word6 load long from local variable
105 lmul …,word1,word2,word1,word2 …,word1,word2 multiply long
117 lneg …,word1,word2 …,word1,word2 negate long
171 lookupswitch …,key access jump table by key match and jump
129 lor …,word1,word2,word1,word2 …,word1,word2 boolean OR long
113 lrem …,word1,word2,word1,word3 …,word1,word3 remainder long
173 lreturn …,word1,word2 - return long from method
121 lshl …,word1,word2,word1,word2 …,word1,word2 shift left long
123 lshr …,word1,word2,word1,word2 …,word1,word2 arithmetic shift right long
55 lstore …,word1,word2 store long into local variable
63 lstore_0 …,word1,word2 store long into local variable
64 lstore_1 …,word1,word2 store long into local variable
65 lstore_2 …,word1,word2 store long into local variable
66 lstore_3 …,word1,word2 store long into local variable
101 lsub …,word1,word2,word1,word2 …,word1,word2 subtract long
125 lushr …,word1,word2,word1,word2 …,word1,word2 logical right long shift
131 lxor …,word1,word2,word1,word2 …,word1,word2 boolean XOR long
194 monitorenter …,objectref enter monitor for an object
195 monitorexit …,objectref exit monitor for an object
197 multianewarray …,count1,[count2,…] …,arrayref create a new multidimensional array
223 multianewarray_quick …,count1,[count2,…] …,arrayref create a new multidimensional array
187 new …,objectref create a new object
221 new_quick …,objectref create a new object
188 newarray …,count …,arrayref crate a new array
0 nop do nothing
87 pop …,word pop the top word of the operand stack
88 pop2 …,word1,word2 pop the top two words of the operand stack
181 putfield …,objectref,value set field in an object
181 putfield …,objectref,word1,word2 set field in an object
207 putfield_quick      
228 putfield_quick_w      
209 putfield2_quick      
179 putstatic …,value set a static field in a class
179 putstatic …,word1,word2 set a static field in a class
211 putstatic_quick      
213 putstatic2_quick      
169 ret return from a subroutine
177 return - return void from a method
53 saload …,arrayref,index …,value load short from array
86 sastore …,arrayref,index,value store short into array
17 sipush …,value push short
95 swap …,word2,word1 …,word1,word2 swap top two words on the operand stack
170 tableswitch …,index access jump table by index and jump
196 wide      
186 xxxunusedxxx