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 279