This is the Jasmin (essentially Java "assembly language" source code for the optimised bytecode decompiler tests. It was created with
soot -s -O Main
where
soot
is a simple script containing
java -cp .:paths:to:soot:and:jasmin soot.Main $@=
Soot is a Java bytecode manipulation tool from Sable University; see
http://www.sable.mcgill.ca/soot/
.method public static f(S)V
.limit stack 3
.limit locals 2
iload_0
bipush 10
if_icmple label0
new Rectangle
astore_1
aload_1
iload_0
iload_0
invokespecial Rectangle/<init>(SS)V
aload_1
invokevirtual Rectangle/isFat()Z
istore_0
aload_1
astore_1
goto label1
label0:
new Circle
astore_1
aload_1
iload_0
invokespecial Circle/<init>(I)V
aload_1
invokevirtual Circle/isFat()Z
istore_0
aload_1
astore_1
label1:
iload_0
ifne label2
aload_1
invokeinterface Drawable/draw()V 1
label2:
return
.end method
.method public static main([Ljava/lang/String;)V
.limit stack 1
.limit locals 1
bipush 11
invokestatic Main/f(S)V
return
.end method
--
MikeVanEmmerik - 12 Feb 2003