(final AbstractInsnNode insn, final StackHelper interpreter)
| 58 | } |
| 59 | |
| 60 | public void execute(final AbstractInsnNode insn, final StackHelper interpreter) throws AnalyzerException { |
| 61 | InsnValue value1, value2, value3, value4; |
| 62 | List values; |
| 63 | int var; |
| 64 | doJump = false; |
| 65 | switch (insn.getOpcode()) { |
| 66 | case Opcodes.NOP: |
| 67 | break; |
| 68 | case Opcodes.ACONST_NULL: |
| 69 | case Opcodes.ICONST_M1: |
| 70 | case Opcodes.ICONST_0: |
| 71 | case Opcodes.ICONST_1: |
| 72 | case Opcodes.ICONST_2: |
| 73 | case Opcodes.ICONST_3: |
| 74 | case Opcodes.ICONST_4: |
| 75 | case Opcodes.ICONST_5: |
| 76 | case Opcodes.LCONST_0: |
| 77 | case Opcodes.LCONST_1: |
| 78 | case Opcodes.FCONST_0: |
| 79 | case Opcodes.FCONST_1: |
| 80 | case Opcodes.FCONST_2: |
| 81 | case Opcodes.DCONST_0: |
| 82 | case Opcodes.DCONST_1: |
| 83 | case Opcodes.BIPUSH: |
| 84 | case Opcodes.SIPUSH: |
| 85 | case Opcodes.LDC: |
| 86 | push(interpreter.createConstant(insn)); |
| 87 | break; |
| 88 | case Opcodes.ILOAD: |
| 89 | case Opcodes.LLOAD: |
| 90 | case Opcodes.FLOAD: |
| 91 | case Opcodes.DLOAD: |
| 92 | case Opcodes.ALOAD: |
| 93 | push(interpreter.loadLocal(insn, getLocal(((VarInsnNode) insn).var))); |
| 94 | break; |
| 95 | case Opcodes.IALOAD: |
| 96 | case Opcodes.LALOAD: |
| 97 | case Opcodes.FALOAD: |
| 98 | case Opcodes.DALOAD: |
| 99 | case Opcodes.AALOAD: |
| 100 | case Opcodes.BALOAD: |
| 101 | case Opcodes.CALOAD: |
| 102 | case Opcodes.SALOAD: |
| 103 | value2 = pop(); |
| 104 | value1 = pop(); |
| 105 | push(interpreter.loadFromArray(insn, value1, value2)); |
| 106 | break; |
| 107 | case Opcodes.ISTORE: |
| 108 | case Opcodes.LSTORE: |
| 109 | case Opcodes.FSTORE: |
| 110 | case Opcodes.DSTORE: |
| 111 | case Opcodes.ASTORE: |
| 112 | value1 = pop(); |
| 113 | value1 = interpreter.loadLocal(insn, value1); |
| 114 | var = ((VarInsnNode) insn).var; |
| 115 | setLocal(var, value1); |
| 116 | if (value1.getSize() == 2) { |
| 117 | setLocal(var + 1, interpreter.newValue(null)); |
no test coverage detected