summaryrefslogtreecommitdiffstats
path: root/src/org/jetbrains/java/decompiler/code/instructions
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/jetbrains/java/decompiler/code/instructions')
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/AALOAD.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/AASTORE.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/ACONST_NULL.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/ALOAD.java43
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/ANEWARRAY.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/ARETURN.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/ARRAYLENGTH.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/ASTORE.java42
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/ATHROW.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/BALOAD.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/BASTORE.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/BIPUSH.java30
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/CALOAD.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/CASTORE.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/CHECKCAST.java20
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/D2F.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/D2I.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/D2L.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DADD.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DALOAD.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DASTORE.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DCMPG.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DCMPL.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DCONST_0.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DCONST_1.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DDIV.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DLOAD.java42
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DMUL.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DNEG.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DREM.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DRETURN.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DSTORE.java41
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DSUB.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DUP.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DUP2.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DUP2_X1.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DUP2_X2.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DUP_X1.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/DUP_X2.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/F2D.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/F2I.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/F2L.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FADD.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FALOAD.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FASTORE.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FCMPG.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FCMPL.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FCONST_0.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FCONST_1.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FCONST_2.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FDIV.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FLOAD.java42
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FMUL.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FNEG.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FREM.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FRETURN.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FSTORE.java41
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/FSUB.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/GETFIELD.java18
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/GETSTATIC.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/GOTO.java30
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/GOTO_W.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/I2B.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/I2C.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/I2D.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/I2F.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/I2L.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/I2S.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IADD.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IALOAD.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IAND.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IASTORE.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IDIV.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IFEQ.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IFGE.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IFGT.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IFLE.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IFLT.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IFNE.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IFNONNULL.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IFNULL.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IF_ACMPEQ.java20
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IF_ACMPNE.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPEQ.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPGE.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPGT.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPLE.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPLT.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPNE.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IINC.java28
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/ILOAD.java38
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IMUL.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/INEG.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/INSTANCEOF.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/INVOKEINTERFACE.java21
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/INVOKESPECIAL.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/INVOKESTATIC.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/INVOKEVIRTUAL.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IOR.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IREM.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IRETURN.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/ISHL.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/ISHR.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/ISTORE.java38
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/ISUB.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IUSHR.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/IXOR.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/JSR.java30
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/JSR_W.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/L2D.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/L2F.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/L2I.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LADD.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LALOAD.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LAND.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LASTORE.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LCMP.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LCONST_0.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LCONST_1.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LDC.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LDC2_W.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LDC_W.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LDIV.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LLOAD.java38
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LMUL.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LNEG.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LOOKUPSWITCH.java28
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LOR.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LREM.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LRETURN.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LSHL.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LSHR.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LSTORE.java38
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LSUB.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LUSHR.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/LXOR.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/MONITORENTER.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/MONITOREXIT.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/MULTIANEWARRAY.java20
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/NEW.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/NEWARRAY.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/NOP.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/POP.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/POP2.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/PUTFIELD.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/PUTSTATIC.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/RET.java26
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/RETURN.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/SALOAD.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/SASTORE.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/SIPUSH.java19
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/SWAP.java7
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/TABLESWITCH.java29
-rw-r--r--src/org/jetbrains/java/decompiler/code/instructions/XXXUNUSEDXXX.java7
154 files changed, 1999 insertions, 0 deletions
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/AALOAD.java b/src/org/jetbrains/java/decompiler/code/instructions/AALOAD.java
new file mode 100644
index 0000000..6e92fe6
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/AALOAD.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class AALOAD extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/AASTORE.java b/src/org/jetbrains/java/decompiler/code/instructions/AASTORE.java
new file mode 100644
index 0000000..09f5c4b
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/AASTORE.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class AASTORE extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/ACONST_NULL.java b/src/org/jetbrains/java/decompiler/code/instructions/ACONST_NULL.java
new file mode 100644
index 0000000..5733d40
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/ACONST_NULL.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class ACONST_NULL extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/ALOAD.java b/src/org/jetbrains/java/decompiler/code/instructions/ALOAD.java
new file mode 100644
index 0000000..a9c9e05
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/ALOAD.java
@@ -0,0 +1,43 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class ALOAD extends Instruction {
+
+ private static int[] opcodes = new int[] {opc_aload_0,opc_aload_1,opc_aload_2,opc_aload_3};
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ out.writeByte(opc_wide);
+ }
+ out.writeByte(opc_aload);
+ if(wide) {
+ out.writeShort(index);
+ } else {
+ out.writeByte(index);
+ }
+ } else {
+ out.writeByte(opcodes[index]);
+ }
+ }
+
+ public int length() {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ return 4;
+ } else {
+ return 2;
+ }
+ } else {
+ return 1;
+ }
+ }
+
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/ANEWARRAY.java b/src/org/jetbrains/java/decompiler/code/instructions/ANEWARRAY.java
new file mode 100644
index 0000000..aa9a6c9
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/ANEWARRAY.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class ANEWARRAY extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_anewarray);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/ARETURN.java b/src/org/jetbrains/java/decompiler/code/instructions/ARETURN.java
new file mode 100644
index 0000000..915a50f
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/ARETURN.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class ARETURN extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/ARRAYLENGTH.java b/src/org/jetbrains/java/decompiler/code/instructions/ARRAYLENGTH.java
new file mode 100644
index 0000000..a54aa41
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/ARRAYLENGTH.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class ARRAYLENGTH extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/ASTORE.java b/src/org/jetbrains/java/decompiler/code/instructions/ASTORE.java
new file mode 100644
index 0000000..701f082
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/ASTORE.java
@@ -0,0 +1,42 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class ASTORE extends Instruction {
+
+ private static int[] opcodes = new int[] {opc_astore_0,opc_astore_1,opc_astore_2,opc_astore_3};
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ out.writeByte(opc_wide);
+ }
+ out.writeByte(opc_astore);
+ if(wide) {
+ out.writeShort(index);
+ } else {
+ out.writeByte(index);
+ }
+ } else {
+ out.writeByte(opcodes[index]);
+ }
+ }
+
+ public int length() {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ return 4;
+ } else {
+ return 2;
+ }
+ } else {
+ return 1;
+ }
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/ATHROW.java b/src/org/jetbrains/java/decompiler/code/instructions/ATHROW.java
new file mode 100644
index 0000000..1ca07c5
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/ATHROW.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class ATHROW extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/BALOAD.java b/src/org/jetbrains/java/decompiler/code/instructions/BALOAD.java
new file mode 100644
index 0000000..c9d9e79
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/BALOAD.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class BALOAD extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/BASTORE.java b/src/org/jetbrains/java/decompiler/code/instructions/BASTORE.java
new file mode 100644
index 0000000..478a887
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/BASTORE.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class BASTORE extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/BIPUSH.java b/src/org/jetbrains/java/decompiler/code/instructions/BIPUSH.java
new file mode 100644
index 0000000..90874c5
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/BIPUSH.java
@@ -0,0 +1,30 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class BIPUSH extends Instruction {
+
+ private static int[] opcodes = new int[] {opc_iconst_m1,opc_iconst_0,opc_iconst_1,opc_iconst_2,opc_iconst_3,opc_iconst_4,opc_iconst_5};
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ int value = getOperand(0);
+ if(value<-1 || value > 5) {
+ out.writeByte(opc_bipush);
+ out.writeByte(value);
+ } else {
+ out.writeByte(opcodes[value+1]);
+ }
+ }
+
+ public int length() {
+ int value = getOperand(0);
+ if(value<-1 || value > 5) {
+ return 2;
+ } else {
+ return 1;
+ }
+ }
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/CALOAD.java b/src/org/jetbrains/java/decompiler/code/instructions/CALOAD.java
new file mode 100644
index 0000000..cf3fb87
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/CALOAD.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class CALOAD extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/CASTORE.java b/src/org/jetbrains/java/decompiler/code/instructions/CASTORE.java
new file mode 100644
index 0000000..2ed21e5
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/CASTORE.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class CASTORE extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/CHECKCAST.java b/src/org/jetbrains/java/decompiler/code/instructions/CHECKCAST.java
new file mode 100644
index 0000000..a3bb57e
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/CHECKCAST.java
@@ -0,0 +1,20 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class CHECKCAST extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_checkcast);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
+
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/D2F.java b/src/org/jetbrains/java/decompiler/code/instructions/D2F.java
new file mode 100644
index 0000000..fd42a2e
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/D2F.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class D2F extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/D2I.java b/src/org/jetbrains/java/decompiler/code/instructions/D2I.java
new file mode 100644
index 0000000..4fc7801
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/D2I.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class D2I extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/D2L.java b/src/org/jetbrains/java/decompiler/code/instructions/D2L.java
new file mode 100644
index 0000000..cc90f1c
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/D2L.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class D2L extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DADD.java b/src/org/jetbrains/java/decompiler/code/instructions/DADD.java
new file mode 100644
index 0000000..ac84423
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DADD.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DADD extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DALOAD.java b/src/org/jetbrains/java/decompiler/code/instructions/DALOAD.java
new file mode 100644
index 0000000..00a0d17
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DALOAD.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DALOAD extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DASTORE.java b/src/org/jetbrains/java/decompiler/code/instructions/DASTORE.java
new file mode 100644
index 0000000..e33959f
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DASTORE.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DASTORE extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DCMPG.java b/src/org/jetbrains/java/decompiler/code/instructions/DCMPG.java
new file mode 100644
index 0000000..2b853ac
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DCMPG.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DCMPG extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DCMPL.java b/src/org/jetbrains/java/decompiler/code/instructions/DCMPL.java
new file mode 100644
index 0000000..7fdba33
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DCMPL.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DCMPL extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DCONST_0.java b/src/org/jetbrains/java/decompiler/code/instructions/DCONST_0.java
new file mode 100644
index 0000000..d0023f2
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DCONST_0.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DCONST_0 extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DCONST_1.java b/src/org/jetbrains/java/decompiler/code/instructions/DCONST_1.java
new file mode 100644
index 0000000..bcd7c67
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DCONST_1.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DCONST_1 extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DDIV.java b/src/org/jetbrains/java/decompiler/code/instructions/DDIV.java
new file mode 100644
index 0000000..40d86a8
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DDIV.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DDIV extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DLOAD.java b/src/org/jetbrains/java/decompiler/code/instructions/DLOAD.java
new file mode 100644
index 0000000..ee098d6
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DLOAD.java
@@ -0,0 +1,42 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DLOAD extends Instruction {
+
+ private static int[] opcodes = new int[] {opc_dload_0,opc_dload_1,opc_dload_2,opc_dload_3};
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ out.writeByte(opc_wide);
+ }
+ out.writeByte(opc_dload);
+ if(wide) {
+ out.writeShort(index);
+ } else {
+ out.writeByte(index);
+ }
+ } else {
+ out.writeByte(opcodes[index]);
+ }
+ }
+
+ public int length() {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ return 4;
+ } else {
+ return 2;
+ }
+ } else {
+ return 1;
+ }
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DMUL.java b/src/org/jetbrains/java/decompiler/code/instructions/DMUL.java
new file mode 100644
index 0000000..65bedca
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DMUL.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DMUL extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DNEG.java b/src/org/jetbrains/java/decompiler/code/instructions/DNEG.java
new file mode 100644
index 0000000..15bd9f3
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DNEG.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DNEG extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DREM.java b/src/org/jetbrains/java/decompiler/code/instructions/DREM.java
new file mode 100644
index 0000000..ab57911
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DREM.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DREM extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DRETURN.java b/src/org/jetbrains/java/decompiler/code/instructions/DRETURN.java
new file mode 100644
index 0000000..0a6e376
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DRETURN.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DRETURN extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DSTORE.java b/src/org/jetbrains/java/decompiler/code/instructions/DSTORE.java
new file mode 100644
index 0000000..fe1feb8
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DSTORE.java
@@ -0,0 +1,41 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DSTORE extends Instruction {
+
+ private static int[] opcodes = new int[] {opc_dstore_0,opc_dstore_1,opc_dstore_2,opc_dstore_3};
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ out.writeByte(opc_wide);
+ }
+ out.writeByte(opc_dstore);
+ if(wide) {
+ out.writeShort(index);
+ } else {
+ out.writeByte(index);
+ }
+ } else {
+ out.writeByte(opcodes[index]);
+ }
+ }
+
+ public int length() {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ return 4;
+ } else {
+ return 2;
+ }
+ } else {
+ return 1;
+ }
+ }
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DSUB.java b/src/org/jetbrains/java/decompiler/code/instructions/DSUB.java
new file mode 100644
index 0000000..d683a63
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DSUB.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DSUB extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DUP.java b/src/org/jetbrains/java/decompiler/code/instructions/DUP.java
new file mode 100644
index 0000000..50119da
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DUP.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DUP extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DUP2.java b/src/org/jetbrains/java/decompiler/code/instructions/DUP2.java
new file mode 100644
index 0000000..3929ee0
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DUP2.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DUP2 extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DUP2_X1.java b/src/org/jetbrains/java/decompiler/code/instructions/DUP2_X1.java
new file mode 100644
index 0000000..ad59230
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DUP2_X1.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DUP2_X1 extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DUP2_X2.java b/src/org/jetbrains/java/decompiler/code/instructions/DUP2_X2.java
new file mode 100644
index 0000000..d27ca93
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DUP2_X2.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DUP2_X2 extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DUP_X1.java b/src/org/jetbrains/java/decompiler/code/instructions/DUP_X1.java
new file mode 100644
index 0000000..9b6b271
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DUP_X1.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DUP_X1 extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/DUP_X2.java b/src/org/jetbrains/java/decompiler/code/instructions/DUP_X2.java
new file mode 100644
index 0000000..8c4b03e
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/DUP_X2.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class DUP_X2 extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/F2D.java b/src/org/jetbrains/java/decompiler/code/instructions/F2D.java
new file mode 100644
index 0000000..debb8de
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/F2D.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class F2D extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/F2I.java b/src/org/jetbrains/java/decompiler/code/instructions/F2I.java
new file mode 100644
index 0000000..bbda5c8
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/F2I.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class F2I extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/F2L.java b/src/org/jetbrains/java/decompiler/code/instructions/F2L.java
new file mode 100644
index 0000000..a58a398
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/F2L.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class F2L extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FADD.java b/src/org/jetbrains/java/decompiler/code/instructions/FADD.java
new file mode 100644
index 0000000..ab7a357
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FADD.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FADD extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FALOAD.java b/src/org/jetbrains/java/decompiler/code/instructions/FALOAD.java
new file mode 100644
index 0000000..cc56e21
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FALOAD.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FALOAD extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FASTORE.java b/src/org/jetbrains/java/decompiler/code/instructions/FASTORE.java
new file mode 100644
index 0000000..d18a2ef
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FASTORE.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FASTORE extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FCMPG.java b/src/org/jetbrains/java/decompiler/code/instructions/FCMPG.java
new file mode 100644
index 0000000..a86b2a9
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FCMPG.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FCMPG extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FCMPL.java b/src/org/jetbrains/java/decompiler/code/instructions/FCMPL.java
new file mode 100644
index 0000000..450546c
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FCMPL.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FCMPL extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FCONST_0.java b/src/org/jetbrains/java/decompiler/code/instructions/FCONST_0.java
new file mode 100644
index 0000000..77f4e84
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FCONST_0.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FCONST_0 extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FCONST_1.java b/src/org/jetbrains/java/decompiler/code/instructions/FCONST_1.java
new file mode 100644
index 0000000..e90fd44
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FCONST_1.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FCONST_1 extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FCONST_2.java b/src/org/jetbrains/java/decompiler/code/instructions/FCONST_2.java
new file mode 100644
index 0000000..7736565
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FCONST_2.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FCONST_2 extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FDIV.java b/src/org/jetbrains/java/decompiler/code/instructions/FDIV.java
new file mode 100644
index 0000000..0524b01
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FDIV.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FDIV extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FLOAD.java b/src/org/jetbrains/java/decompiler/code/instructions/FLOAD.java
new file mode 100644
index 0000000..03ba1d2
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FLOAD.java
@@ -0,0 +1,42 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FLOAD extends Instruction {
+
+ private static int[] opcodes = new int[] {opc_fload_0,opc_fload_1,opc_fload_2,opc_fload_3};
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ out.writeByte(opc_wide);
+ }
+ out.writeByte(opc_fload);
+ if(wide) {
+ out.writeShort(index);
+ } else {
+ out.writeByte(index);
+ }
+ } else {
+ out.writeByte(opcodes[index]);
+ }
+ }
+
+ public int length() {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ return 4;
+ } else {
+ return 2;
+ }
+ } else {
+ return 1;
+ }
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FMUL.java b/src/org/jetbrains/java/decompiler/code/instructions/FMUL.java
new file mode 100644
index 0000000..598145b
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FMUL.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FMUL extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FNEG.java b/src/org/jetbrains/java/decompiler/code/instructions/FNEG.java
new file mode 100644
index 0000000..b1d96ea
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FNEG.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FNEG extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FREM.java b/src/org/jetbrains/java/decompiler/code/instructions/FREM.java
new file mode 100644
index 0000000..b8dc0fe
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FREM.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FREM extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FRETURN.java b/src/org/jetbrains/java/decompiler/code/instructions/FRETURN.java
new file mode 100644
index 0000000..3781401
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FRETURN.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FRETURN extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FSTORE.java b/src/org/jetbrains/java/decompiler/code/instructions/FSTORE.java
new file mode 100644
index 0000000..203588b
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FSTORE.java
@@ -0,0 +1,41 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FSTORE extends Instruction {
+
+ private static int[] opcodes = new int[] {opc_fstore_0,opc_fstore_1,opc_fstore_2,opc_fstore_3};
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ out.writeByte(opc_wide);
+ }
+ out.writeByte(opc_fstore);
+ if(wide) {
+ out.writeShort(index);
+ } else {
+ out.writeByte(index);
+ }
+ } else {
+ out.writeByte(opcodes[index]);
+ }
+ }
+
+ public int length() {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ return 4;
+ } else {
+ return 2;
+ }
+ } else {
+ return 1;
+ }
+ }
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/FSUB.java b/src/org/jetbrains/java/decompiler/code/instructions/FSUB.java
new file mode 100644
index 0000000..841ee0d
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/FSUB.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class FSUB extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/GETFIELD.java b/src/org/jetbrains/java/decompiler/code/instructions/GETFIELD.java
new file mode 100644
index 0000000..8500f46
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/GETFIELD.java
@@ -0,0 +1,18 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class GETFIELD extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_getfield);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/GETSTATIC.java b/src/org/jetbrains/java/decompiler/code/instructions/GETSTATIC.java
new file mode 100644
index 0000000..761624f
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/GETSTATIC.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class GETSTATIC extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_getstatic);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/GOTO.java b/src/org/jetbrains/java/decompiler/code/instructions/GOTO.java
new file mode 100644
index 0000000..91f5081
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/GOTO.java
@@ -0,0 +1,30 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class GOTO extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ int operand = getOperand(0);
+ if(operand < -32768 || operand > 32767) {
+ out.writeByte(opc_goto_w);
+ out.writeInt(operand);
+ } else {
+ out.writeByte(opc_goto);
+ out.writeShort(operand);
+ }
+ }
+
+ public int length() {
+ int operand = getOperand(0);
+ if(operand < -32768 || operand > 32767) {
+ return 5;
+ } else {
+ return 3;
+ }
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/GOTO_W.java b/src/org/jetbrains/java/decompiler/code/instructions/GOTO_W.java
new file mode 100644
index 0000000..830b766
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/GOTO_W.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class GOTO_W extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_goto_w);
+ out.writeInt(getOperand(0));
+ }
+
+ public int length() {
+ return 5;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/I2B.java b/src/org/jetbrains/java/decompiler/code/instructions/I2B.java
new file mode 100644
index 0000000..f5a3fbd
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/I2B.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class I2B extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/I2C.java b/src/org/jetbrains/java/decompiler/code/instructions/I2C.java
new file mode 100644
index 0000000..a180a64
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/I2C.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class I2C extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/I2D.java b/src/org/jetbrains/java/decompiler/code/instructions/I2D.java
new file mode 100644
index 0000000..b0bad9a
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/I2D.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class I2D extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/I2F.java b/src/org/jetbrains/java/decompiler/code/instructions/I2F.java
new file mode 100644
index 0000000..ca1a0fb
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/I2F.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class I2F extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/I2L.java b/src/org/jetbrains/java/decompiler/code/instructions/I2L.java
new file mode 100644
index 0000000..24bca4e
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/I2L.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class I2L extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/I2S.java b/src/org/jetbrains/java/decompiler/code/instructions/I2S.java
new file mode 100644
index 0000000..370ae2f
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/I2S.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class I2S extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IADD.java b/src/org/jetbrains/java/decompiler/code/instructions/IADD.java
new file mode 100644
index 0000000..f427c40
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IADD.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class IADD extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IALOAD.java b/src/org/jetbrains/java/decompiler/code/instructions/IALOAD.java
new file mode 100644
index 0000000..d70fae6
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IALOAD.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class IALOAD extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IAND.java b/src/org/jetbrains/java/decompiler/code/instructions/IAND.java
new file mode 100644
index 0000000..00ae7a6
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IAND.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class IAND extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IASTORE.java b/src/org/jetbrains/java/decompiler/code/instructions/IASTORE.java
new file mode 100644
index 0000000..78a1d28
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IASTORE.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class IASTORE extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IDIV.java b/src/org/jetbrains/java/decompiler/code/instructions/IDIV.java
new file mode 100644
index 0000000..bec8cc9
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IDIV.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class IDIV extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IFEQ.java b/src/org/jetbrains/java/decompiler/code/instructions/IFEQ.java
new file mode 100644
index 0000000..47711d8
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IFEQ.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IFEQ extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_ifeq);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IFGE.java b/src/org/jetbrains/java/decompiler/code/instructions/IFGE.java
new file mode 100644
index 0000000..9cfaba4
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IFGE.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IFGE extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_ifge);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IFGT.java b/src/org/jetbrains/java/decompiler/code/instructions/IFGT.java
new file mode 100644
index 0000000..99b171e
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IFGT.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IFGT extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_ifgt);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IFLE.java b/src/org/jetbrains/java/decompiler/code/instructions/IFLE.java
new file mode 100644
index 0000000..b21b2cf
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IFLE.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IFLE extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_ifle);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IFLT.java b/src/org/jetbrains/java/decompiler/code/instructions/IFLT.java
new file mode 100644
index 0000000..66ba02b
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IFLT.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IFLT extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_iflt);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IFNE.java b/src/org/jetbrains/java/decompiler/code/instructions/IFNE.java
new file mode 100644
index 0000000..983fea2
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IFNE.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IFNE extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_ifne);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IFNONNULL.java b/src/org/jetbrains/java/decompiler/code/instructions/IFNONNULL.java
new file mode 100644
index 0000000..2555a80
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IFNONNULL.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IFNONNULL extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_ifnonnull);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IFNULL.java b/src/org/jetbrains/java/decompiler/code/instructions/IFNULL.java
new file mode 100644
index 0000000..b695787
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IFNULL.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IFNULL extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_ifnull);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IF_ACMPEQ.java b/src/org/jetbrains/java/decompiler/code/instructions/IF_ACMPEQ.java
new file mode 100644
index 0000000..30e530b
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IF_ACMPEQ.java
@@ -0,0 +1,20 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IF_ACMPEQ extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_if_acmpeq);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
+
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IF_ACMPNE.java b/src/org/jetbrains/java/decompiler/code/instructions/IF_ACMPNE.java
new file mode 100644
index 0000000..ccb513f
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IF_ACMPNE.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IF_ACMPNE extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_if_acmpne);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPEQ.java b/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPEQ.java
new file mode 100644
index 0000000..1343aca
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPEQ.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IF_ICMPEQ extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_if_icmpeq);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPGE.java b/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPGE.java
new file mode 100644
index 0000000..beeabec
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPGE.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IF_ICMPGE extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_if_icmpge);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPGT.java b/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPGT.java
new file mode 100644
index 0000000..e41d261
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPGT.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IF_ICMPGT extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_if_icmpgt);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPLE.java b/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPLE.java
new file mode 100644
index 0000000..c9288da
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPLE.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IF_ICMPLE extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_if_icmple);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPLT.java b/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPLT.java
new file mode 100644
index 0000000..107519e
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPLT.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IF_ICMPLT extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_if_icmplt);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPNE.java b/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPNE.java
new file mode 100644
index 0000000..703c10c
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IF_ICMPNE.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class IF_ICMPNE extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_if_icmpne);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IINC.java b/src/org/jetbrains/java/decompiler/code/instructions/IINC.java
new file mode 100644
index 0000000..763a192
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IINC.java
@@ -0,0 +1,28 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class IINC extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ if(wide) {
+ out.writeByte(opc_wide);
+ }
+ out.writeByte(opc_iinc);
+ if(wide) {
+ out.writeShort(getOperand(0));
+ out.writeShort(getOperand(1));
+ } else {
+ out.writeByte(getOperand(0));
+ out.writeByte(getOperand(1));
+ }
+ }
+
+ public int length() {
+ return wide?6:3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/ILOAD.java b/src/org/jetbrains/java/decompiler/code/instructions/ILOAD.java
new file mode 100644
index 0000000..4b9bd59
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/ILOAD.java
@@ -0,0 +1,38 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class ILOAD extends Instruction {
+
+ private static int[] opcodes = new int[] {opc_iload_0,opc_iload_1,opc_iload_2,opc_iload_3};
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ out.writeByte(opc_wide);
+ }
+ out.writeByte(opc_iload);
+ if(wide) {
+ out.writeShort(index);
+ } else {
+ out.writeByte(index);
+ }
+ } else {
+ out.writeByte(opcodes[index]);
+ }
+ }
+
+ public int length() {
+ int index = getOperand(0);
+ if(index>3) {
+ return wide?4:2;
+ } else {
+ return 1;
+ }
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IMUL.java b/src/org/jetbrains/java/decompiler/code/instructions/IMUL.java
new file mode 100644
index 0000000..64dd4cc
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IMUL.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class IMUL extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/INEG.java b/src/org/jetbrains/java/decompiler/code/instructions/INEG.java
new file mode 100644
index 0000000..cf341e7
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/INEG.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class INEG extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/INSTANCEOF.java b/src/org/jetbrains/java/decompiler/code/instructions/INSTANCEOF.java
new file mode 100644
index 0000000..a4214ec
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/INSTANCEOF.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class INSTANCEOF extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_instanceof);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/INVOKEINTERFACE.java b/src/org/jetbrains/java/decompiler/code/instructions/INVOKEINTERFACE.java
new file mode 100644
index 0000000..bd1ce37
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/INVOKEINTERFACE.java
@@ -0,0 +1,21 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class INVOKEINTERFACE extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_invokeinterface);
+ out.writeShort(getOperand(0));
+ out.writeByte(getOperand(1));
+ out.writeByte(0);
+ }
+
+ public int length() {
+ return 5;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/INVOKESPECIAL.java b/src/org/jetbrains/java/decompiler/code/instructions/INVOKESPECIAL.java
new file mode 100644
index 0000000..d14a8ee
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/INVOKESPECIAL.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class INVOKESPECIAL extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_invokespecial);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/INVOKESTATIC.java b/src/org/jetbrains/java/decompiler/code/instructions/INVOKESTATIC.java
new file mode 100644
index 0000000..8ef9f26
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/INVOKESTATIC.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class INVOKESTATIC extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_invokestatic);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/INVOKEVIRTUAL.java b/src/org/jetbrains/java/decompiler/code/instructions/INVOKEVIRTUAL.java
new file mode 100644
index 0000000..687c6e4
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/INVOKEVIRTUAL.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class INVOKEVIRTUAL extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_invokevirtual);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IOR.java b/src/org/jetbrains/java/decompiler/code/instructions/IOR.java
new file mode 100644
index 0000000..b3e6bae
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IOR.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class IOR extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IREM.java b/src/org/jetbrains/java/decompiler/code/instructions/IREM.java
new file mode 100644
index 0000000..db1fbb8
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IREM.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class IREM extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IRETURN.java b/src/org/jetbrains/java/decompiler/code/instructions/IRETURN.java
new file mode 100644
index 0000000..2a2e48c
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IRETURN.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class IRETURN extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/ISHL.java b/src/org/jetbrains/java/decompiler/code/instructions/ISHL.java
new file mode 100644
index 0000000..5e0b1e0
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/ISHL.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class ISHL extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/ISHR.java b/src/org/jetbrains/java/decompiler/code/instructions/ISHR.java
new file mode 100644
index 0000000..9a8c182
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/ISHR.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class ISHR extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/ISTORE.java b/src/org/jetbrains/java/decompiler/code/instructions/ISTORE.java
new file mode 100644
index 0000000..7bc1647
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/ISTORE.java
@@ -0,0 +1,38 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class ISTORE extends Instruction {
+
+ private static int[] opcodes = new int[] {opc_istore_0,opc_istore_1,opc_istore_2,opc_istore_3};
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ out.writeByte(opc_wide);
+ }
+ out.writeByte(opc_istore);
+ if(wide) {
+ out.writeShort(index);
+ } else {
+ out.writeByte(index);
+ }
+ } else {
+ out.writeByte(opcodes[index]);
+ }
+ }
+
+ public int length() {
+ int index = getOperand(0);
+ if(index>3) {
+ return wide?4:2;
+ } else {
+ return 1;
+ }
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/ISUB.java b/src/org/jetbrains/java/decompiler/code/instructions/ISUB.java
new file mode 100644
index 0000000..3007c8a
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/ISUB.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class ISUB extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IUSHR.java b/src/org/jetbrains/java/decompiler/code/instructions/IUSHR.java
new file mode 100644
index 0000000..3171c1a
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IUSHR.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class IUSHR extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/IXOR.java b/src/org/jetbrains/java/decompiler/code/instructions/IXOR.java
new file mode 100644
index 0000000..f6568d2
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/IXOR.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class IXOR extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/JSR.java b/src/org/jetbrains/java/decompiler/code/instructions/JSR.java
new file mode 100644
index 0000000..bb23f66
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/JSR.java
@@ -0,0 +1,30 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class JSR extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ int operand = getOperand(0);
+ if(operand < -32768 || operand > 32767) {
+ out.writeByte(opc_jsr_w);
+ out.writeInt(operand);
+ } else {
+ out.writeByte(opc_jsr);
+ out.writeShort(operand);
+ }
+ }
+
+ public int length() {
+ int operand = getOperand(0);
+ if(operand < -32768 || operand > 32767) {
+ return 5;
+ } else {
+ return 3;
+ }
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/JSR_W.java b/src/org/jetbrains/java/decompiler/code/instructions/JSR_W.java
new file mode 100644
index 0000000..47af3e6
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/JSR_W.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.JumpInstruction;
+
+public class JSR_W extends JumpInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_jsr_w);
+ out.writeInt(getOperand(0));
+ }
+
+ public int length() {
+ return 5;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/L2D.java b/src/org/jetbrains/java/decompiler/code/instructions/L2D.java
new file mode 100644
index 0000000..59178d2
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/L2D.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class L2D extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/L2F.java b/src/org/jetbrains/java/decompiler/code/instructions/L2F.java
new file mode 100644
index 0000000..37932b6
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/L2F.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class L2F extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/L2I.java b/src/org/jetbrains/java/decompiler/code/instructions/L2I.java
new file mode 100644
index 0000000..c197282
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/L2I.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class L2I extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LADD.java b/src/org/jetbrains/java/decompiler/code/instructions/LADD.java
new file mode 100644
index 0000000..8c5625c
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LADD.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LADD extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LALOAD.java b/src/org/jetbrains/java/decompiler/code/instructions/LALOAD.java
new file mode 100644
index 0000000..3590f94
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LALOAD.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LALOAD extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LAND.java b/src/org/jetbrains/java/decompiler/code/instructions/LAND.java
new file mode 100644
index 0000000..46a396c
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LAND.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LAND extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LASTORE.java b/src/org/jetbrains/java/decompiler/code/instructions/LASTORE.java
new file mode 100644
index 0000000..107af51
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LASTORE.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LASTORE extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LCMP.java b/src/org/jetbrains/java/decompiler/code/instructions/LCMP.java
new file mode 100644
index 0000000..8a9dac5
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LCMP.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LCMP extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LCONST_0.java b/src/org/jetbrains/java/decompiler/code/instructions/LCONST_0.java
new file mode 100644
index 0000000..5617fbe
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LCONST_0.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LCONST_0 extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LCONST_1.java b/src/org/jetbrains/java/decompiler/code/instructions/LCONST_1.java
new file mode 100644
index 0000000..8244407
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LCONST_1.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LCONST_1 extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LDC.java b/src/org/jetbrains/java/decompiler/code/instructions/LDC.java
new file mode 100644
index 0000000..088e5a5
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LDC.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LDC extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_ldc);
+ out.writeByte(getOperand(0));
+ }
+
+ public int length() {
+ return 2;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LDC2_W.java b/src/org/jetbrains/java/decompiler/code/instructions/LDC2_W.java
new file mode 100644
index 0000000..9b67a7e
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LDC2_W.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LDC2_W extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_ldc2_w);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LDC_W.java b/src/org/jetbrains/java/decompiler/code/instructions/LDC_W.java
new file mode 100644
index 0000000..290462e
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LDC_W.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LDC_W extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_ldc_w);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LDIV.java b/src/org/jetbrains/java/decompiler/code/instructions/LDIV.java
new file mode 100644
index 0000000..36b09ca
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LDIV.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LDIV extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LLOAD.java b/src/org/jetbrains/java/decompiler/code/instructions/LLOAD.java
new file mode 100644
index 0000000..0cf9695
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LLOAD.java
@@ -0,0 +1,38 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LLOAD extends Instruction {
+
+ private static int[] opcodes = new int[] {opc_lload_0,opc_lload_1,opc_lload_2,opc_lload_3};
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ out.writeByte(opc_wide);
+ }
+ out.writeByte(opc_lload);
+ if(wide) {
+ out.writeShort(index);
+ } else {
+ out.writeByte(index);
+ }
+ } else {
+ out.writeByte(opcodes[index]);
+ }
+ }
+
+ public int length() {
+ int index = getOperand(0);
+ if(index>3) {
+ return wide?4:2;
+ } else {
+ return 1;
+ }
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LMUL.java b/src/org/jetbrains/java/decompiler/code/instructions/LMUL.java
new file mode 100644
index 0000000..075c50b
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LMUL.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LMUL extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LNEG.java b/src/org/jetbrains/java/decompiler/code/instructions/LNEG.java
new file mode 100644
index 0000000..b2c9f10
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LNEG.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LNEG extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LOOKUPSWITCH.java b/src/org/jetbrains/java/decompiler/code/instructions/LOOKUPSWITCH.java
new file mode 100644
index 0000000..dbe5f03
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LOOKUPSWITCH.java
@@ -0,0 +1,28 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.SwitchInstruction;
+
+public class LOOKUPSWITCH extends SwitchInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+
+ out.writeByte(opc_lookupswitch);
+
+ int padding = 3 - (offset%4);
+ for(int i=0;i<padding;i++){
+ out.writeByte(0);
+ }
+
+ for(int i=0;i<operandsCount();i++) {
+ out.writeInt(getOperand(i));
+ }
+ }
+
+ public int length() {
+ return 1+operandsCount()*4;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LOR.java b/src/org/jetbrains/java/decompiler/code/instructions/LOR.java
new file mode 100644
index 0000000..55921d4
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LOR.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LOR extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LREM.java b/src/org/jetbrains/java/decompiler/code/instructions/LREM.java
new file mode 100644
index 0000000..cd5073b
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LREM.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LREM extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LRETURN.java b/src/org/jetbrains/java/decompiler/code/instructions/LRETURN.java
new file mode 100644
index 0000000..e7dea00
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LRETURN.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LRETURN extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LSHL.java b/src/org/jetbrains/java/decompiler/code/instructions/LSHL.java
new file mode 100644
index 0000000..206f91a
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LSHL.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LSHL extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LSHR.java b/src/org/jetbrains/java/decompiler/code/instructions/LSHR.java
new file mode 100644
index 0000000..b4276ad
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LSHR.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LSHR extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LSTORE.java b/src/org/jetbrains/java/decompiler/code/instructions/LSTORE.java
new file mode 100644
index 0000000..1f5dfea
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LSTORE.java
@@ -0,0 +1,38 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LSTORE extends Instruction {
+
+ private static int[] opcodes = new int[] {opc_lstore_0,opc_lstore_1,opc_lstore_2,opc_lstore_3};
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ int index = getOperand(0);
+ if(index>3) {
+ if(wide) {
+ out.writeByte(opc_wide);
+ }
+ out.writeByte(opc_lstore);
+ if(wide) {
+ out.writeShort(index);
+ } else {
+ out.writeByte(index);
+ }
+ } else {
+ out.writeByte(opcodes[index]);
+ }
+ }
+
+ public int length() {
+ int index = getOperand(0);
+ if(index>3) {
+ return wide?4:2;
+ } else {
+ return 1;
+ }
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LSUB.java b/src/org/jetbrains/java/decompiler/code/instructions/LSUB.java
new file mode 100644
index 0000000..14b019f
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LSUB.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LSUB extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LUSHR.java b/src/org/jetbrains/java/decompiler/code/instructions/LUSHR.java
new file mode 100644
index 0000000..63d5ca4
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LUSHR.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LUSHR extends Instruction {
+
+} \ No newline at end of file
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/LXOR.java b/src/org/jetbrains/java/decompiler/code/instructions/LXOR.java
new file mode 100644
index 0000000..9812a1a
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/LXOR.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class LXOR extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/MONITORENTER.java b/src/org/jetbrains/java/decompiler/code/instructions/MONITORENTER.java
new file mode 100644
index 0000000..d2ed979
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/MONITORENTER.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class MONITORENTER extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/MONITOREXIT.java b/src/org/jetbrains/java/decompiler/code/instructions/MONITOREXIT.java
new file mode 100644
index 0000000..f1324be
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/MONITOREXIT.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class MONITOREXIT extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/MULTIANEWARRAY.java b/src/org/jetbrains/java/decompiler/code/instructions/MULTIANEWARRAY.java
new file mode 100644
index 0000000..313b708
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/MULTIANEWARRAY.java
@@ -0,0 +1,20 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class MULTIANEWARRAY extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_multianewarray);
+ out.writeShort(getOperand(0));
+ out.writeByte(getOperand(1));
+ }
+
+ public int length() {
+ return 4;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/NEW.java b/src/org/jetbrains/java/decompiler/code/instructions/NEW.java
new file mode 100644
index 0000000..8c5ab34
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/NEW.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class NEW extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_new);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/NEWARRAY.java b/src/org/jetbrains/java/decompiler/code/instructions/NEWARRAY.java
new file mode 100644
index 0000000..eb25456
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/NEWARRAY.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class NEWARRAY extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_newarray);
+ out.writeByte(getOperand(0));
+ }
+
+ public int length() {
+ return 2;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/NOP.java b/src/org/jetbrains/java/decompiler/code/instructions/NOP.java
new file mode 100644
index 0000000..ef11da8
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/NOP.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class NOP extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/POP.java b/src/org/jetbrains/java/decompiler/code/instructions/POP.java
new file mode 100644
index 0000000..8848163
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/POP.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class POP extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/POP2.java b/src/org/jetbrains/java/decompiler/code/instructions/POP2.java
new file mode 100644
index 0000000..f07d5d5
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/POP2.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class POP2 extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/PUTFIELD.java b/src/org/jetbrains/java/decompiler/code/instructions/PUTFIELD.java
new file mode 100644
index 0000000..b37efb0
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/PUTFIELD.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class PUTFIELD extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_putfield);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/PUTSTATIC.java b/src/org/jetbrains/java/decompiler/code/instructions/PUTSTATIC.java
new file mode 100644
index 0000000..260e57c
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/PUTSTATIC.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class PUTSTATIC extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_putstatic);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/RET.java b/src/org/jetbrains/java/decompiler/code/instructions/RET.java
new file mode 100644
index 0000000..490ad8c
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/RET.java
@@ -0,0 +1,26 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class RET extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ if(wide) {
+ out.writeByte(opc_wide);
+ }
+ out.writeByte(opc_ret);
+ if(wide) {
+ out.writeShort(getOperand(0));
+ } else {
+ out.writeByte(getOperand(0));
+ }
+ }
+
+ public int length() {
+ return wide?4:2;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/RETURN.java b/src/org/jetbrains/java/decompiler/code/instructions/RETURN.java
new file mode 100644
index 0000000..cbdcbfc
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/RETURN.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class RETURN extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/SALOAD.java b/src/org/jetbrains/java/decompiler/code/instructions/SALOAD.java
new file mode 100644
index 0000000..c9da26e
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/SALOAD.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class SALOAD extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/SASTORE.java b/src/org/jetbrains/java/decompiler/code/instructions/SASTORE.java
new file mode 100644
index 0000000..4a90aac
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/SASTORE.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class SASTORE extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/SIPUSH.java b/src/org/jetbrains/java/decompiler/code/instructions/SIPUSH.java
new file mode 100644
index 0000000..a5f7025
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/SIPUSH.java
@@ -0,0 +1,19 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class SIPUSH extends Instruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+ out.writeByte(opc_sipush);
+ out.writeShort(getOperand(0));
+ }
+
+ public int length() {
+ return 3;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/SWAP.java b/src/org/jetbrains/java/decompiler/code/instructions/SWAP.java
new file mode 100644
index 0000000..9fd99b3
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/SWAP.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class SWAP extends Instruction {
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/TABLESWITCH.java b/src/org/jetbrains/java/decompiler/code/instructions/TABLESWITCH.java
new file mode 100644
index 0000000..4a4be0a
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/TABLESWITCH.java
@@ -0,0 +1,29 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import org.jetbrains.java.decompiler.code.SwitchInstruction;
+
+public class TABLESWITCH extends SwitchInstruction {
+
+ public void writeToStream(DataOutputStream out, int offset) throws IOException {
+
+ out.writeByte(opc_tableswitch);
+
+ int padding = 3 - (offset%4);
+ for(int i=0;i<padding;i++){
+ out.writeByte(0);
+ }
+
+ for(int i=0;i<operandsCount();i++) {
+ out.writeInt(getOperand(i));
+ }
+
+ }
+
+ public int length() {
+ return 1+operandsCount()*4;
+ }
+
+}
diff --git a/src/org/jetbrains/java/decompiler/code/instructions/XXXUNUSEDXXX.java b/src/org/jetbrains/java/decompiler/code/instructions/XXXUNUSEDXXX.java
new file mode 100644
index 0000000..2907258
--- /dev/null
+++ b/src/org/jetbrains/java/decompiler/code/instructions/XXXUNUSEDXXX.java
@@ -0,0 +1,7 @@
+package org.jetbrains.java.decompiler.code.instructions;
+
+import org.jetbrains.java.decompiler.code.Instruction;
+
+public class XXXUNUSEDXXX extends Instruction {
+
+}