Dops.java revision de73f8ed3def229f8a5fc065c8955ec87d28e1e7
1/* 2 * Copyright (C) 2007 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.dx.dex.code; 18 19import com.android.dx.dex.code.form.Form10t; 20import com.android.dx.dex.code.form.Form10x; 21import com.android.dx.dex.code.form.Form11n; 22import com.android.dx.dex.code.form.Form11x; 23import com.android.dx.dex.code.form.Form12x; 24import com.android.dx.dex.code.form.Form20t; 25import com.android.dx.dex.code.form.Form21c; 26import com.android.dx.dex.code.form.Form21h; 27import com.android.dx.dex.code.form.Form21s; 28import com.android.dx.dex.code.form.Form21t; 29import com.android.dx.dex.code.form.Form22b; 30import com.android.dx.dex.code.form.Form22c; 31import com.android.dx.dex.code.form.Form22s; 32import com.android.dx.dex.code.form.Form22t; 33import com.android.dx.dex.code.form.Form22x; 34import com.android.dx.dex.code.form.Form23x; 35import com.android.dx.dex.code.form.Form30t; 36import com.android.dx.dex.code.form.Form31c; 37import com.android.dx.dex.code.form.Form31i; 38import com.android.dx.dex.code.form.Form31t; 39import com.android.dx.dex.code.form.Form32x; 40import com.android.dx.dex.code.form.Form35c; 41import com.android.dx.dex.code.form.Form3rc; 42import com.android.dx.dex.code.form.Form41c; 43import com.android.dx.dex.code.form.Form51l; 44import com.android.dx.dex.code.form.Form52c; 45import com.android.dx.dex.code.form.Form5rc; 46import com.android.dx.dex.code.form.SpecialFormat; 47 48/** 49 * Standard instances of {@link Dop} and utility methods for getting 50 * them. 51 */ 52public final class Dops { 53 /** {@code non-null;} array containing all the standard instances */ 54 private static final Dop[] DOPS; 55 56 /** 57 * pseudo-opcode used for nonstandard formatted "instructions" 58 * (which are mostly not actually instructions, though they do 59 * appear in instruction lists) 60 */ 61 public static final Dop SPECIAL_FORMAT = 62 new Dop(DalvOps.SPECIAL_FORMAT, DalvOps.SPECIAL_FORMAT, 63 DalvOps.NO_NEXT, SpecialFormat.THE_ONE, false, "<special>"); 64 65 // BEGIN(dops); GENERATED AUTOMATICALLY BY opcode-gen 66 public static final Dop NOP = 67 new Dop(DalvOps.NOP, DalvOps.NOP, 68 DalvOps.NO_NEXT, Form10x.THE_ONE, false, 69 "nop"); 70 71 public static final Dop MOVE = 72 new Dop(DalvOps.MOVE, DalvOps.MOVE, 73 DalvOps.MOVE_FROM16, Form12x.THE_ONE, true, 74 "move"); 75 76 public static final Dop MOVE_FROM16 = 77 new Dop(DalvOps.MOVE_FROM16, DalvOps.MOVE, 78 DalvOps.MOVE_16, Form22x.THE_ONE, true, 79 "move/from16"); 80 81 public static final Dop MOVE_16 = 82 new Dop(DalvOps.MOVE_16, DalvOps.MOVE, 83 DalvOps.NO_NEXT, Form32x.THE_ONE, true, 84 "move/16"); 85 86 public static final Dop MOVE_WIDE = 87 new Dop(DalvOps.MOVE_WIDE, DalvOps.MOVE_WIDE, 88 DalvOps.MOVE_WIDE_FROM16, Form12x.THE_ONE, true, 89 "move-wide"); 90 91 public static final Dop MOVE_WIDE_FROM16 = 92 new Dop(DalvOps.MOVE_WIDE_FROM16, DalvOps.MOVE_WIDE, 93 DalvOps.MOVE_WIDE_16, Form22x.THE_ONE, true, 94 "move-wide/from16"); 95 96 public static final Dop MOVE_WIDE_16 = 97 new Dop(DalvOps.MOVE_WIDE_16, DalvOps.MOVE_WIDE, 98 DalvOps.NO_NEXT, Form32x.THE_ONE, true, 99 "move-wide/16"); 100 101 public static final Dop MOVE_OBJECT = 102 new Dop(DalvOps.MOVE_OBJECT, DalvOps.MOVE_OBJECT, 103 DalvOps.MOVE_OBJECT_FROM16, Form12x.THE_ONE, true, 104 "move-object"); 105 106 public static final Dop MOVE_OBJECT_FROM16 = 107 new Dop(DalvOps.MOVE_OBJECT_FROM16, DalvOps.MOVE_OBJECT, 108 DalvOps.MOVE_OBJECT_16, Form22x.THE_ONE, true, 109 "move-object/from16"); 110 111 public static final Dop MOVE_OBJECT_16 = 112 new Dop(DalvOps.MOVE_OBJECT_16, DalvOps.MOVE_OBJECT, 113 DalvOps.NO_NEXT, Form32x.THE_ONE, true, 114 "move-object/16"); 115 116 public static final Dop MOVE_RESULT = 117 new Dop(DalvOps.MOVE_RESULT, DalvOps.MOVE_RESULT, 118 DalvOps.NO_NEXT, Form11x.THE_ONE, true, 119 "move-result"); 120 121 public static final Dop MOVE_RESULT_WIDE = 122 new Dop(DalvOps.MOVE_RESULT_WIDE, DalvOps.MOVE_RESULT_WIDE, 123 DalvOps.NO_NEXT, Form11x.THE_ONE, true, 124 "move-result-wide"); 125 126 public static final Dop MOVE_RESULT_OBJECT = 127 new Dop(DalvOps.MOVE_RESULT_OBJECT, DalvOps.MOVE_RESULT_OBJECT, 128 DalvOps.NO_NEXT, Form11x.THE_ONE, true, 129 "move-result-object"); 130 131 public static final Dop MOVE_EXCEPTION = 132 new Dop(DalvOps.MOVE_EXCEPTION, DalvOps.MOVE_EXCEPTION, 133 DalvOps.NO_NEXT, Form11x.THE_ONE, true, 134 "move-exception"); 135 136 public static final Dop RETURN_VOID = 137 new Dop(DalvOps.RETURN_VOID, DalvOps.RETURN_VOID, 138 DalvOps.NO_NEXT, Form10x.THE_ONE, false, 139 "return-void"); 140 141 public static final Dop RETURN = 142 new Dop(DalvOps.RETURN, DalvOps.RETURN, 143 DalvOps.NO_NEXT, Form11x.THE_ONE, false, 144 "return"); 145 146 public static final Dop RETURN_WIDE = 147 new Dop(DalvOps.RETURN_WIDE, DalvOps.RETURN_WIDE, 148 DalvOps.NO_NEXT, Form11x.THE_ONE, false, 149 "return-wide"); 150 151 public static final Dop RETURN_OBJECT = 152 new Dop(DalvOps.RETURN_OBJECT, DalvOps.RETURN_OBJECT, 153 DalvOps.NO_NEXT, Form11x.THE_ONE, false, 154 "return-object"); 155 156 public static final Dop CONST_4 = 157 new Dop(DalvOps.CONST_4, DalvOps.CONST, 158 DalvOps.CONST_16, Form11n.THE_ONE, true, 159 "const/4"); 160 161 public static final Dop CONST_16 = 162 new Dop(DalvOps.CONST_16, DalvOps.CONST, 163 DalvOps.CONST_HIGH16, Form21s.THE_ONE, true, 164 "const/16"); 165 166 public static final Dop CONST = 167 new Dop(DalvOps.CONST, DalvOps.CONST, 168 DalvOps.NO_NEXT, Form31i.THE_ONE, true, 169 "const"); 170 171 public static final Dop CONST_HIGH16 = 172 new Dop(DalvOps.CONST_HIGH16, DalvOps.CONST, 173 DalvOps.CONST, Form21h.THE_ONE, true, 174 "const/high16"); 175 176 public static final Dop CONST_WIDE_16 = 177 new Dop(DalvOps.CONST_WIDE_16, DalvOps.CONST_WIDE, 178 DalvOps.CONST_WIDE_HIGH16, Form21s.THE_ONE, true, 179 "const-wide/16"); 180 181 public static final Dop CONST_WIDE_32 = 182 new Dop(DalvOps.CONST_WIDE_32, DalvOps.CONST_WIDE, 183 DalvOps.CONST_WIDE, Form31i.THE_ONE, true, 184 "const-wide/32"); 185 186 public static final Dop CONST_WIDE = 187 new Dop(DalvOps.CONST_WIDE, DalvOps.CONST_WIDE, 188 DalvOps.NO_NEXT, Form51l.THE_ONE, true, 189 "const-wide"); 190 191 public static final Dop CONST_WIDE_HIGH16 = 192 new Dop(DalvOps.CONST_WIDE_HIGH16, DalvOps.CONST_WIDE, 193 DalvOps.CONST_WIDE_32, Form21h.THE_ONE, true, 194 "const-wide/high16"); 195 196 public static final Dop CONST_STRING = 197 new Dop(DalvOps.CONST_STRING, DalvOps.CONST_STRING, 198 DalvOps.CONST_STRING_JUMBO, Form21c.THE_ONE, true, 199 "const-string"); 200 201 public static final Dop CONST_STRING_JUMBO = 202 new Dop(DalvOps.CONST_STRING_JUMBO, DalvOps.CONST_STRING, 203 DalvOps.NO_NEXT, Form31c.THE_ONE, true, 204 "const-string/jumbo"); 205 206 public static final Dop CONST_CLASS = 207 new Dop(DalvOps.CONST_CLASS, DalvOps.CONST_CLASS, 208 DalvOps.CONST_CLASS_JUMBO, Form21c.THE_ONE, true, 209 "const-class"); 210 211 public static final Dop MONITOR_ENTER = 212 new Dop(DalvOps.MONITOR_ENTER, DalvOps.MONITOR_ENTER, 213 DalvOps.NO_NEXT, Form11x.THE_ONE, false, 214 "monitor-enter"); 215 216 public static final Dop MONITOR_EXIT = 217 new Dop(DalvOps.MONITOR_EXIT, DalvOps.MONITOR_EXIT, 218 DalvOps.NO_NEXT, Form11x.THE_ONE, false, 219 "monitor-exit"); 220 221 public static final Dop CHECK_CAST = 222 new Dop(DalvOps.CHECK_CAST, DalvOps.CHECK_CAST, 223 DalvOps.CHECK_CAST_JUMBO, Form21c.THE_ONE, true, 224 "check-cast"); 225 226 public static final Dop INSTANCE_OF = 227 new Dop(DalvOps.INSTANCE_OF, DalvOps.INSTANCE_OF, 228 DalvOps.INSTANCE_OF_JUMBO, Form22c.THE_ONE, true, 229 "instance-of"); 230 231 public static final Dop ARRAY_LENGTH = 232 new Dop(DalvOps.ARRAY_LENGTH, DalvOps.ARRAY_LENGTH, 233 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 234 "array-length"); 235 236 public static final Dop NEW_INSTANCE = 237 new Dop(DalvOps.NEW_INSTANCE, DalvOps.NEW_INSTANCE, 238 DalvOps.NEW_INSTANCE_JUMBO, Form21c.THE_ONE, true, 239 "new-instance"); 240 241 public static final Dop NEW_ARRAY = 242 new Dop(DalvOps.NEW_ARRAY, DalvOps.NEW_ARRAY, 243 DalvOps.NEW_ARRAY_JUMBO, Form22c.THE_ONE, true, 244 "new-array"); 245 246 public static final Dop FILLED_NEW_ARRAY = 247 new Dop(DalvOps.FILLED_NEW_ARRAY, DalvOps.FILLED_NEW_ARRAY, 248 DalvOps.FILLED_NEW_ARRAY_RANGE, Form35c.THE_ONE, false, 249 "filled-new-array"); 250 251 public static final Dop FILLED_NEW_ARRAY_RANGE = 252 new Dop(DalvOps.FILLED_NEW_ARRAY_RANGE, DalvOps.FILLED_NEW_ARRAY, 253 DalvOps.FILLED_NEW_ARRAY_JUMBO, Form3rc.THE_ONE, false, 254 "filled-new-array/range"); 255 256 public static final Dop FILL_ARRAY_DATA = 257 new Dop(DalvOps.FILL_ARRAY_DATA, DalvOps.FILL_ARRAY_DATA, 258 DalvOps.NO_NEXT, Form31t.THE_ONE, false, 259 "fill-array-data"); 260 261 public static final Dop THROW = 262 new Dop(DalvOps.THROW, DalvOps.THROW, 263 DalvOps.NO_NEXT, Form11x.THE_ONE, false, 264 "throw"); 265 266 public static final Dop GOTO = 267 new Dop(DalvOps.GOTO, DalvOps.GOTO, 268 DalvOps.GOTO_16, Form10t.THE_ONE, false, 269 "goto"); 270 271 public static final Dop GOTO_16 = 272 new Dop(DalvOps.GOTO_16, DalvOps.GOTO, 273 DalvOps.GOTO_32, Form20t.THE_ONE, false, 274 "goto/16"); 275 276 public static final Dop GOTO_32 = 277 new Dop(DalvOps.GOTO_32, DalvOps.GOTO, 278 DalvOps.NO_NEXT, Form30t.THE_ONE, false, 279 "goto/32"); 280 281 public static final Dop PACKED_SWITCH = 282 new Dop(DalvOps.PACKED_SWITCH, DalvOps.PACKED_SWITCH, 283 DalvOps.NO_NEXT, Form31t.THE_ONE, false, 284 "packed-switch"); 285 286 public static final Dop SPARSE_SWITCH = 287 new Dop(DalvOps.SPARSE_SWITCH, DalvOps.SPARSE_SWITCH, 288 DalvOps.NO_NEXT, Form31t.THE_ONE, false, 289 "sparse-switch"); 290 291 public static final Dop CMPL_FLOAT = 292 new Dop(DalvOps.CMPL_FLOAT, DalvOps.CMPL_FLOAT, 293 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 294 "cmpl-float"); 295 296 public static final Dop CMPG_FLOAT = 297 new Dop(DalvOps.CMPG_FLOAT, DalvOps.CMPG_FLOAT, 298 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 299 "cmpg-float"); 300 301 public static final Dop CMPL_DOUBLE = 302 new Dop(DalvOps.CMPL_DOUBLE, DalvOps.CMPL_DOUBLE, 303 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 304 "cmpl-double"); 305 306 public static final Dop CMPG_DOUBLE = 307 new Dop(DalvOps.CMPG_DOUBLE, DalvOps.CMPG_DOUBLE, 308 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 309 "cmpg-double"); 310 311 public static final Dop CMP_LONG = 312 new Dop(DalvOps.CMP_LONG, DalvOps.CMP_LONG, 313 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 314 "cmp-long"); 315 316 public static final Dop IF_EQ = 317 new Dop(DalvOps.IF_EQ, DalvOps.IF_EQ, 318 DalvOps.NO_NEXT, Form22t.THE_ONE, false, 319 "if-eq"); 320 321 public static final Dop IF_NE = 322 new Dop(DalvOps.IF_NE, DalvOps.IF_NE, 323 DalvOps.NO_NEXT, Form22t.THE_ONE, false, 324 "if-ne"); 325 326 public static final Dop IF_LT = 327 new Dop(DalvOps.IF_LT, DalvOps.IF_LT, 328 DalvOps.NO_NEXT, Form22t.THE_ONE, false, 329 "if-lt"); 330 331 public static final Dop IF_GE = 332 new Dop(DalvOps.IF_GE, DalvOps.IF_GE, 333 DalvOps.NO_NEXT, Form22t.THE_ONE, false, 334 "if-ge"); 335 336 public static final Dop IF_GT = 337 new Dop(DalvOps.IF_GT, DalvOps.IF_GT, 338 DalvOps.NO_NEXT, Form22t.THE_ONE, false, 339 "if-gt"); 340 341 public static final Dop IF_LE = 342 new Dop(DalvOps.IF_LE, DalvOps.IF_LE, 343 DalvOps.NO_NEXT, Form22t.THE_ONE, false, 344 "if-le"); 345 346 public static final Dop IF_EQZ = 347 new Dop(DalvOps.IF_EQZ, DalvOps.IF_EQZ, 348 DalvOps.NO_NEXT, Form21t.THE_ONE, false, 349 "if-eqz"); 350 351 public static final Dop IF_NEZ = 352 new Dop(DalvOps.IF_NEZ, DalvOps.IF_NEZ, 353 DalvOps.NO_NEXT, Form21t.THE_ONE, false, 354 "if-nez"); 355 356 public static final Dop IF_LTZ = 357 new Dop(DalvOps.IF_LTZ, DalvOps.IF_LTZ, 358 DalvOps.NO_NEXT, Form21t.THE_ONE, false, 359 "if-ltz"); 360 361 public static final Dop IF_GEZ = 362 new Dop(DalvOps.IF_GEZ, DalvOps.IF_GEZ, 363 DalvOps.NO_NEXT, Form21t.THE_ONE, false, 364 "if-gez"); 365 366 public static final Dop IF_GTZ = 367 new Dop(DalvOps.IF_GTZ, DalvOps.IF_GTZ, 368 DalvOps.NO_NEXT, Form21t.THE_ONE, false, 369 "if-gtz"); 370 371 public static final Dop IF_LEZ = 372 new Dop(DalvOps.IF_LEZ, DalvOps.IF_LEZ, 373 DalvOps.NO_NEXT, Form21t.THE_ONE, false, 374 "if-lez"); 375 376 public static final Dop AGET = 377 new Dop(DalvOps.AGET, DalvOps.AGET, 378 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 379 "aget"); 380 381 public static final Dop AGET_WIDE = 382 new Dop(DalvOps.AGET_WIDE, DalvOps.AGET_WIDE, 383 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 384 "aget-wide"); 385 386 public static final Dop AGET_OBJECT = 387 new Dop(DalvOps.AGET_OBJECT, DalvOps.AGET_OBJECT, 388 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 389 "aget-object"); 390 391 public static final Dop AGET_BOOLEAN = 392 new Dop(DalvOps.AGET_BOOLEAN, DalvOps.AGET_BOOLEAN, 393 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 394 "aget-boolean"); 395 396 public static final Dop AGET_BYTE = 397 new Dop(DalvOps.AGET_BYTE, DalvOps.AGET_BYTE, 398 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 399 "aget-byte"); 400 401 public static final Dop AGET_CHAR = 402 new Dop(DalvOps.AGET_CHAR, DalvOps.AGET_CHAR, 403 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 404 "aget-char"); 405 406 public static final Dop AGET_SHORT = 407 new Dop(DalvOps.AGET_SHORT, DalvOps.AGET_SHORT, 408 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 409 "aget-short"); 410 411 public static final Dop APUT = 412 new Dop(DalvOps.APUT, DalvOps.APUT, 413 DalvOps.NO_NEXT, Form23x.THE_ONE, false, 414 "aput"); 415 416 public static final Dop APUT_WIDE = 417 new Dop(DalvOps.APUT_WIDE, DalvOps.APUT_WIDE, 418 DalvOps.NO_NEXT, Form23x.THE_ONE, false, 419 "aput-wide"); 420 421 public static final Dop APUT_OBJECT = 422 new Dop(DalvOps.APUT_OBJECT, DalvOps.APUT_OBJECT, 423 DalvOps.NO_NEXT, Form23x.THE_ONE, false, 424 "aput-object"); 425 426 public static final Dop APUT_BOOLEAN = 427 new Dop(DalvOps.APUT_BOOLEAN, DalvOps.APUT_BOOLEAN, 428 DalvOps.NO_NEXT, Form23x.THE_ONE, false, 429 "aput-boolean"); 430 431 public static final Dop APUT_BYTE = 432 new Dop(DalvOps.APUT_BYTE, DalvOps.APUT_BYTE, 433 DalvOps.NO_NEXT, Form23x.THE_ONE, false, 434 "aput-byte"); 435 436 public static final Dop APUT_CHAR = 437 new Dop(DalvOps.APUT_CHAR, DalvOps.APUT_CHAR, 438 DalvOps.NO_NEXT, Form23x.THE_ONE, false, 439 "aput-char"); 440 441 public static final Dop APUT_SHORT = 442 new Dop(DalvOps.APUT_SHORT, DalvOps.APUT_SHORT, 443 DalvOps.NO_NEXT, Form23x.THE_ONE, false, 444 "aput-short"); 445 446 public static final Dop IGET = 447 new Dop(DalvOps.IGET, DalvOps.IGET, 448 DalvOps.IGET_JUMBO, Form22c.THE_ONE, true, 449 "iget"); 450 451 public static final Dop IGET_WIDE = 452 new Dop(DalvOps.IGET_WIDE, DalvOps.IGET_WIDE, 453 DalvOps.IGET_WIDE_JUMBO, Form22c.THE_ONE, true, 454 "iget-wide"); 455 456 public static final Dop IGET_OBJECT = 457 new Dop(DalvOps.IGET_OBJECT, DalvOps.IGET_OBJECT, 458 DalvOps.IGET_OBJECT_JUMBO, Form22c.THE_ONE, true, 459 "iget-object"); 460 461 public static final Dop IGET_BOOLEAN = 462 new Dop(DalvOps.IGET_BOOLEAN, DalvOps.IGET_BOOLEAN, 463 DalvOps.IGET_BOOLEAN_JUMBO, Form22c.THE_ONE, true, 464 "iget-boolean"); 465 466 public static final Dop IGET_BYTE = 467 new Dop(DalvOps.IGET_BYTE, DalvOps.IGET_BYTE, 468 DalvOps.IGET_BYTE_JUMBO, Form22c.THE_ONE, true, 469 "iget-byte"); 470 471 public static final Dop IGET_CHAR = 472 new Dop(DalvOps.IGET_CHAR, DalvOps.IGET_CHAR, 473 DalvOps.IGET_CHAR_JUMBO, Form22c.THE_ONE, true, 474 "iget-char"); 475 476 public static final Dop IGET_SHORT = 477 new Dop(DalvOps.IGET_SHORT, DalvOps.IGET_SHORT, 478 DalvOps.IGET_SHORT_JUMBO, Form22c.THE_ONE, true, 479 "iget-short"); 480 481 public static final Dop IPUT = 482 new Dop(DalvOps.IPUT, DalvOps.IPUT, 483 DalvOps.IPUT_JUMBO, Form22c.THE_ONE, false, 484 "iput"); 485 486 public static final Dop IPUT_WIDE = 487 new Dop(DalvOps.IPUT_WIDE, DalvOps.IPUT_WIDE, 488 DalvOps.IPUT_WIDE_JUMBO, Form22c.THE_ONE, false, 489 "iput-wide"); 490 491 public static final Dop IPUT_OBJECT = 492 new Dop(DalvOps.IPUT_OBJECT, DalvOps.IPUT_OBJECT, 493 DalvOps.IPUT_OBJECT_JUMBO, Form22c.THE_ONE, false, 494 "iput-object"); 495 496 public static final Dop IPUT_BOOLEAN = 497 new Dop(DalvOps.IPUT_BOOLEAN, DalvOps.IPUT_BOOLEAN, 498 DalvOps.IPUT_BOOLEAN_JUMBO, Form22c.THE_ONE, false, 499 "iput-boolean"); 500 501 public static final Dop IPUT_BYTE = 502 new Dop(DalvOps.IPUT_BYTE, DalvOps.IPUT_BYTE, 503 DalvOps.IPUT_BYTE_JUMBO, Form22c.THE_ONE, false, 504 "iput-byte"); 505 506 public static final Dop IPUT_CHAR = 507 new Dop(DalvOps.IPUT_CHAR, DalvOps.IPUT_CHAR, 508 DalvOps.IPUT_CHAR_JUMBO, Form22c.THE_ONE, false, 509 "iput-char"); 510 511 public static final Dop IPUT_SHORT = 512 new Dop(DalvOps.IPUT_SHORT, DalvOps.IPUT_SHORT, 513 DalvOps.IPUT_SHORT_JUMBO, Form22c.THE_ONE, false, 514 "iput-short"); 515 516 public static final Dop SGET = 517 new Dop(DalvOps.SGET, DalvOps.SGET, 518 DalvOps.SGET_JUMBO, Form21c.THE_ONE, true, 519 "sget"); 520 521 public static final Dop SGET_WIDE = 522 new Dop(DalvOps.SGET_WIDE, DalvOps.SGET_WIDE, 523 DalvOps.SGET_WIDE_JUMBO, Form21c.THE_ONE, true, 524 "sget-wide"); 525 526 public static final Dop SGET_OBJECT = 527 new Dop(DalvOps.SGET_OBJECT, DalvOps.SGET_OBJECT, 528 DalvOps.SGET_OBJECT_JUMBO, Form21c.THE_ONE, true, 529 "sget-object"); 530 531 public static final Dop SGET_BOOLEAN = 532 new Dop(DalvOps.SGET_BOOLEAN, DalvOps.SGET_BOOLEAN, 533 DalvOps.SGET_BOOLEAN_JUMBO, Form21c.THE_ONE, true, 534 "sget-boolean"); 535 536 public static final Dop SGET_BYTE = 537 new Dop(DalvOps.SGET_BYTE, DalvOps.SGET_BYTE, 538 DalvOps.SGET_BYTE_JUMBO, Form21c.THE_ONE, true, 539 "sget-byte"); 540 541 public static final Dop SGET_CHAR = 542 new Dop(DalvOps.SGET_CHAR, DalvOps.SGET_CHAR, 543 DalvOps.SGET_CHAR_JUMBO, Form21c.THE_ONE, true, 544 "sget-char"); 545 546 public static final Dop SGET_SHORT = 547 new Dop(DalvOps.SGET_SHORT, DalvOps.SGET_SHORT, 548 DalvOps.SGET_SHORT_JUMBO, Form21c.THE_ONE, true, 549 "sget-short"); 550 551 public static final Dop SPUT = 552 new Dop(DalvOps.SPUT, DalvOps.SPUT, 553 DalvOps.SPUT_JUMBO, Form21c.THE_ONE, false, 554 "sput"); 555 556 public static final Dop SPUT_WIDE = 557 new Dop(DalvOps.SPUT_WIDE, DalvOps.SPUT_WIDE, 558 DalvOps.SPUT_WIDE_JUMBO, Form21c.THE_ONE, false, 559 "sput-wide"); 560 561 public static final Dop SPUT_OBJECT = 562 new Dop(DalvOps.SPUT_OBJECT, DalvOps.SPUT_OBJECT, 563 DalvOps.SPUT_OBJECT_JUMBO, Form21c.THE_ONE, false, 564 "sput-object"); 565 566 public static final Dop SPUT_BOOLEAN = 567 new Dop(DalvOps.SPUT_BOOLEAN, DalvOps.SPUT_BOOLEAN, 568 DalvOps.SPUT_BOOLEAN_JUMBO, Form21c.THE_ONE, false, 569 "sput-boolean"); 570 571 public static final Dop SPUT_BYTE = 572 new Dop(DalvOps.SPUT_BYTE, DalvOps.SPUT_BYTE, 573 DalvOps.SPUT_BYTE_JUMBO, Form21c.THE_ONE, false, 574 "sput-byte"); 575 576 public static final Dop SPUT_CHAR = 577 new Dop(DalvOps.SPUT_CHAR, DalvOps.SPUT_CHAR, 578 DalvOps.SPUT_CHAR_JUMBO, Form21c.THE_ONE, false, 579 "sput-char"); 580 581 public static final Dop SPUT_SHORT = 582 new Dop(DalvOps.SPUT_SHORT, DalvOps.SPUT_SHORT, 583 DalvOps.SPUT_SHORT_JUMBO, Form21c.THE_ONE, false, 584 "sput-short"); 585 586 public static final Dop INVOKE_VIRTUAL = 587 new Dop(DalvOps.INVOKE_VIRTUAL, DalvOps.INVOKE_VIRTUAL, 588 DalvOps.INVOKE_VIRTUAL_RANGE, Form35c.THE_ONE, false, 589 "invoke-virtual"); 590 591 public static final Dop INVOKE_SUPER = 592 new Dop(DalvOps.INVOKE_SUPER, DalvOps.INVOKE_SUPER, 593 DalvOps.INVOKE_SUPER_RANGE, Form35c.THE_ONE, false, 594 "invoke-super"); 595 596 public static final Dop INVOKE_DIRECT = 597 new Dop(DalvOps.INVOKE_DIRECT, DalvOps.INVOKE_DIRECT, 598 DalvOps.INVOKE_DIRECT_RANGE, Form35c.THE_ONE, false, 599 "invoke-direct"); 600 601 public static final Dop INVOKE_STATIC = 602 new Dop(DalvOps.INVOKE_STATIC, DalvOps.INVOKE_STATIC, 603 DalvOps.INVOKE_STATIC_RANGE, Form35c.THE_ONE, false, 604 "invoke-static"); 605 606 public static final Dop INVOKE_INTERFACE = 607 new Dop(DalvOps.INVOKE_INTERFACE, DalvOps.INVOKE_INTERFACE, 608 DalvOps.INVOKE_INTERFACE_RANGE, Form35c.THE_ONE, false, 609 "invoke-interface"); 610 611 public static final Dop INVOKE_VIRTUAL_RANGE = 612 new Dop(DalvOps.INVOKE_VIRTUAL_RANGE, DalvOps.INVOKE_VIRTUAL, 613 DalvOps.INVOKE_VIRTUAL_JUMBO, Form3rc.THE_ONE, false, 614 "invoke-virtual/range"); 615 616 public static final Dop INVOKE_SUPER_RANGE = 617 new Dop(DalvOps.INVOKE_SUPER_RANGE, DalvOps.INVOKE_SUPER, 618 DalvOps.INVOKE_SUPER_JUMBO, Form3rc.THE_ONE, false, 619 "invoke-super/range"); 620 621 public static final Dop INVOKE_DIRECT_RANGE = 622 new Dop(DalvOps.INVOKE_DIRECT_RANGE, DalvOps.INVOKE_DIRECT, 623 DalvOps.INVOKE_DIRECT_JUMBO, Form3rc.THE_ONE, false, 624 "invoke-direct/range"); 625 626 public static final Dop INVOKE_STATIC_RANGE = 627 new Dop(DalvOps.INVOKE_STATIC_RANGE, DalvOps.INVOKE_STATIC, 628 DalvOps.INVOKE_STATIC_JUMBO, Form3rc.THE_ONE, false, 629 "invoke-static/range"); 630 631 public static final Dop INVOKE_INTERFACE_RANGE = 632 new Dop(DalvOps.INVOKE_INTERFACE_RANGE, DalvOps.INVOKE_INTERFACE, 633 DalvOps.INVOKE_INTERFACE_JUMBO, Form3rc.THE_ONE, false, 634 "invoke-interface/range"); 635 636 public static final Dop NEG_INT = 637 new Dop(DalvOps.NEG_INT, DalvOps.NEG_INT, 638 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 639 "neg-int"); 640 641 public static final Dop NOT_INT = 642 new Dop(DalvOps.NOT_INT, DalvOps.NOT_INT, 643 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 644 "not-int"); 645 646 public static final Dop NEG_LONG = 647 new Dop(DalvOps.NEG_LONG, DalvOps.NEG_LONG, 648 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 649 "neg-long"); 650 651 public static final Dop NOT_LONG = 652 new Dop(DalvOps.NOT_LONG, DalvOps.NOT_LONG, 653 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 654 "not-long"); 655 656 public static final Dop NEG_FLOAT = 657 new Dop(DalvOps.NEG_FLOAT, DalvOps.NEG_FLOAT, 658 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 659 "neg-float"); 660 661 public static final Dop NEG_DOUBLE = 662 new Dop(DalvOps.NEG_DOUBLE, DalvOps.NEG_DOUBLE, 663 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 664 "neg-double"); 665 666 public static final Dop INT_TO_LONG = 667 new Dop(DalvOps.INT_TO_LONG, DalvOps.INT_TO_LONG, 668 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 669 "int-to-long"); 670 671 public static final Dop INT_TO_FLOAT = 672 new Dop(DalvOps.INT_TO_FLOAT, DalvOps.INT_TO_FLOAT, 673 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 674 "int-to-float"); 675 676 public static final Dop INT_TO_DOUBLE = 677 new Dop(DalvOps.INT_TO_DOUBLE, DalvOps.INT_TO_DOUBLE, 678 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 679 "int-to-double"); 680 681 public static final Dop LONG_TO_INT = 682 new Dop(DalvOps.LONG_TO_INT, DalvOps.LONG_TO_INT, 683 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 684 "long-to-int"); 685 686 public static final Dop LONG_TO_FLOAT = 687 new Dop(DalvOps.LONG_TO_FLOAT, DalvOps.LONG_TO_FLOAT, 688 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 689 "long-to-float"); 690 691 public static final Dop LONG_TO_DOUBLE = 692 new Dop(DalvOps.LONG_TO_DOUBLE, DalvOps.LONG_TO_DOUBLE, 693 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 694 "long-to-double"); 695 696 public static final Dop FLOAT_TO_INT = 697 new Dop(DalvOps.FLOAT_TO_INT, DalvOps.FLOAT_TO_INT, 698 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 699 "float-to-int"); 700 701 public static final Dop FLOAT_TO_LONG = 702 new Dop(DalvOps.FLOAT_TO_LONG, DalvOps.FLOAT_TO_LONG, 703 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 704 "float-to-long"); 705 706 public static final Dop FLOAT_TO_DOUBLE = 707 new Dop(DalvOps.FLOAT_TO_DOUBLE, DalvOps.FLOAT_TO_DOUBLE, 708 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 709 "float-to-double"); 710 711 public static final Dop DOUBLE_TO_INT = 712 new Dop(DalvOps.DOUBLE_TO_INT, DalvOps.DOUBLE_TO_INT, 713 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 714 "double-to-int"); 715 716 public static final Dop DOUBLE_TO_LONG = 717 new Dop(DalvOps.DOUBLE_TO_LONG, DalvOps.DOUBLE_TO_LONG, 718 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 719 "double-to-long"); 720 721 public static final Dop DOUBLE_TO_FLOAT = 722 new Dop(DalvOps.DOUBLE_TO_FLOAT, DalvOps.DOUBLE_TO_FLOAT, 723 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 724 "double-to-float"); 725 726 public static final Dop INT_TO_BYTE = 727 new Dop(DalvOps.INT_TO_BYTE, DalvOps.INT_TO_BYTE, 728 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 729 "int-to-byte"); 730 731 public static final Dop INT_TO_CHAR = 732 new Dop(DalvOps.INT_TO_CHAR, DalvOps.INT_TO_CHAR, 733 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 734 "int-to-char"); 735 736 public static final Dop INT_TO_SHORT = 737 new Dop(DalvOps.INT_TO_SHORT, DalvOps.INT_TO_SHORT, 738 DalvOps.NO_NEXT, Form12x.THE_ONE, true, 739 "int-to-short"); 740 741 public static final Dop ADD_INT = 742 new Dop(DalvOps.ADD_INT, DalvOps.ADD_INT, 743 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 744 "add-int"); 745 746 public static final Dop SUB_INT = 747 new Dop(DalvOps.SUB_INT, DalvOps.SUB_INT, 748 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 749 "sub-int"); 750 751 public static final Dop MUL_INT = 752 new Dop(DalvOps.MUL_INT, DalvOps.MUL_INT, 753 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 754 "mul-int"); 755 756 public static final Dop DIV_INT = 757 new Dop(DalvOps.DIV_INT, DalvOps.DIV_INT, 758 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 759 "div-int"); 760 761 public static final Dop REM_INT = 762 new Dop(DalvOps.REM_INT, DalvOps.REM_INT, 763 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 764 "rem-int"); 765 766 public static final Dop AND_INT = 767 new Dop(DalvOps.AND_INT, DalvOps.AND_INT, 768 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 769 "and-int"); 770 771 public static final Dop OR_INT = 772 new Dop(DalvOps.OR_INT, DalvOps.OR_INT, 773 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 774 "or-int"); 775 776 public static final Dop XOR_INT = 777 new Dop(DalvOps.XOR_INT, DalvOps.XOR_INT, 778 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 779 "xor-int"); 780 781 public static final Dop SHL_INT = 782 new Dop(DalvOps.SHL_INT, DalvOps.SHL_INT, 783 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 784 "shl-int"); 785 786 public static final Dop SHR_INT = 787 new Dop(DalvOps.SHR_INT, DalvOps.SHR_INT, 788 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 789 "shr-int"); 790 791 public static final Dop USHR_INT = 792 new Dop(DalvOps.USHR_INT, DalvOps.USHR_INT, 793 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 794 "ushr-int"); 795 796 public static final Dop ADD_LONG = 797 new Dop(DalvOps.ADD_LONG, DalvOps.ADD_LONG, 798 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 799 "add-long"); 800 801 public static final Dop SUB_LONG = 802 new Dop(DalvOps.SUB_LONG, DalvOps.SUB_LONG, 803 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 804 "sub-long"); 805 806 public static final Dop MUL_LONG = 807 new Dop(DalvOps.MUL_LONG, DalvOps.MUL_LONG, 808 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 809 "mul-long"); 810 811 public static final Dop DIV_LONG = 812 new Dop(DalvOps.DIV_LONG, DalvOps.DIV_LONG, 813 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 814 "div-long"); 815 816 public static final Dop REM_LONG = 817 new Dop(DalvOps.REM_LONG, DalvOps.REM_LONG, 818 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 819 "rem-long"); 820 821 public static final Dop AND_LONG = 822 new Dop(DalvOps.AND_LONG, DalvOps.AND_LONG, 823 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 824 "and-long"); 825 826 public static final Dop OR_LONG = 827 new Dop(DalvOps.OR_LONG, DalvOps.OR_LONG, 828 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 829 "or-long"); 830 831 public static final Dop XOR_LONG = 832 new Dop(DalvOps.XOR_LONG, DalvOps.XOR_LONG, 833 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 834 "xor-long"); 835 836 public static final Dop SHL_LONG = 837 new Dop(DalvOps.SHL_LONG, DalvOps.SHL_LONG, 838 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 839 "shl-long"); 840 841 public static final Dop SHR_LONG = 842 new Dop(DalvOps.SHR_LONG, DalvOps.SHR_LONG, 843 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 844 "shr-long"); 845 846 public static final Dop USHR_LONG = 847 new Dop(DalvOps.USHR_LONG, DalvOps.USHR_LONG, 848 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 849 "ushr-long"); 850 851 public static final Dop ADD_FLOAT = 852 new Dop(DalvOps.ADD_FLOAT, DalvOps.ADD_FLOAT, 853 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 854 "add-float"); 855 856 public static final Dop SUB_FLOAT = 857 new Dop(DalvOps.SUB_FLOAT, DalvOps.SUB_FLOAT, 858 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 859 "sub-float"); 860 861 public static final Dop MUL_FLOAT = 862 new Dop(DalvOps.MUL_FLOAT, DalvOps.MUL_FLOAT, 863 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 864 "mul-float"); 865 866 public static final Dop DIV_FLOAT = 867 new Dop(DalvOps.DIV_FLOAT, DalvOps.DIV_FLOAT, 868 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 869 "div-float"); 870 871 public static final Dop REM_FLOAT = 872 new Dop(DalvOps.REM_FLOAT, DalvOps.REM_FLOAT, 873 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 874 "rem-float"); 875 876 public static final Dop ADD_DOUBLE = 877 new Dop(DalvOps.ADD_DOUBLE, DalvOps.ADD_DOUBLE, 878 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 879 "add-double"); 880 881 public static final Dop SUB_DOUBLE = 882 new Dop(DalvOps.SUB_DOUBLE, DalvOps.SUB_DOUBLE, 883 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 884 "sub-double"); 885 886 public static final Dop MUL_DOUBLE = 887 new Dop(DalvOps.MUL_DOUBLE, DalvOps.MUL_DOUBLE, 888 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 889 "mul-double"); 890 891 public static final Dop DIV_DOUBLE = 892 new Dop(DalvOps.DIV_DOUBLE, DalvOps.DIV_DOUBLE, 893 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 894 "div-double"); 895 896 public static final Dop REM_DOUBLE = 897 new Dop(DalvOps.REM_DOUBLE, DalvOps.REM_DOUBLE, 898 DalvOps.NO_NEXT, Form23x.THE_ONE, true, 899 "rem-double"); 900 901 public static final Dop ADD_INT_2ADDR = 902 new Dop(DalvOps.ADD_INT_2ADDR, DalvOps.ADD_INT, 903 DalvOps.ADD_INT, Form12x.THE_ONE, true, 904 "add-int/2addr"); 905 906 public static final Dop SUB_INT_2ADDR = 907 new Dop(DalvOps.SUB_INT_2ADDR, DalvOps.SUB_INT, 908 DalvOps.SUB_INT, Form12x.THE_ONE, true, 909 "sub-int/2addr"); 910 911 public static final Dop MUL_INT_2ADDR = 912 new Dop(DalvOps.MUL_INT_2ADDR, DalvOps.MUL_INT, 913 DalvOps.MUL_INT, Form12x.THE_ONE, true, 914 "mul-int/2addr"); 915 916 public static final Dop DIV_INT_2ADDR = 917 new Dop(DalvOps.DIV_INT_2ADDR, DalvOps.DIV_INT, 918 DalvOps.DIV_INT, Form12x.THE_ONE, true, 919 "div-int/2addr"); 920 921 public static final Dop REM_INT_2ADDR = 922 new Dop(DalvOps.REM_INT_2ADDR, DalvOps.REM_INT, 923 DalvOps.REM_INT, Form12x.THE_ONE, true, 924 "rem-int/2addr"); 925 926 public static final Dop AND_INT_2ADDR = 927 new Dop(DalvOps.AND_INT_2ADDR, DalvOps.AND_INT, 928 DalvOps.AND_INT, Form12x.THE_ONE, true, 929 "and-int/2addr"); 930 931 public static final Dop OR_INT_2ADDR = 932 new Dop(DalvOps.OR_INT_2ADDR, DalvOps.OR_INT, 933 DalvOps.OR_INT, Form12x.THE_ONE, true, 934 "or-int/2addr"); 935 936 public static final Dop XOR_INT_2ADDR = 937 new Dop(DalvOps.XOR_INT_2ADDR, DalvOps.XOR_INT, 938 DalvOps.XOR_INT, Form12x.THE_ONE, true, 939 "xor-int/2addr"); 940 941 public static final Dop SHL_INT_2ADDR = 942 new Dop(DalvOps.SHL_INT_2ADDR, DalvOps.SHL_INT, 943 DalvOps.SHL_INT, Form12x.THE_ONE, true, 944 "shl-int/2addr"); 945 946 public static final Dop SHR_INT_2ADDR = 947 new Dop(DalvOps.SHR_INT_2ADDR, DalvOps.SHR_INT, 948 DalvOps.SHR_INT, Form12x.THE_ONE, true, 949 "shr-int/2addr"); 950 951 public static final Dop USHR_INT_2ADDR = 952 new Dop(DalvOps.USHR_INT_2ADDR, DalvOps.USHR_INT, 953 DalvOps.USHR_INT, Form12x.THE_ONE, true, 954 "ushr-int/2addr"); 955 956 public static final Dop ADD_LONG_2ADDR = 957 new Dop(DalvOps.ADD_LONG_2ADDR, DalvOps.ADD_LONG, 958 DalvOps.ADD_LONG, Form12x.THE_ONE, true, 959 "add-long/2addr"); 960 961 public static final Dop SUB_LONG_2ADDR = 962 new Dop(DalvOps.SUB_LONG_2ADDR, DalvOps.SUB_LONG, 963 DalvOps.SUB_LONG, Form12x.THE_ONE, true, 964 "sub-long/2addr"); 965 966 public static final Dop MUL_LONG_2ADDR = 967 new Dop(DalvOps.MUL_LONG_2ADDR, DalvOps.MUL_LONG, 968 DalvOps.MUL_LONG, Form12x.THE_ONE, true, 969 "mul-long/2addr"); 970 971 public static final Dop DIV_LONG_2ADDR = 972 new Dop(DalvOps.DIV_LONG_2ADDR, DalvOps.DIV_LONG, 973 DalvOps.DIV_LONG, Form12x.THE_ONE, true, 974 "div-long/2addr"); 975 976 public static final Dop REM_LONG_2ADDR = 977 new Dop(DalvOps.REM_LONG_2ADDR, DalvOps.REM_LONG, 978 DalvOps.REM_LONG, Form12x.THE_ONE, true, 979 "rem-long/2addr"); 980 981 public static final Dop AND_LONG_2ADDR = 982 new Dop(DalvOps.AND_LONG_2ADDR, DalvOps.AND_LONG, 983 DalvOps.AND_LONG, Form12x.THE_ONE, true, 984 "and-long/2addr"); 985 986 public static final Dop OR_LONG_2ADDR = 987 new Dop(DalvOps.OR_LONG_2ADDR, DalvOps.OR_LONG, 988 DalvOps.OR_LONG, Form12x.THE_ONE, true, 989 "or-long/2addr"); 990 991 public static final Dop XOR_LONG_2ADDR = 992 new Dop(DalvOps.XOR_LONG_2ADDR, DalvOps.XOR_LONG, 993 DalvOps.XOR_LONG, Form12x.THE_ONE, true, 994 "xor-long/2addr"); 995 996 public static final Dop SHL_LONG_2ADDR = 997 new Dop(DalvOps.SHL_LONG_2ADDR, DalvOps.SHL_LONG, 998 DalvOps.SHL_LONG, Form12x.THE_ONE, true, 999 "shl-long/2addr"); 1000 1001 public static final Dop SHR_LONG_2ADDR = 1002 new Dop(DalvOps.SHR_LONG_2ADDR, DalvOps.SHR_LONG, 1003 DalvOps.SHR_LONG, Form12x.THE_ONE, true, 1004 "shr-long/2addr"); 1005 1006 public static final Dop USHR_LONG_2ADDR = 1007 new Dop(DalvOps.USHR_LONG_2ADDR, DalvOps.USHR_LONG, 1008 DalvOps.USHR_LONG, Form12x.THE_ONE, true, 1009 "ushr-long/2addr"); 1010 1011 public static final Dop ADD_FLOAT_2ADDR = 1012 new Dop(DalvOps.ADD_FLOAT_2ADDR, DalvOps.ADD_FLOAT, 1013 DalvOps.ADD_FLOAT, Form12x.THE_ONE, true, 1014 "add-float/2addr"); 1015 1016 public static final Dop SUB_FLOAT_2ADDR = 1017 new Dop(DalvOps.SUB_FLOAT_2ADDR, DalvOps.SUB_FLOAT, 1018 DalvOps.SUB_FLOAT, Form12x.THE_ONE, true, 1019 "sub-float/2addr"); 1020 1021 public static final Dop MUL_FLOAT_2ADDR = 1022 new Dop(DalvOps.MUL_FLOAT_2ADDR, DalvOps.MUL_FLOAT, 1023 DalvOps.MUL_FLOAT, Form12x.THE_ONE, true, 1024 "mul-float/2addr"); 1025 1026 public static final Dop DIV_FLOAT_2ADDR = 1027 new Dop(DalvOps.DIV_FLOAT_2ADDR, DalvOps.DIV_FLOAT, 1028 DalvOps.DIV_FLOAT, Form12x.THE_ONE, true, 1029 "div-float/2addr"); 1030 1031 public static final Dop REM_FLOAT_2ADDR = 1032 new Dop(DalvOps.REM_FLOAT_2ADDR, DalvOps.REM_FLOAT, 1033 DalvOps.REM_FLOAT, Form12x.THE_ONE, true, 1034 "rem-float/2addr"); 1035 1036 public static final Dop ADD_DOUBLE_2ADDR = 1037 new Dop(DalvOps.ADD_DOUBLE_2ADDR, DalvOps.ADD_DOUBLE, 1038 DalvOps.ADD_DOUBLE, Form12x.THE_ONE, true, 1039 "add-double/2addr"); 1040 1041 public static final Dop SUB_DOUBLE_2ADDR = 1042 new Dop(DalvOps.SUB_DOUBLE_2ADDR, DalvOps.SUB_DOUBLE, 1043 DalvOps.SUB_DOUBLE, Form12x.THE_ONE, true, 1044 "sub-double/2addr"); 1045 1046 public static final Dop MUL_DOUBLE_2ADDR = 1047 new Dop(DalvOps.MUL_DOUBLE_2ADDR, DalvOps.MUL_DOUBLE, 1048 DalvOps.MUL_DOUBLE, Form12x.THE_ONE, true, 1049 "mul-double/2addr"); 1050 1051 public static final Dop DIV_DOUBLE_2ADDR = 1052 new Dop(DalvOps.DIV_DOUBLE_2ADDR, DalvOps.DIV_DOUBLE, 1053 DalvOps.DIV_DOUBLE, Form12x.THE_ONE, true, 1054 "div-double/2addr"); 1055 1056 public static final Dop REM_DOUBLE_2ADDR = 1057 new Dop(DalvOps.REM_DOUBLE_2ADDR, DalvOps.REM_DOUBLE, 1058 DalvOps.REM_DOUBLE, Form12x.THE_ONE, true, 1059 "rem-double/2addr"); 1060 1061 public static final Dop ADD_INT_LIT16 = 1062 new Dop(DalvOps.ADD_INT_LIT16, DalvOps.ADD_INT, 1063 DalvOps.NO_NEXT, Form22s.THE_ONE, true, 1064 "add-int/lit16"); 1065 1066 public static final Dop RSUB_INT = 1067 new Dop(DalvOps.RSUB_INT, DalvOps.RSUB_INT, 1068 DalvOps.NO_NEXT, Form22s.THE_ONE, true, 1069 "rsub-int"); 1070 1071 public static final Dop MUL_INT_LIT16 = 1072 new Dop(DalvOps.MUL_INT_LIT16, DalvOps.MUL_INT, 1073 DalvOps.NO_NEXT, Form22s.THE_ONE, true, 1074 "mul-int/lit16"); 1075 1076 public static final Dop DIV_INT_LIT16 = 1077 new Dop(DalvOps.DIV_INT_LIT16, DalvOps.DIV_INT, 1078 DalvOps.NO_NEXT, Form22s.THE_ONE, true, 1079 "div-int/lit16"); 1080 1081 public static final Dop REM_INT_LIT16 = 1082 new Dop(DalvOps.REM_INT_LIT16, DalvOps.REM_INT, 1083 DalvOps.NO_NEXT, Form22s.THE_ONE, true, 1084 "rem-int/lit16"); 1085 1086 public static final Dop AND_INT_LIT16 = 1087 new Dop(DalvOps.AND_INT_LIT16, DalvOps.AND_INT, 1088 DalvOps.NO_NEXT, Form22s.THE_ONE, true, 1089 "and-int/lit16"); 1090 1091 public static final Dop OR_INT_LIT16 = 1092 new Dop(DalvOps.OR_INT_LIT16, DalvOps.OR_INT, 1093 DalvOps.NO_NEXT, Form22s.THE_ONE, true, 1094 "or-int/lit16"); 1095 1096 public static final Dop XOR_INT_LIT16 = 1097 new Dop(DalvOps.XOR_INT_LIT16, DalvOps.XOR_INT, 1098 DalvOps.NO_NEXT, Form22s.THE_ONE, true, 1099 "xor-int/lit16"); 1100 1101 public static final Dop ADD_INT_LIT8 = 1102 new Dop(DalvOps.ADD_INT_LIT8, DalvOps.ADD_INT, 1103 DalvOps.ADD_INT_LIT16, Form22b.THE_ONE, true, 1104 "add-int/lit8"); 1105 1106 public static final Dop RSUB_INT_LIT8 = 1107 new Dop(DalvOps.RSUB_INT_LIT8, DalvOps.RSUB_INT, 1108 DalvOps.RSUB_INT, Form22b.THE_ONE, true, 1109 "rsub-int/lit8"); 1110 1111 public static final Dop MUL_INT_LIT8 = 1112 new Dop(DalvOps.MUL_INT_LIT8, DalvOps.MUL_INT, 1113 DalvOps.MUL_INT_LIT16, Form22b.THE_ONE, true, 1114 "mul-int/lit8"); 1115 1116 public static final Dop DIV_INT_LIT8 = 1117 new Dop(DalvOps.DIV_INT_LIT8, DalvOps.DIV_INT, 1118 DalvOps.DIV_INT_LIT16, Form22b.THE_ONE, true, 1119 "div-int/lit8"); 1120 1121 public static final Dop REM_INT_LIT8 = 1122 new Dop(DalvOps.REM_INT_LIT8, DalvOps.REM_INT, 1123 DalvOps.REM_INT_LIT16, Form22b.THE_ONE, true, 1124 "rem-int/lit8"); 1125 1126 public static final Dop AND_INT_LIT8 = 1127 new Dop(DalvOps.AND_INT_LIT8, DalvOps.AND_INT, 1128 DalvOps.AND_INT_LIT16, Form22b.THE_ONE, true, 1129 "and-int/lit8"); 1130 1131 public static final Dop OR_INT_LIT8 = 1132 new Dop(DalvOps.OR_INT_LIT8, DalvOps.OR_INT, 1133 DalvOps.OR_INT_LIT16, Form22b.THE_ONE, true, 1134 "or-int/lit8"); 1135 1136 public static final Dop XOR_INT_LIT8 = 1137 new Dop(DalvOps.XOR_INT_LIT8, DalvOps.XOR_INT, 1138 DalvOps.XOR_INT_LIT16, Form22b.THE_ONE, true, 1139 "xor-int/lit8"); 1140 1141 public static final Dop SHL_INT_LIT8 = 1142 new Dop(DalvOps.SHL_INT_LIT8, DalvOps.SHL_INT, 1143 DalvOps.NO_NEXT, Form22b.THE_ONE, true, 1144 "shl-int/lit8"); 1145 1146 public static final Dop SHR_INT_LIT8 = 1147 new Dop(DalvOps.SHR_INT_LIT8, DalvOps.SHR_INT, 1148 DalvOps.NO_NEXT, Form22b.THE_ONE, true, 1149 "shr-int/lit8"); 1150 1151 public static final Dop USHR_INT_LIT8 = 1152 new Dop(DalvOps.USHR_INT_LIT8, DalvOps.USHR_INT, 1153 DalvOps.NO_NEXT, Form22b.THE_ONE, true, 1154 "ushr-int/lit8"); 1155 1156 public static final Dop CONST_CLASS_JUMBO = 1157 new Dop(DalvOps.CONST_CLASS_JUMBO, DalvOps.CONST_CLASS, 1158 DalvOps.NO_NEXT, Form41c.THE_ONE, true, 1159 "const-class/jumbo"); 1160 1161 public static final Dop CHECK_CAST_JUMBO = 1162 new Dop(DalvOps.CHECK_CAST_JUMBO, DalvOps.CHECK_CAST, 1163 DalvOps.NO_NEXT, Form41c.THE_ONE, false, 1164 "check-cast/jumbo"); 1165 1166 public static final Dop INSTANCE_OF_JUMBO = 1167 new Dop(DalvOps.INSTANCE_OF_JUMBO, DalvOps.INSTANCE_OF, 1168 DalvOps.NO_NEXT, Form52c.THE_ONE, true, 1169 "instance-of/jumbo"); 1170 1171 public static final Dop NEW_INSTANCE_JUMBO = 1172 new Dop(DalvOps.NEW_INSTANCE_JUMBO, DalvOps.NEW_INSTANCE, 1173 DalvOps.NO_NEXT, Form41c.THE_ONE, true, 1174 "new-instance/jumbo"); 1175 1176 public static final Dop NEW_ARRAY_JUMBO = 1177 new Dop(DalvOps.NEW_ARRAY_JUMBO, DalvOps.NEW_ARRAY, 1178 DalvOps.NO_NEXT, Form52c.THE_ONE, true, 1179 "new-array/jumbo"); 1180 1181 public static final Dop FILLED_NEW_ARRAY_JUMBO = 1182 new Dop(DalvOps.FILLED_NEW_ARRAY_JUMBO, DalvOps.FILLED_NEW_ARRAY, 1183 DalvOps.NO_NEXT, Form5rc.THE_ONE, false, 1184 "filled-new-array/jumbo"); 1185 1186 public static final Dop IGET_JUMBO = 1187 new Dop(DalvOps.IGET_JUMBO, DalvOps.IGET, 1188 DalvOps.NO_NEXT, Form52c.THE_ONE, true, 1189 "iget/jumbo"); 1190 1191 public static final Dop IGET_WIDE_JUMBO = 1192 new Dop(DalvOps.IGET_WIDE_JUMBO, DalvOps.IGET_WIDE, 1193 DalvOps.NO_NEXT, Form52c.THE_ONE, true, 1194 "iget-wide/jumbo"); 1195 1196 public static final Dop IGET_OBJECT_JUMBO = 1197 new Dop(DalvOps.IGET_OBJECT_JUMBO, DalvOps.IGET_OBJECT, 1198 DalvOps.NO_NEXT, Form52c.THE_ONE, true, 1199 "iget-object/jumbo"); 1200 1201 public static final Dop IGET_BOOLEAN_JUMBO = 1202 new Dop(DalvOps.IGET_BOOLEAN_JUMBO, DalvOps.IGET_BOOLEAN, 1203 DalvOps.NO_NEXT, Form52c.THE_ONE, true, 1204 "iget-boolean/jumbo"); 1205 1206 public static final Dop IGET_BYTE_JUMBO = 1207 new Dop(DalvOps.IGET_BYTE_JUMBO, DalvOps.IGET_BYTE, 1208 DalvOps.NO_NEXT, Form52c.THE_ONE, true, 1209 "iget-byte/jumbo"); 1210 1211 public static final Dop IGET_CHAR_JUMBO = 1212 new Dop(DalvOps.IGET_CHAR_JUMBO, DalvOps.IGET_CHAR, 1213 DalvOps.NO_NEXT, Form52c.THE_ONE, true, 1214 "iget-char/jumbo"); 1215 1216 public static final Dop IGET_SHORT_JUMBO = 1217 new Dop(DalvOps.IGET_SHORT_JUMBO, DalvOps.IGET_SHORT, 1218 DalvOps.NO_NEXT, Form52c.THE_ONE, true, 1219 "iget-short/jumbo"); 1220 1221 public static final Dop IPUT_JUMBO = 1222 new Dop(DalvOps.IPUT_JUMBO, DalvOps.IPUT, 1223 DalvOps.NO_NEXT, Form52c.THE_ONE, false, 1224 "iput/jumbo"); 1225 1226 public static final Dop IPUT_WIDE_JUMBO = 1227 new Dop(DalvOps.IPUT_WIDE_JUMBO, DalvOps.IPUT_WIDE, 1228 DalvOps.NO_NEXT, Form52c.THE_ONE, false, 1229 "iput-wide/jumbo"); 1230 1231 public static final Dop IPUT_OBJECT_JUMBO = 1232 new Dop(DalvOps.IPUT_OBJECT_JUMBO, DalvOps.IPUT_OBJECT, 1233 DalvOps.NO_NEXT, Form52c.THE_ONE, false, 1234 "iput-object/jumbo"); 1235 1236 public static final Dop IPUT_BOOLEAN_JUMBO = 1237 new Dop(DalvOps.IPUT_BOOLEAN_JUMBO, DalvOps.IPUT_BOOLEAN, 1238 DalvOps.NO_NEXT, Form52c.THE_ONE, false, 1239 "iput-boolean/jumbo"); 1240 1241 public static final Dop IPUT_BYTE_JUMBO = 1242 new Dop(DalvOps.IPUT_BYTE_JUMBO, DalvOps.IPUT_BYTE, 1243 DalvOps.NO_NEXT, Form52c.THE_ONE, false, 1244 "iput-byte/jumbo"); 1245 1246 public static final Dop IPUT_CHAR_JUMBO = 1247 new Dop(DalvOps.IPUT_CHAR_JUMBO, DalvOps.IPUT_CHAR, 1248 DalvOps.NO_NEXT, Form52c.THE_ONE, false, 1249 "iput-char/jumbo"); 1250 1251 public static final Dop IPUT_SHORT_JUMBO = 1252 new Dop(DalvOps.IPUT_SHORT_JUMBO, DalvOps.IPUT_SHORT, 1253 DalvOps.NO_NEXT, Form52c.THE_ONE, false, 1254 "iput-short/jumbo"); 1255 1256 public static final Dop SGET_JUMBO = 1257 new Dop(DalvOps.SGET_JUMBO, DalvOps.SGET, 1258 DalvOps.NO_NEXT, Form41c.THE_ONE, true, 1259 "sget/jumbo"); 1260 1261 public static final Dop SGET_WIDE_JUMBO = 1262 new Dop(DalvOps.SGET_WIDE_JUMBO, DalvOps.SGET_WIDE, 1263 DalvOps.NO_NEXT, Form41c.THE_ONE, true, 1264 "sget-wide/jumbo"); 1265 1266 public static final Dop SGET_OBJECT_JUMBO = 1267 new Dop(DalvOps.SGET_OBJECT_JUMBO, DalvOps.SGET_OBJECT, 1268 DalvOps.NO_NEXT, Form41c.THE_ONE, true, 1269 "sget-object/jumbo"); 1270 1271 public static final Dop SGET_BOOLEAN_JUMBO = 1272 new Dop(DalvOps.SGET_BOOLEAN_JUMBO, DalvOps.SGET_BOOLEAN, 1273 DalvOps.NO_NEXT, Form41c.THE_ONE, true, 1274 "sget-boolean/jumbo"); 1275 1276 public static final Dop SGET_BYTE_JUMBO = 1277 new Dop(DalvOps.SGET_BYTE_JUMBO, DalvOps.SGET_BYTE, 1278 DalvOps.NO_NEXT, Form41c.THE_ONE, true, 1279 "sget-byte/jumbo"); 1280 1281 public static final Dop SGET_CHAR_JUMBO = 1282 new Dop(DalvOps.SGET_CHAR_JUMBO, DalvOps.SGET_CHAR, 1283 DalvOps.NO_NEXT, Form41c.THE_ONE, true, 1284 "sget-char/jumbo"); 1285 1286 public static final Dop SGET_SHORT_JUMBO = 1287 new Dop(DalvOps.SGET_SHORT_JUMBO, DalvOps.SGET_SHORT, 1288 DalvOps.NO_NEXT, Form41c.THE_ONE, true, 1289 "sget-short/jumbo"); 1290 1291 public static final Dop SPUT_JUMBO = 1292 new Dop(DalvOps.SPUT_JUMBO, DalvOps.SPUT, 1293 DalvOps.NO_NEXT, Form41c.THE_ONE, false, 1294 "sput/jumbo"); 1295 1296 public static final Dop SPUT_WIDE_JUMBO = 1297 new Dop(DalvOps.SPUT_WIDE_JUMBO, DalvOps.SPUT_WIDE, 1298 DalvOps.NO_NEXT, Form41c.THE_ONE, false, 1299 "sput-wide/jumbo"); 1300 1301 public static final Dop SPUT_OBJECT_JUMBO = 1302 new Dop(DalvOps.SPUT_OBJECT_JUMBO, DalvOps.SPUT_OBJECT, 1303 DalvOps.NO_NEXT, Form41c.THE_ONE, false, 1304 "sput-object/jumbo"); 1305 1306 public static final Dop SPUT_BOOLEAN_JUMBO = 1307 new Dop(DalvOps.SPUT_BOOLEAN_JUMBO, DalvOps.SPUT_BOOLEAN, 1308 DalvOps.NO_NEXT, Form41c.THE_ONE, false, 1309 "sput-boolean/jumbo"); 1310 1311 public static final Dop SPUT_BYTE_JUMBO = 1312 new Dop(DalvOps.SPUT_BYTE_JUMBO, DalvOps.SPUT_BYTE, 1313 DalvOps.NO_NEXT, Form41c.THE_ONE, false, 1314 "sput-byte/jumbo"); 1315 1316 public static final Dop SPUT_CHAR_JUMBO = 1317 new Dop(DalvOps.SPUT_CHAR_JUMBO, DalvOps.SPUT_CHAR, 1318 DalvOps.NO_NEXT, Form41c.THE_ONE, false, 1319 "sput-char/jumbo"); 1320 1321 public static final Dop SPUT_SHORT_JUMBO = 1322 new Dop(DalvOps.SPUT_SHORT_JUMBO, DalvOps.SPUT_SHORT, 1323 DalvOps.NO_NEXT, Form41c.THE_ONE, false, 1324 "sput-short/jumbo"); 1325 1326 public static final Dop INVOKE_VIRTUAL_JUMBO = 1327 new Dop(DalvOps.INVOKE_VIRTUAL_JUMBO, DalvOps.INVOKE_VIRTUAL, 1328 DalvOps.NO_NEXT, Form5rc.THE_ONE, false, 1329 "invoke-virtual/jumbo"); 1330 1331 public static final Dop INVOKE_SUPER_JUMBO = 1332 new Dop(DalvOps.INVOKE_SUPER_JUMBO, DalvOps.INVOKE_SUPER, 1333 DalvOps.NO_NEXT, Form5rc.THE_ONE, false, 1334 "invoke-super/jumbo"); 1335 1336 public static final Dop INVOKE_DIRECT_JUMBO = 1337 new Dop(DalvOps.INVOKE_DIRECT_JUMBO, DalvOps.INVOKE_DIRECT, 1338 DalvOps.NO_NEXT, Form5rc.THE_ONE, false, 1339 "invoke-direct/jumbo"); 1340 1341 public static final Dop INVOKE_STATIC_JUMBO = 1342 new Dop(DalvOps.INVOKE_STATIC_JUMBO, DalvOps.INVOKE_STATIC, 1343 DalvOps.NO_NEXT, Form5rc.THE_ONE, false, 1344 "invoke-static/jumbo"); 1345 1346 public static final Dop INVOKE_INTERFACE_JUMBO = 1347 new Dop(DalvOps.INVOKE_INTERFACE_JUMBO, DalvOps.INVOKE_INTERFACE, 1348 DalvOps.NO_NEXT, Form5rc.THE_ONE, false, 1349 "invoke-interface/jumbo"); 1350 1351 // END(dops) 1352 1353 // Static initialization. 1354 static { 1355 DOPS = new Dop[DalvOps.MAX_VALUE - DalvOps.MIN_VALUE + 1]; 1356 1357 set(SPECIAL_FORMAT); 1358 1359 // BEGIN(dops-init); GENERATED AUTOMATICALLY BY opcode-gen 1360 set(NOP); 1361 set(MOVE); 1362 set(MOVE_FROM16); 1363 set(MOVE_16); 1364 set(MOVE_WIDE); 1365 set(MOVE_WIDE_FROM16); 1366 set(MOVE_WIDE_16); 1367 set(MOVE_OBJECT); 1368 set(MOVE_OBJECT_FROM16); 1369 set(MOVE_OBJECT_16); 1370 set(MOVE_RESULT); 1371 set(MOVE_RESULT_WIDE); 1372 set(MOVE_RESULT_OBJECT); 1373 set(MOVE_EXCEPTION); 1374 set(RETURN_VOID); 1375 set(RETURN); 1376 set(RETURN_WIDE); 1377 set(RETURN_OBJECT); 1378 set(CONST_4); 1379 set(CONST_16); 1380 set(CONST); 1381 set(CONST_HIGH16); 1382 set(CONST_WIDE_16); 1383 set(CONST_WIDE_32); 1384 set(CONST_WIDE); 1385 set(CONST_WIDE_HIGH16); 1386 set(CONST_STRING); 1387 set(CONST_STRING_JUMBO); 1388 set(CONST_CLASS); 1389 set(MONITOR_ENTER); 1390 set(MONITOR_EXIT); 1391 set(CHECK_CAST); 1392 set(INSTANCE_OF); 1393 set(ARRAY_LENGTH); 1394 set(NEW_INSTANCE); 1395 set(NEW_ARRAY); 1396 set(FILLED_NEW_ARRAY); 1397 set(FILLED_NEW_ARRAY_RANGE); 1398 set(FILL_ARRAY_DATA); 1399 set(THROW); 1400 set(GOTO); 1401 set(GOTO_16); 1402 set(GOTO_32); 1403 set(PACKED_SWITCH); 1404 set(SPARSE_SWITCH); 1405 set(CMPL_FLOAT); 1406 set(CMPG_FLOAT); 1407 set(CMPL_DOUBLE); 1408 set(CMPG_DOUBLE); 1409 set(CMP_LONG); 1410 set(IF_EQ); 1411 set(IF_NE); 1412 set(IF_LT); 1413 set(IF_GE); 1414 set(IF_GT); 1415 set(IF_LE); 1416 set(IF_EQZ); 1417 set(IF_NEZ); 1418 set(IF_LTZ); 1419 set(IF_GEZ); 1420 set(IF_GTZ); 1421 set(IF_LEZ); 1422 set(AGET); 1423 set(AGET_WIDE); 1424 set(AGET_OBJECT); 1425 set(AGET_BOOLEAN); 1426 set(AGET_BYTE); 1427 set(AGET_CHAR); 1428 set(AGET_SHORT); 1429 set(APUT); 1430 set(APUT_WIDE); 1431 set(APUT_OBJECT); 1432 set(APUT_BOOLEAN); 1433 set(APUT_BYTE); 1434 set(APUT_CHAR); 1435 set(APUT_SHORT); 1436 set(IGET); 1437 set(IGET_WIDE); 1438 set(IGET_OBJECT); 1439 set(IGET_BOOLEAN); 1440 set(IGET_BYTE); 1441 set(IGET_CHAR); 1442 set(IGET_SHORT); 1443 set(IPUT); 1444 set(IPUT_WIDE); 1445 set(IPUT_OBJECT); 1446 set(IPUT_BOOLEAN); 1447 set(IPUT_BYTE); 1448 set(IPUT_CHAR); 1449 set(IPUT_SHORT); 1450 set(SGET); 1451 set(SGET_WIDE); 1452 set(SGET_OBJECT); 1453 set(SGET_BOOLEAN); 1454 set(SGET_BYTE); 1455 set(SGET_CHAR); 1456 set(SGET_SHORT); 1457 set(SPUT); 1458 set(SPUT_WIDE); 1459 set(SPUT_OBJECT); 1460 set(SPUT_BOOLEAN); 1461 set(SPUT_BYTE); 1462 set(SPUT_CHAR); 1463 set(SPUT_SHORT); 1464 set(INVOKE_VIRTUAL); 1465 set(INVOKE_SUPER); 1466 set(INVOKE_DIRECT); 1467 set(INVOKE_STATIC); 1468 set(INVOKE_INTERFACE); 1469 set(INVOKE_VIRTUAL_RANGE); 1470 set(INVOKE_SUPER_RANGE); 1471 set(INVOKE_DIRECT_RANGE); 1472 set(INVOKE_STATIC_RANGE); 1473 set(INVOKE_INTERFACE_RANGE); 1474 set(NEG_INT); 1475 set(NOT_INT); 1476 set(NEG_LONG); 1477 set(NOT_LONG); 1478 set(NEG_FLOAT); 1479 set(NEG_DOUBLE); 1480 set(INT_TO_LONG); 1481 set(INT_TO_FLOAT); 1482 set(INT_TO_DOUBLE); 1483 set(LONG_TO_INT); 1484 set(LONG_TO_FLOAT); 1485 set(LONG_TO_DOUBLE); 1486 set(FLOAT_TO_INT); 1487 set(FLOAT_TO_LONG); 1488 set(FLOAT_TO_DOUBLE); 1489 set(DOUBLE_TO_INT); 1490 set(DOUBLE_TO_LONG); 1491 set(DOUBLE_TO_FLOAT); 1492 set(INT_TO_BYTE); 1493 set(INT_TO_CHAR); 1494 set(INT_TO_SHORT); 1495 set(ADD_INT); 1496 set(SUB_INT); 1497 set(MUL_INT); 1498 set(DIV_INT); 1499 set(REM_INT); 1500 set(AND_INT); 1501 set(OR_INT); 1502 set(XOR_INT); 1503 set(SHL_INT); 1504 set(SHR_INT); 1505 set(USHR_INT); 1506 set(ADD_LONG); 1507 set(SUB_LONG); 1508 set(MUL_LONG); 1509 set(DIV_LONG); 1510 set(REM_LONG); 1511 set(AND_LONG); 1512 set(OR_LONG); 1513 set(XOR_LONG); 1514 set(SHL_LONG); 1515 set(SHR_LONG); 1516 set(USHR_LONG); 1517 set(ADD_FLOAT); 1518 set(SUB_FLOAT); 1519 set(MUL_FLOAT); 1520 set(DIV_FLOAT); 1521 set(REM_FLOAT); 1522 set(ADD_DOUBLE); 1523 set(SUB_DOUBLE); 1524 set(MUL_DOUBLE); 1525 set(DIV_DOUBLE); 1526 set(REM_DOUBLE); 1527 set(ADD_INT_2ADDR); 1528 set(SUB_INT_2ADDR); 1529 set(MUL_INT_2ADDR); 1530 set(DIV_INT_2ADDR); 1531 set(REM_INT_2ADDR); 1532 set(AND_INT_2ADDR); 1533 set(OR_INT_2ADDR); 1534 set(XOR_INT_2ADDR); 1535 set(SHL_INT_2ADDR); 1536 set(SHR_INT_2ADDR); 1537 set(USHR_INT_2ADDR); 1538 set(ADD_LONG_2ADDR); 1539 set(SUB_LONG_2ADDR); 1540 set(MUL_LONG_2ADDR); 1541 set(DIV_LONG_2ADDR); 1542 set(REM_LONG_2ADDR); 1543 set(AND_LONG_2ADDR); 1544 set(OR_LONG_2ADDR); 1545 set(XOR_LONG_2ADDR); 1546 set(SHL_LONG_2ADDR); 1547 set(SHR_LONG_2ADDR); 1548 set(USHR_LONG_2ADDR); 1549 set(ADD_FLOAT_2ADDR); 1550 set(SUB_FLOAT_2ADDR); 1551 set(MUL_FLOAT_2ADDR); 1552 set(DIV_FLOAT_2ADDR); 1553 set(REM_FLOAT_2ADDR); 1554 set(ADD_DOUBLE_2ADDR); 1555 set(SUB_DOUBLE_2ADDR); 1556 set(MUL_DOUBLE_2ADDR); 1557 set(DIV_DOUBLE_2ADDR); 1558 set(REM_DOUBLE_2ADDR); 1559 set(ADD_INT_LIT16); 1560 set(RSUB_INT); 1561 set(MUL_INT_LIT16); 1562 set(DIV_INT_LIT16); 1563 set(REM_INT_LIT16); 1564 set(AND_INT_LIT16); 1565 set(OR_INT_LIT16); 1566 set(XOR_INT_LIT16); 1567 set(ADD_INT_LIT8); 1568 set(RSUB_INT_LIT8); 1569 set(MUL_INT_LIT8); 1570 set(DIV_INT_LIT8); 1571 set(REM_INT_LIT8); 1572 set(AND_INT_LIT8); 1573 set(OR_INT_LIT8); 1574 set(XOR_INT_LIT8); 1575 set(SHL_INT_LIT8); 1576 set(SHR_INT_LIT8); 1577 set(USHR_INT_LIT8); 1578 set(CONST_CLASS_JUMBO); 1579 set(CHECK_CAST_JUMBO); 1580 set(INSTANCE_OF_JUMBO); 1581 set(NEW_INSTANCE_JUMBO); 1582 set(NEW_ARRAY_JUMBO); 1583 set(FILLED_NEW_ARRAY_JUMBO); 1584 set(IGET_JUMBO); 1585 set(IGET_WIDE_JUMBO); 1586 set(IGET_OBJECT_JUMBO); 1587 set(IGET_BOOLEAN_JUMBO); 1588 set(IGET_BYTE_JUMBO); 1589 set(IGET_CHAR_JUMBO); 1590 set(IGET_SHORT_JUMBO); 1591 set(IPUT_JUMBO); 1592 set(IPUT_WIDE_JUMBO); 1593 set(IPUT_OBJECT_JUMBO); 1594 set(IPUT_BOOLEAN_JUMBO); 1595 set(IPUT_BYTE_JUMBO); 1596 set(IPUT_CHAR_JUMBO); 1597 set(IPUT_SHORT_JUMBO); 1598 set(SGET_JUMBO); 1599 set(SGET_WIDE_JUMBO); 1600 set(SGET_OBJECT_JUMBO); 1601 set(SGET_BOOLEAN_JUMBO); 1602 set(SGET_BYTE_JUMBO); 1603 set(SGET_CHAR_JUMBO); 1604 set(SGET_SHORT_JUMBO); 1605 set(SPUT_JUMBO); 1606 set(SPUT_WIDE_JUMBO); 1607 set(SPUT_OBJECT_JUMBO); 1608 set(SPUT_BOOLEAN_JUMBO); 1609 set(SPUT_BYTE_JUMBO); 1610 set(SPUT_CHAR_JUMBO); 1611 set(SPUT_SHORT_JUMBO); 1612 set(INVOKE_VIRTUAL_JUMBO); 1613 set(INVOKE_SUPER_JUMBO); 1614 set(INVOKE_DIRECT_JUMBO); 1615 set(INVOKE_STATIC_JUMBO); 1616 set(INVOKE_INTERFACE_JUMBO); 1617 // END(dops-init) 1618 } 1619 1620 /** 1621 * This class is uninstantiable. 1622 */ 1623 private Dops() { 1624 // This space intentionally left blank. 1625 } 1626 1627 /** 1628 * Gets the {@link Dop} for the given opcode value. 1629 * 1630 * @param opcode {@code DalvOps.MIN_VALUE..DalvOps.MAX_VALUE;} the 1631 * opcode value 1632 * @return {@code non-null;} the associated opcode instance 1633 */ 1634 public static Dop get(int opcode) { 1635 int idx = opcode - DalvOps.MIN_VALUE; 1636 1637 try { 1638 Dop result = DOPS[idx]; 1639 if (result != null) { 1640 return result; 1641 } 1642 } catch (ArrayIndexOutOfBoundsException ex) { 1643 // Fall through. 1644 } 1645 1646 throw new IllegalArgumentException("bogus opcode"); 1647 } 1648 1649 /** 1650 * Gets the next {@link Dop} in the instruction fitting chain after the 1651 * given instance, if any. 1652 * 1653 * @param opcode {@code non-null;} the opcode 1654 * @return {@code null-ok;} the next opcode in the same family, in the 1655 * chain of opcodes to try, or {@code null} if the given opcode is 1656 * the last in its chain 1657 */ 1658 public static Dop getNextOrNull(Dop opcode) { 1659 int nextOpcode = opcode.getNextOpcode(); 1660 1661 if (nextOpcode == DalvOps.NO_NEXT) { 1662 return null; 1663 } 1664 1665 return get(nextOpcode); 1666 } 1667 1668 /** 1669 * Puts the given opcode into the table of all ops. 1670 * 1671 * @param opcode {@code non-null;} the opcode 1672 */ 1673 private static void set(Dop opcode) { 1674 int idx = opcode.getOpcode() - DalvOps.MIN_VALUE; 1675 DOPS[idx] = opcode; 1676 } 1677} 1678