| 329 | } |
| 330 | |
| 331 | fn parse_instruction(reader: &mut BlockReader, current_offset: usize) -> Instruction { |
| 332 | let opcode = reader.get_u8(); |
| 333 | |
| 334 | let instruction = match opcode { |
| 335 | 0x32 => Instruction::AALOAD, |
| 336 | 0x53 => Instruction::AASTORE, |
| 337 | 0x01 => Instruction::ACONST_NULL, |
| 338 | 0x19 => Instruction::ALOAD(reader.get_u8()), |
| 339 | 0x2a => Instruction::ALOAD_0, |
| 340 | 0x2b => Instruction::ALOAD_1, |
| 341 | 0x2c => Instruction::ALOAD_2, |
| 342 | 0x2d => Instruction::ALOAD_3, |
| 343 | 0xbd => Instruction::ANEWARRAY(reader.get_u16()), |
| 344 | 0xb0 => Instruction::ARETURN, |
| 345 | 0xbe => Instruction::ARRAYLENGTH, |
| 346 | 0x3a => Instruction::ASTORE(reader.get_u8()), |
| 347 | 0x4b => Instruction::ASTORE_0, |
| 348 | 0x4c => Instruction::ASTORE_1, |
| 349 | 0x4d => Instruction::ASTORE_2, |
| 350 | 0x4e => Instruction::ASTORE_3, |
| 351 | 0xbf => Instruction::ATHROW, |
| 352 | 0x33 => Instruction::BALOAD, |
| 353 | 0x54 => Instruction::BASTORE, |
| 354 | 0x10 => Instruction::BIPUSH(reader.get_u8()), |
| 355 | 0x34 => Instruction::CALOAD, |
| 356 | 0x55 => Instruction::CASTORE, |
| 357 | 0xc0 => Instruction::CHECKCAST(reader.get_u16()), |
| 358 | 0x90 => Instruction::D2F, |
| 359 | 0x8e => Instruction::D2I, |
| 360 | 0x8f => Instruction::D2L, |
| 361 | 0x63 => Instruction::DADD, |
| 362 | 0x31 => Instruction::DALOAD, |
| 363 | 0x52 => Instruction::DASTORE, |
| 364 | 0x97 => Instruction::DCMPL, |
| 365 | 0x98 => Instruction::DCMPG, |
| 366 | 0x0e => Instruction::DCONST_0, |
| 367 | 0x0f => Instruction::DCONST_1, |
| 368 | 0x6f => Instruction::DDIV, |
| 369 | 0x18 => Instruction::DLOAD(reader.get_u8()), |
| 370 | 0x26 => Instruction::DLOAD_0, |
| 371 | 0x27 => Instruction::DLOAD_1, |
| 372 | 0x28 => Instruction::DLOAD_2, |
| 373 | 0x29 => Instruction::DLOAD_3, |
| 374 | 0x6b => Instruction::DMUL, |
| 375 | 0x77 => Instruction::DNEG, |
| 376 | 0x73 => Instruction::DREM, |
| 377 | 0xaf => Instruction::DRETURN, |
| 378 | 0x39 => Instruction::DSTORE(reader.get_u8()), |
| 379 | 0x47 => Instruction::DSTORE_0, |
| 380 | 0x48 => Instruction::DSTORE_1, |
| 381 | 0x49 => Instruction::DSTORE_2, |
| 382 | 0x4a => Instruction::DSTORE_3, |
| 383 | 0x67 => Instruction::DSUB, |
| 384 | 0x59 => Instruction::DUP, |
| 385 | 0x5a => Instruction::DUP_X1, |
| 386 | 0x5b => Instruction::DUP_X2, |
| 387 | 0x5c => Instruction::DUP2, |
| 388 | 0x5d => Instruction::DUP2_X1, |