Add local var table instruction type and make relevant instructions
implement it
This commit is contained in:
@@ -12,12 +12,12 @@
|
|||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
|
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class Deob
|
|||||||
|
|
||||||
//execute(group);
|
//execute(group);
|
||||||
|
|
||||||
JarOutputStream jout = new JarOutputStream(new FileOutputStream("d:/rs/07/adamout.jar"), new Manifest());
|
JarOutputStream jout = new JarOutputStream(new FileOutputStream(args[1]), new Manifest());
|
||||||
|
|
||||||
for (ClassFile cf : group.getClasses())
|
for (ClassFile cf : group.getClasses())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public class Method
|
|||||||
private int nameIndex;
|
private int nameIndex;
|
||||||
private int descriptorIndex;
|
private int descriptorIndex;
|
||||||
private Attributes attributes;
|
private Attributes attributes;
|
||||||
public List<Node> callsTo = new ArrayList<>(),
|
private List<Node> callsTo = new ArrayList<>(),
|
||||||
callsFrom = new ArrayList<>();
|
callsFrom = new ArrayList<>();
|
||||||
|
|
||||||
Method(Methods methods) throws IOException
|
Method(Methods methods) throws IOException
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package info.sigterm.deob.attributes.code.instruction.types;
|
||||||
|
|
||||||
|
public interface LVTInstruction
|
||||||
|
{
|
||||||
|
public int getVariableIndex();
|
||||||
|
public boolean store();
|
||||||
|
}
|
||||||
@@ -1,15 +1,17 @@
|
|||||||
package info.sigterm.deob.attributes.code.instructions;
|
package info.sigterm.deob.attributes.code.instructions;
|
||||||
|
|
||||||
|
import info.sigterm.deob.Method;
|
||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class ALoad extends Instruction
|
public class ALoad extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
private int index;
|
private int index;
|
||||||
|
|
||||||
@@ -35,4 +37,16 @@ public class ALoad extends Instruction
|
|||||||
Object obj = frame.getVariables().get(index);
|
Object obj = frame.getVariables().get(index);
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class ALoad_0 extends Instruction
|
public class ALoad_0 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public ALoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
public ALoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -20,4 +21,16 @@ public class ALoad_0 extends Instruction
|
|||||||
Object obj = frame.getVariables().get(0);
|
Object obj = frame.getVariables().get(0);
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class ALoad_1 extends Instruction
|
public class ALoad_1 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public ALoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
public ALoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -20,4 +21,16 @@ public class ALoad_1 extends Instruction
|
|||||||
Object obj = frame.getVariables().get(1);
|
Object obj = frame.getVariables().get(1);
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class ALoad_2 extends Instruction
|
public class ALoad_2 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public ALoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
public ALoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -20,4 +21,16 @@ public class ALoad_2 extends Instruction
|
|||||||
Object obj = frame.getVariables().get(2);
|
Object obj = frame.getVariables().get(2);
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class ALoad_3 extends Instruction
|
public class ALoad_3 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public ALoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
public ALoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -20,4 +21,16 @@ public class ALoad_3 extends Instruction
|
|||||||
Object obj = frame.getVariables().get(3);
|
Object obj = frame.getVariables().get(3);
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class AStore extends Instruction
|
public class AStore extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
private int index;
|
private int index;
|
||||||
|
|
||||||
@@ -35,4 +36,16 @@ public class AStore extends Instruction
|
|||||||
Object obj = frame.getStack().pop();
|
Object obj = frame.getStack().pop();
|
||||||
frame.getVariables().set(index, obj);
|
frame.getVariables().set(index, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class AStore_0 extends Instruction
|
public class AStore_0 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public AStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
public AStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -20,4 +21,16 @@ public class AStore_0 extends Instruction
|
|||||||
Object obj = frame.getStack().pop();
|
Object obj = frame.getStack().pop();
|
||||||
frame.getVariables().set(0, obj);
|
frame.getVariables().set(0, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class AStore_1 extends Instruction
|
public class AStore_1 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public AStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
public AStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -20,4 +21,16 @@ public class AStore_1 extends Instruction
|
|||||||
Object obj = frame.getStack().pop();
|
Object obj = frame.getStack().pop();
|
||||||
frame.getVariables().set(1, obj);
|
frame.getVariables().set(1, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class AStore_2 extends Instruction
|
public class AStore_2 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public AStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
public AStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -20,4 +21,16 @@ public class AStore_2 extends Instruction
|
|||||||
Object obj = frame.getStack().pop();
|
Object obj = frame.getStack().pop();
|
||||||
frame.getVariables().set(2, obj);
|
frame.getVariables().set(2, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class AStore_3 extends Instruction
|
public class AStore_3 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public AStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
public AStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -20,4 +21,16 @@ public class AStore_3 extends Instruction
|
|||||||
Object obj = frame.getStack().pop();
|
Object obj = frame.getStack().pop();
|
||||||
frame.getVariables().set(3, obj);
|
frame.getVariables().set(3, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class DLoad extends Instruction
|
public class DLoad extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
private int index;
|
private int index;
|
||||||
|
|
||||||
@@ -35,4 +36,16 @@ public class DLoad extends Instruction
|
|||||||
double d = (double) frame.getVariables().get(index);
|
double d = (double) frame.getVariables().get(index);
|
||||||
frame.getStack().push(this, d);
|
frame.getStack().push(this, d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class DLoad_0 extends Instruction
|
public class DLoad_0 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public DLoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
public DLoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class DLoad_0 extends Instruction
|
|||||||
assert obj instanceof Double;
|
assert obj instanceof Double;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class DLoad_1 extends Instruction
|
public class DLoad_1 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public DLoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
public DLoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class DLoad_1 extends Instruction
|
|||||||
assert obj instanceof Double;
|
assert obj instanceof Double;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class DLoad_2 extends Instruction
|
public class DLoad_2 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public DLoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
public DLoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class DLoad_2 extends Instruction
|
|||||||
assert obj instanceof Double;
|
assert obj instanceof Double;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class DLoad_3 extends Instruction
|
public class DLoad_3 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public DLoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
public DLoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class DLoad_3 extends Instruction
|
|||||||
assert obj instanceof Double;
|
assert obj instanceof Double;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class DStore extends Instruction
|
public class DStore extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
private int index;
|
private int index;
|
||||||
|
|
||||||
@@ -35,4 +36,16 @@ public class DStore extends Instruction
|
|||||||
double d = (double) frame.getStack().pop();
|
double d = (double) frame.getStack().pop();
|
||||||
frame.getVariables().set(index, d);
|
frame.getVariables().set(index, d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class DStore_0 extends Instruction
|
public class DStore_0 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public DStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
public DStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class DStore_0 extends Instruction
|
|||||||
assert obj instanceof Double;
|
assert obj instanceof Double;
|
||||||
frame.getVariables().set(0, obj);
|
frame.getVariables().set(0, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class DStore_1 extends Instruction
|
public class DStore_1 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public DStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
public DStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class DStore_1 extends Instruction
|
|||||||
assert obj instanceof Double;
|
assert obj instanceof Double;
|
||||||
frame.getVariables().set(1, obj);
|
frame.getVariables().set(1, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class DStore_2 extends Instruction
|
public class DStore_2 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public DStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
public DStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class DStore_2 extends Instruction
|
|||||||
assert obj instanceof Double;
|
assert obj instanceof Double;
|
||||||
frame.getVariables().set(2, obj);
|
frame.getVariables().set(2, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class DStore_3 extends Instruction
|
public class DStore_3 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public DStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
public DStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class DStore_3 extends Instruction
|
|||||||
assert obj instanceof Double;
|
assert obj instanceof Double;
|
||||||
frame.getVariables().set(3, obj);
|
frame.getVariables().set(3, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class FLoad extends Instruction
|
public class FLoad extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
private int index;
|
private int index;
|
||||||
|
|
||||||
@@ -35,4 +36,16 @@ public class FLoad extends Instruction
|
|||||||
float f = (float) frame.getVariables().get(index);
|
float f = (float) frame.getVariables().get(index);
|
||||||
frame.getStack().push(this, f);
|
frame.getStack().push(this, f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class FLoad_0 extends Instruction
|
public class FLoad_0 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public FLoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
public FLoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class FLoad_0 extends Instruction
|
|||||||
assert obj instanceof Float;
|
assert obj instanceof Float;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class FLoad_1 extends Instruction
|
public class FLoad_1 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public FLoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
public FLoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class FLoad_1 extends Instruction
|
|||||||
assert obj instanceof Float;
|
assert obj instanceof Float;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class FLoad_2 extends Instruction
|
public class FLoad_2 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public FLoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
public FLoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class FLoad_2 extends Instruction
|
|||||||
assert obj instanceof Float;
|
assert obj instanceof Float;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class FLoad_3 extends Instruction
|
public class FLoad_3 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public FLoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
public FLoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class FLoad_3 extends Instruction
|
|||||||
assert obj instanceof Float;
|
assert obj instanceof Float;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class FStore extends Instruction
|
public class FStore extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
private int index;
|
private int index;
|
||||||
|
|
||||||
@@ -35,4 +36,16 @@ public class FStore extends Instruction
|
|||||||
float f = (float) frame.getStack().pop();
|
float f = (float) frame.getStack().pop();
|
||||||
frame.getVariables().set(index, f);
|
frame.getVariables().set(index, f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class FStore_0 extends Instruction
|
public class FStore_0 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public FStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
public FStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class FStore_0 extends Instruction
|
|||||||
assert obj instanceof Float;
|
assert obj instanceof Float;
|
||||||
frame.getVariables().set(0, obj);
|
frame.getVariables().set(0, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class FStore_1 extends Instruction
|
public class FStore_1 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public FStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
public FStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class FStore_1 extends Instruction
|
|||||||
assert obj instanceof Float;
|
assert obj instanceof Float;
|
||||||
frame.getVariables().set(1, obj);
|
frame.getVariables().set(1, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class FStore_2 extends Instruction
|
public class FStore_2 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public FStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
public FStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class FStore_2 extends Instruction
|
|||||||
assert obj instanceof Float;
|
assert obj instanceof Float;
|
||||||
frame.getVariables().set(2, obj);
|
frame.getVariables().set(2, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class FStore_3 extends Instruction
|
public class FStore_3 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public FStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
public FStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class FStore_3 extends Instruction
|
|||||||
assert obj instanceof Float;
|
assert obj instanceof Float;
|
||||||
frame.getVariables().set(3, obj);
|
frame.getVariables().set(3, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class IInc extends Instruction
|
public class IInc extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
private byte index;
|
private byte index;
|
||||||
private byte inc;
|
private byte inc;
|
||||||
@@ -39,4 +40,16 @@ public class IInc extends Instruction
|
|||||||
i += inc;
|
i += inc;
|
||||||
frame.getVariables().set(index, i);
|
frame.getVariables().set(index, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false; // This is a get first
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class ILoad extends Instruction
|
public class ILoad extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
private int index;
|
private int index;
|
||||||
|
|
||||||
@@ -35,4 +36,16 @@ public class ILoad extends Instruction
|
|||||||
Object i = frame.getVariables().get(index);
|
Object i = frame.getVariables().get(index);
|
||||||
frame.getStack().push(this, i);
|
frame.getStack().push(this, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class ILoad_0 extends Instruction
|
public class ILoad_0 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public ILoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
public ILoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class ILoad_0 extends Instruction
|
|||||||
assert obj instanceof Integer;
|
assert obj instanceof Integer;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class ILoad_1 extends Instruction
|
public class ILoad_1 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public ILoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
public ILoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -20,4 +21,16 @@ public class ILoad_1 extends Instruction
|
|||||||
Object obj = frame.getVariables().get(1);
|
Object obj = frame.getVariables().get(1);
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class ILoad_2 extends Instruction
|
public class ILoad_2 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public ILoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
public ILoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class ILoad_2 extends Instruction
|
|||||||
assert obj instanceof Integer;
|
assert obj instanceof Integer;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class ILoad_3 extends Instruction
|
public class ILoad_3 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public ILoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
public ILoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class ILoad_3 extends Instruction
|
|||||||
assert obj instanceof Integer;
|
assert obj instanceof Integer;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class IStore extends Instruction
|
public class IStore extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
private int index;
|
private int index;
|
||||||
|
|
||||||
@@ -35,4 +36,16 @@ public class IStore extends Instruction
|
|||||||
Object obj = frame.getStack().pop();
|
Object obj = frame.getStack().pop();
|
||||||
frame.getVariables().set(index, obj);
|
frame.getVariables().set(index, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class IStore_0 extends Instruction
|
public class IStore_0 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public IStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
public IStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class IStore_0 extends Instruction
|
|||||||
assert obj instanceof Integer;
|
assert obj instanceof Integer;
|
||||||
frame.getVariables().set(0, obj);
|
frame.getVariables().set(0, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class IStore_1 extends Instruction
|
public class IStore_1 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public IStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
public IStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class IStore_1 extends Instruction
|
|||||||
assert obj instanceof Integer;
|
assert obj instanceof Integer;
|
||||||
frame.getVariables().set(1, obj);
|
frame.getVariables().set(1, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class IStore_2 extends Instruction
|
public class IStore_2 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public IStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
public IStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class IStore_2 extends Instruction
|
|||||||
assert obj instanceof Integer;
|
assert obj instanceof Integer;
|
||||||
frame.getVariables().set(2, obj);
|
frame.getVariables().set(2, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class IStore_3 extends Instruction
|
public class IStore_3 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public IStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
public IStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class IStore_3 extends Instruction
|
|||||||
assert obj instanceof Integer;
|
assert obj instanceof Integer;
|
||||||
frame.getVariables().set(3, obj);
|
frame.getVariables().set(3, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class LLoad extends Instruction
|
public class LLoad extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
private int index;
|
private int index;
|
||||||
|
|
||||||
@@ -35,4 +36,16 @@ public class LLoad extends Instruction
|
|||||||
long l = (long) frame.getVariables().get(index);
|
long l = (long) frame.getVariables().get(index);
|
||||||
frame.getStack().push(this, l);
|
frame.getStack().push(this, l);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class LLoad_0 extends Instruction
|
public class LLoad_0 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public LLoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
public LLoad_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class LLoad_0 extends Instruction
|
|||||||
assert obj instanceof Long;
|
assert obj instanceof Long;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class LLoad_1 extends Instruction
|
public class LLoad_1 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public LLoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
public LLoad_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class LLoad_1 extends Instruction
|
|||||||
assert obj instanceof Long;
|
assert obj instanceof Long;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class LLoad_2 extends Instruction
|
public class LLoad_2 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public LLoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
public LLoad_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class LLoad_2 extends Instruction
|
|||||||
assert obj instanceof Long;
|
assert obj instanceof Long;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class LLoad_3 extends Instruction
|
public class LLoad_3 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public LLoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
public LLoad_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class LLoad_3 extends Instruction
|
|||||||
assert obj instanceof Long;
|
assert obj instanceof Long;
|
||||||
frame.getStack().push(this, obj);
|
frame.getStack().push(this, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,13 +3,14 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class LStore extends Instruction
|
public class LStore extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
private int index;
|
private int index;
|
||||||
|
|
||||||
@@ -35,4 +36,16 @@ public class LStore extends Instruction
|
|||||||
long l = (long) frame.getStack().pop();
|
long l = (long) frame.getStack().pop();
|
||||||
frame.getVariables().set(index, l);
|
frame.getVariables().set(index, l);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class LStore_0 extends Instruction
|
public class LStore_0 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public LStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
public LStore_0(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class LStore_0 extends Instruction
|
|||||||
assert obj instanceof Long;
|
assert obj instanceof Long;
|
||||||
frame.getVariables().set(0, obj);
|
frame.getVariables().set(0, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class LStore_1 extends Instruction
|
public class LStore_1 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public LStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
public LStore_1(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class LStore_1 extends Instruction
|
|||||||
assert obj instanceof Long;
|
assert obj instanceof Long;
|
||||||
frame.getVariables().set(1, obj);
|
frame.getVariables().set(1, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class LStore_2 extends Instruction
|
public class LStore_2 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public LStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
public LStore_2(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class LStore_2 extends Instruction
|
|||||||
assert obj instanceof Long;
|
assert obj instanceof Long;
|
||||||
frame.getVariables().set(2, obj);
|
frame.getVariables().set(2, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ package info.sigterm.deob.attributes.code.instructions;
|
|||||||
import info.sigterm.deob.attributes.code.Instruction;
|
import info.sigterm.deob.attributes.code.Instruction;
|
||||||
import info.sigterm.deob.attributes.code.InstructionType;
|
import info.sigterm.deob.attributes.code.InstructionType;
|
||||||
import info.sigterm.deob.attributes.code.Instructions;
|
import info.sigterm.deob.attributes.code.Instructions;
|
||||||
|
import info.sigterm.deob.attributes.code.instruction.types.LVTInstruction;
|
||||||
import info.sigterm.deob.execution.Frame;
|
import info.sigterm.deob.execution.Frame;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class LStore_3 extends Instruction
|
public class LStore_3 extends Instruction implements LVTInstruction
|
||||||
{
|
{
|
||||||
public LStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
public LStore_3(Instructions instructions, InstructionType type, int pc) throws IOException
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,16 @@ public class LStore_3 extends Instruction
|
|||||||
assert obj instanceof Long;
|
assert obj instanceof Long;
|
||||||
frame.getVariables().set(3, obj);
|
frame.getVariables().set(3, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVariableIndex()
|
||||||
|
{
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean store()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user