OSDN Git Service

am a38780c9: merge from open-source master
[android-x86/dalvik.git] / dx / etc / bytecode.txt
1 # Copyright (C) 2007 The Android Open Source Project
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #      http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 # Bytecode definition file
16 #
17 # Columns are:
18 #   hex for opcode
19 #   format
20 #   has result register (y/n)
21 #   opcode name
22
23 00 10x n nop
24 01 12x y move
25 02 22x y move/from16
26 03 32x y move/16
27 04 12x y move-wide
28 05 22x y move-wide/from16
29 06 32x y move-wide/16
30 07 12x y move-object
31 08 22x y move-object/from16
32 09 32x y move-object/16
33 0a 11x y move-result
34 0b 11x y move-result-wide
35 0c 11x y move-result-object
36 0d 11x y move-exception
37 0e 10x n return-void
38 0f 11x n return
39 10 11x n return-wide
40 11 11x n return-object
41 12 11n y const/4
42 13 21s y const/16
43 14 31i y const
44 15 21h y const/high16
45 16 21s y const-wide/16
46 17 31i y const-wide/32
47 18 51l y const-wide
48 19 21h y const-wide/high16
49 1a 21c y const-string
50 1b 31c y const-string/jumbo
51 1c 21c y const-class
52 1d 11x n monitor-enter
53 1e 11x n monitor-exit
54 1f 21c y check-cast
55 20 22c y instance-of
56 21 12x y array-length
57 22 21c y new-instance
58 23 22c y new-array
59 24 35c n filled-new-array
60 25 3rc n filled-new-array/range
61 26 31t n fill-array-data
62 27 11x n throw
63 28 10t n goto
64 29 20t n goto/16
65 2a 30t n goto/32
66 2b 31t n packed-switch
67 2c 31t n sparse-switch
68 2d 23x y cmpl-float
69 2e 23x y cmpg-float
70 2f 23x y cmpl-double
71 30 23x y cmpg-double
72 31 23x y cmp-long
73 32 22t n if-eq
74 33 22t n if-ne
75 34 22t n if-lt
76 35 22t n if-ge
77 36 22t n if-gt
78 37 22t n if-le
79 38 21t n if-eqz
80 39 21t n if-nez
81 3a 21t n if-ltz
82 3b 21t n if-gez
83 3c 21t n if-gtz
84 3d 21t n if-lez
85 3e 10x n unused-3e
86 3f 10x n unused-3f
87 40 10x n unused-40
88 41 10x n unused-41
89 42 10x n unused-42
90 43 10x n unused-43
91 44 23x y aget
92 45 23x y aget-wide
93 46 23x y aget-object
94 47 23x y aget-boolean
95 48 23x y aget-byte
96 49 23x y aget-char
97 4a 23x y aget-short
98 4b 23x n aput
99 4c 23x n aput-wide
100 4d 23x n aput-object
101 4e 23x n aput-boolean
102 4f 23x n aput-byte
103 50 23x n aput-char
104 51 23x n aput-short
105 52 22c y iget
106 53 22c y iget-wide
107 54 22c y iget-object
108 55 22c y iget-boolean
109 56 22c y iget-byte
110 57 22c y iget-char
111 58 22c y iget-short
112 59 22c n iput
113 5a 22c n iput-wide
114 5b 22c n iput-object
115 5c 22c n iput-boolean
116 5d 22c n iput-byte
117 5e 22c n iput-char
118 5f 22c n iput-short
119 60 21c y sget
120 61 21c y sget-wide
121 62 21c y sget-object
122 63 21c y sget-boolean
123 64 21c y sget-byte
124 65 21c y sget-char
125 66 21c y sget-short
126 67 21c n sput
127 68 21c n sput-wide
128 69 21c n sput-object
129 6a 21c n sput-boolean
130 6b 21c n sput-byte
131 6c 21c n sput-char
132 6d 21c n sput-short
133 6e 35c n invoke-virtual
134 6f 35c n invoke-super
135 70 35c n invoke-direct
136 71 35c n invoke-static
137 72 35c n invoke-interface
138 73 10x n unused-73
139 74 3rc n invoke-virtual/range
140 75 3rc n invoke-super/range
141 76 3rc n invoke-direct/range
142 77 3rc n invoke-static/range
143 78 3rc n invoke-interface/range
144 79 10x n unused-79
145 7a 10x n unused-7a
146 7b 12x y neg-int
147 7c 12x y not-int
148 7d 12x y neg-long
149 7e 12x y not-long
150 7f 12x y neg-float
151 80 12x y neg-double
152 81 12x y int-to-long
153 82 12x y int-to-float
154 83 12x y int-to-double
155 84 12x y long-to-int
156 85 12x y long-to-float
157 86 12x y long-to-double
158 87 12x y float-to-int
159 88 12x y float-to-long
160 89 12x y float-to-double
161 8a 12x y double-to-int
162 8b 12x y double-to-long
163 8c 12x y double-to-float
164 8d 12x y int-to-byte
165 8e 12x y int-to-char
166 8f 12x y int-to-short
167 90 23x y add-int
168 91 23x y sub-int
169 92 23x y mul-int
170 93 23x y div-int
171 94 23x y rem-int
172 95 23x y and-int
173 96 23x y or-int
174 97 23x y xor-int
175 98 23x y shl-int
176 99 23x y shr-int
177 9a 23x y ushr-int
178 9b 23x y add-long
179 9c 23x y sub-long
180 9d 23x y mul-long
181 9e 23x y div-long
182 9f 23x y rem-long
183 a0 23x y and-long
184 a1 23x y or-long
185 a2 23x y xor-long
186 a3 23x y shl-long
187 a4 23x y shr-long
188 a5 23x y ushr-long
189 a6 23x y add-float
190 a7 23x y sub-float
191 a8 23x y mul-float
192 a9 23x y div-float
193 aa 23x y rem-float
194 ab 23x y add-double
195 ac 23x y sub-double
196 ad 23x y mul-double
197 ae 23x y div-double
198 af 23x y rem-double
199 b0 12x y add-int/2addr
200 b1 12x y sub-int/2addr
201 b2 12x y mul-int/2addr
202 b3 12x y div-int/2addr
203 b4 12x y rem-int/2addr
204 b5 12x y and-int/2addr
205 b6 12x y or-int/2addr
206 b7 12x y xor-int/2addr
207 b8 12x y shl-int/2addr
208 b9 12x y shr-int/2addr
209 ba 12x y ushr-int/2addr
210 bb 12x y add-long/2addr
211 bc 12x y sub-long/2addr
212 bd 12x y mul-long/2addr
213 be 12x y div-long/2addr
214 bf 12x y rem-long/2addr
215 c0 12x y and-long/2addr
216 c1 12x y or-long/2addr
217 c2 12x y xor-long/2addr
218 c3 12x y shl-long/2addr
219 c4 12x y shr-long/2addr
220 c5 12x y ushr-long/2addr
221 c6 12x y add-float/2addr
222 c7 12x y sub-float/2addr
223 c8 12x y mul-float/2addr
224 c9 12x y div-float/2addr
225 ca 12x y rem-float/2addr
226 cb 12x y add-double/2addr
227 cc 12x y sub-double/2addr
228 cd 12x y mul-double/2addr
229 ce 12x y div-double/2addr
230 cf 12x y rem-double/2addr
231 d0 22s y add-int/lit16
232 d1 22s y rsub-int
233 d2 22s y mul-int/lit16
234 d3 22s y div-int/lit16
235 d4 22s y rem-int/lit16
236 d5 22s y and-int/lit16
237 d6 22s y or-int/lit16
238 d7 22s y xor-int/lit16
239 d8 22b y add-int/lit8
240 d9 22b y rsub-int/lit8
241 da 22b y mul-int/lit8
242 db 22b y div-int/lit8
243 dc 22b y rem-int/lit8
244 dd 22b y and-int/lit8
245 de 22b y or-int/lit8
246 df 22b y xor-int/lit8
247 e0 22b y shl-int/lit8
248 e1 22b y shr-int/lit8
249 e2 22b y ushr-int/lit8
250 e3 10x n unused-e3
251 e4 10x n unused-e4
252 e5 10x n unused-e5
253 e6 10x n unused-e6
254 e7 10x n unused-e7
255 e8 10x n unused-e8
256 e9 10x n unused-e9
257 ea 10x n unused-ea
258 eb 10x n unused-eb
259 ec 10x n unused-ec
260 ed 10x n unused-ed
261 ee 10x n unused-ee
262 ef 10x n unused-ef
263 f0 10x n unused-f0
264 f1 10x n unused-f1
265 f2 10x n unused-f2
266 f3 10x n unused-f3
267 f4 10x n unused-f4
268 f5 10x n unused-f5
269 f6 10x n unused-f6
270 f7 10x n unused-f7
271 f8 10x n unused-f8
272 f9 10x n unused-f9
273 fa 10x n unused-fa
274 fb 10x n unused-fb
275 fc 10x n unused-fc
276 fd 10x n unused-fd
277 fe 10x n unused-fe
278 ff 10x n unused-ff