package com.zarbosoft.semicompiled; class Main { public static void myMain() { float x; x = 0; x = 1; x = 2; x = 3; x = 4; x = 5; x = 6; x = 7; x = 8; x = 9; x = 10; x = -1; x = -2; x = -3; x = -4; x = -5; x = -6; x = -7; x = -8; x = -9; x = -10; ; } }
Classfile /tmp/semicompiled-4IeGaY2q-03r350PB-14406254155953918969/com/zarbosoft/semicompiled/Main.class Last modified Jun 2, 2024; size 332 bytes MD5 checksum 8a2ac1caeee069ced9c3b13e739ddbfb class com.zarbosoft.semicompiled.Main minor version: 0 major version: 52 flags: (0x0020) ACC_SUPER this_class: #20 // com/zarbosoft/semicompiled/Main super_class: #21 // java/lang/Object interfaces: 0, fields: 0, methods: 2, attributes: 0 Constant pool: #1 = Methodref #21.#26 // java/lang/Object."<init>":()V #2 = Float 3.0f #3 = Float 4.0f #4 = Float 5.0f #5 = Float 6.0f #6 = Float 7.0f #7 = Float 8.0f #8 = Float 9.0f #9 = Float 10.0f #10 = Float -1.0f #11 = Float -2.0f #12 = Float -3.0f #13 = Float -4.0f #14 = Float -5.0f #15 = Float -6.0f #16 = Float -7.0f #17 = Float -8.0f #18 = Float -9.0f #19 = Float -10.0f #20 = Class #27 // com/zarbosoft/semicompiled/Main #21 = Class #28 // java/lang/Object #22 = Utf8 <init> #23 = Utf8 ()V #24 = Utf8 Code #25 = Utf8 myMain #26 = NameAndType #22:#23 // "<init>":()V #27 = Utf8 com/zarbosoft/semicompiled/Main #28 = Utf8 java/lang/Object { com.zarbosoft.semicompiled.Main(); descriptor: ()V flags: (0x0000) Code: stack=1, locals=1, args_size=1 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return public static void myMain(); descriptor: ()V flags: (0x0009) ACC_PUBLIC, ACC_STATIC Code: stack=1, locals=1, args_size=0 0: fconst_0 1: fstore_0 2: fconst_1 3: fstore_0 4: fconst_2 5: fstore_0 6: ldc #2 // float 3.0f 8: fstore_0 9: ldc #3 // float 4.0f 11: fstore_0 12: ldc #4 // float 5.0f 14: fstore_0 15: ldc #5 // float 6.0f 17: fstore_0 18: ldc #6 // float 7.0f 20: fstore_0 21: ldc #7 // float 8.0f 23: fstore_0 24: ldc #8 // float 9.0f 26: fstore_0 27: ldc #9 // float 10.0f 29: fstore_0 30: ldc #10 // float -1.0f 32: fstore_0 33: ldc #11 // float -2.0f 35: fstore_0 36: ldc #12 // float -3.0f 38: fstore_0 39: ldc #13 // float -4.0f 41: fstore_0 42: ldc #14 // float -5.0f 44: fstore_0 45: ldc #15 // float -6.0f 47: fstore_0 48: ldc #16 // float -7.0f 50: fstore_0 51: ldc #17 // float -8.0f 53: fstore_0 54: ldc #18 // float -9.0f 56: fstore_0 57: ldc #19 // float -10.0f 59: fstore_0 60: return }
package asm.com.zarbosoft.semicompiled; import org.objectweb.asm.AnnotationVisitor; import org.objectweb.asm.Attribute; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassWriter; import org.objectweb.asm.ConstantDynamic; import org.objectweb.asm.FieldVisitor; import org.objectweb.asm.Handle; import org.objectweb.asm.Label; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; import org.objectweb.asm.RecordComponentVisitor; import org.objectweb.asm.Type; import org.objectweb.asm.TypePath; public class MainDump implements Opcodes { public static byte[] dump() throws Exception { ClassWriter classWriter = new ClassWriter(0); FieldVisitor fieldVisitor; RecordComponentVisitor recordComponentVisitor; MethodVisitor methodVisitor; AnnotationVisitor annotationVisitor0; classWriter.visit( V1_8, ACC_SUPER, "com/zarbosoft/semicompiled/Main", null, "java/lang/Object", null); { methodVisitor = classWriter.visitMethod(0, "<init>", "()V", null, null); methodVisitor.visitCode(); methodVisitor.visitVarInsn(ALOAD, 0); methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false); methodVisitor.visitInsn(RETURN); methodVisitor.visitMaxs(1, 1); methodVisitor.visitEnd(); } { methodVisitor = classWriter.visitMethod(ACC_PUBLIC | ACC_STATIC, "myMain", "()V", null, null); methodVisitor.visitCode(); methodVisitor.visitInsn(FCONST_0); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitInsn(FCONST_1); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitInsn(FCONST_2); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("3.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("4.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("5.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("6.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("7.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("8.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("9.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("10.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-1.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-2.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-3.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-4.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-5.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-6.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-7.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-8.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-9.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-10.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitInsn(RETURN); methodVisitor.visitMaxs(1, 1); methodVisitor.visitEnd(); } classWriter.visitEnd(); return classWriter.toByteArray(); } }
Classfile /tmp/semicompiled-4IeGaY2q-03r350PB-14406254155953918969/com/zarbosoft/semicompiled/Main.class Last modified Jun 2, 2024; size 519 bytes MD5 checksum 297074a6582dd77e40769f5b20b1d460 Compiled from "Main.java" class com.zarbosoft.semicompiled.Main minor version: 0 major version: 52 flags: (0x0020) ACC_SUPER this_class: #20 // com/zarbosoft/semicompiled/Main super_class: #21 // java/lang/Object interfaces: 0, fields: 0, methods: 2, attributes: 1 Constant pool: #1 = Methodref #21.#34 // java/lang/Object."<init>":()V #2 = Float 3.0f #3 = Float 4.0f #4 = Float 5.0f #5 = Float 6.0f #6 = Float 7.0f #7 = Float 8.0f #8 = Float 9.0f #9 = Float 10.0f #10 = Float -1.0f #11 = Float -2.0f #12 = Float -3.0f #13 = Float -4.0f #14 = Float -5.0f #15 = Float -6.0f #16 = Float -7.0f #17 = Float -8.0f #18 = Float -9.0f #19 = Float -10.0f #20 = Class #35 // com/zarbosoft/semicompiled/Main #21 = Class #36 // java/lang/Object #22 = Utf8 <init> #23 = Utf8 ()V #24 = Utf8 Code #25 = Utf8 LineNumberTable #26 = Utf8 LocalVariableTable #27 = Utf8 this #28 = Utf8 Lcom/zarbosoft/semicompiled/Main; #29 = Utf8 myMain #30 = Utf8 x #31 = Utf8 F #32 = Utf8 SourceFile #33 = Utf8 Main.java #34 = NameAndType #22:#23 // "<init>":()V #35 = Utf8 com/zarbosoft/semicompiled/Main #36 = Utf8 java/lang/Object { com.zarbosoft.semicompiled.Main(); descriptor: ()V flags: (0x0000) Code: stack=1, locals=1, args_size=1 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return LineNumberTable: line 3: 0 LocalVariableTable: Start Length Slot Name Signature 0 5 0 this Lcom/zarbosoft/semicompiled/Main; public static void myMain(); descriptor: ()V flags: (0x0009) ACC_PUBLIC, ACC_STATIC Code: stack=1, locals=1, args_size=0 0: fconst_0 1: fstore_0 2: fconst_1 3: fstore_0 4: fconst_2 5: fstore_0 6: ldc #2 // float 3.0f 8: fstore_0 9: ldc #3 // float 4.0f 11: fstore_0 12: ldc #4 // float 5.0f 14: fstore_0 15: ldc #5 // float 6.0f 17: fstore_0 18: ldc #6 // float 7.0f 20: fstore_0 21: ldc #7 // float 8.0f 23: fstore_0 24: ldc #8 // float 9.0f 26: fstore_0 27: ldc #9 // float 10.0f 29: fstore_0 30: ldc #10 // float -1.0f 32: fstore_0 33: ldc #11 // float -2.0f 35: fstore_0 36: ldc #12 // float -3.0f 38: fstore_0 39: ldc #13 // float -4.0f 41: fstore_0 42: ldc #14 // float -5.0f 44: fstore_0 45: ldc #15 // float -6.0f 47: fstore_0 48: ldc #16 // float -7.0f 50: fstore_0 51: ldc #17 // float -8.0f 53: fstore_0 54: ldc #18 // float -9.0f 56: fstore_0 57: ldc #19 // float -10.0f 59: fstore_0 60: return LineNumberTable: line 5: 0 line 6: 60 LocalVariableTable: Start Length Slot Name Signature 2 59 0 x F } SourceFile: "Main.java"
package asm.com.zarbosoft.semicompiled; import org.objectweb.asm.AnnotationVisitor; import org.objectweb.asm.Attribute; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassWriter; import org.objectweb.asm.ConstantDynamic; import org.objectweb.asm.FieldVisitor; import org.objectweb.asm.Handle; import org.objectweb.asm.Label; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; import org.objectweb.asm.RecordComponentVisitor; import org.objectweb.asm.Type; import org.objectweb.asm.TypePath; public class MainDump implements Opcodes { public static byte[] dump() throws Exception { ClassWriter classWriter = new ClassWriter(0); FieldVisitor fieldVisitor; RecordComponentVisitor recordComponentVisitor; MethodVisitor methodVisitor; AnnotationVisitor annotationVisitor0; classWriter.visit( V1_8, ACC_SUPER, "com/zarbosoft/semicompiled/Main", null, "java/lang/Object", null); classWriter.visitSource("Main.java", null); { methodVisitor = classWriter.visitMethod(0, "<init>", "()V", null, null); methodVisitor.visitCode(); Label label0 = new Label(); methodVisitor.visitLabel(label0); methodVisitor.visitLineNumber(3, label0); methodVisitor.visitVarInsn(ALOAD, 0); methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false); methodVisitor.visitInsn(RETURN); Label label1 = new Label(); methodVisitor.visitLabel(label1); methodVisitor.visitLocalVariable( "this", "Lcom/zarbosoft/semicompiled/Main;", null, label0, label1, 0); methodVisitor.visitMaxs(1, 1); methodVisitor.visitEnd(); } { methodVisitor = classWriter.visitMethod(ACC_PUBLIC | ACC_STATIC, "myMain", "()V", null, null); methodVisitor.visitCode(); Label label0 = new Label(); methodVisitor.visitLabel(label0); methodVisitor.visitLineNumber(5, label0); methodVisitor.visitInsn(FCONST_0); methodVisitor.visitVarInsn(FSTORE, 0); Label label1 = new Label(); methodVisitor.visitLabel(label1); methodVisitor.visitInsn(FCONST_1); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitInsn(FCONST_2); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("3.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("4.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("5.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("6.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("7.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("8.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("9.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("10.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-1.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-2.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-3.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-4.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-5.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-6.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-7.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-8.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-9.0")); methodVisitor.visitVarInsn(FSTORE, 0); methodVisitor.visitLdcInsn(new Float("-10.0")); methodVisitor.visitVarInsn(FSTORE, 0); Label label2 = new Label(); methodVisitor.visitLabel(label2); methodVisitor.visitLineNumber(6, label2); methodVisitor.visitInsn(RETURN); Label label3 = new Label(); methodVisitor.visitLabel(label3); methodVisitor.visitLocalVariable("x", "F", null, label1, label3, 0); methodVisitor.visitMaxs(1, 1); methodVisitor.visitEnd(); } classWriter.visitEnd(); return classWriter.toByteArray(); } }
Join the thriving social scene at github.com/andrewbaxter/semicompiled.