diff options
Diffstat (limited to 'src/org/jetbrains/java/decompiler/code/instructions')
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 { + +} |