Create StoreInstruction(LValueExpression).

git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@764 379699f6-c40d-0410-875b-85095c16579e
stable
jochen 25 years ago
parent 7cc18ada02
commit fe82f8f2c7
  1. 21
      jode/jode/decompiler/Opcodes.java

@ -145,16 +145,16 @@ public abstract class Opcodes implements jode.bytecode.Opcodes {
case opc_istore: case opc_lstore:
case opc_fstore: case opc_dstore: case opc_astore:
return createNormal
(ca, instr, new LocalStoreOperator
(types[0][opcode-opc_istore],
ca.getLocalInfo(instr.addr+instr.length, instr.localSlot),
Operator.ASSIGN_OP));
(ca, instr, new StoreInstruction
(new LocalStoreOperator
(types[0][opcode-opc_istore],
ca.getLocalInfo(instr.addr+instr.length,instr.localSlot))));
case opc_iastore: case opc_lastore:
case opc_fastore: case opc_dastore: case opc_aastore:
case opc_bastore: case opc_castore: case opc_sastore:
return createNormal
(ca, instr, new ArrayStoreOperator
(types[1][opcode - opc_iastore]));
(ca, instr, new StoreInstruction
(new ArrayStoreOperator(types[1][opcode - opc_iastore])));
case opc_pop: case opc_pop2:
return createSpecial
(ca, instr, SpecialBlock.POP, opcode - opc_pop + 1, 0);
@ -200,11 +200,10 @@ public abstract class Opcodes implements jode.bytecode.Opcodes {
operation = Operator.SUB_OP;
}
LocalInfo li = ca.getLocalInfo(instr.addr, instr.localSlot);
li.setType(Type.tUInt);
return createNormal
(ca, instr, new IIncOperator
(li, Integer.toString(value),
operation + Operator.OPASSIGN_OP));
(new LocalStoreOperator(Type.tUInt, li),
value, operation + Operator.OPASSIGN_OP));
}
case opc_i2l: case opc_i2f: case opc_i2d:
case opc_l2i: case opc_l2f: case opc_l2d:
@ -304,8 +303,8 @@ public abstract class Opcodes implements jode.bytecode.Opcodes {
case opc_putfield: {
Reference ref = (Reference) instr.objData;
return createNormal
(ca, instr, new PutFieldOperator
(ca, opcode == opc_putstatic, ref));
(ca, instr, new StoreInstruction
(new PutFieldOperator(ca, opcode == opc_putstatic, ref)));
}
case opc_invokevirtual:
case opc_invokespecial:

Loading…
Cancel
Save