1 # Copyright (C) 2007 The Android Open Source Project
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
7 # http://www.apache.org/licenses/LICENSE-2.0
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.
15 # Bytecode definition file
20 # has result register (y/n)
28 05 22x y move-wide/from16
31 08 22x y move-object/from16
32 09 32x y move-object/16
34 0b 11x y move-result-wide
35 0c 11x y move-result-object
36 0d 11x y move-exception
40 11 11x n return-object
45 16 21s y const-wide/16
46 17 31i y const-wide/32
48 19 21h y const-wide/high16
50 1b 31c y const-string/jumbo
52 1d 11x n monitor-enter
59 24 35c n filled-new-array
60 25 3rc n filled-new-array/range
61 26 31t n fill-array-data
66 2b 31t n packed-switch
67 2c 31t n sparse-switch
101 4e 23x n aput-boolean
108 55 22c y iget-boolean
115 5c 22c n iput-boolean
122 63 21c y sget-boolean
129 6a 21c n sput-boolean
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
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
153 82 12x y int-to-float
154 83 12x y int-to-double
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
166 8f 12x y int-to-short
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
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
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