--- a/progs/loops.j Tue Jan 28 12:23:53 2020 +0000
+++ b/progs/loops.j Mon Feb 03 01:10:16 2020 +0000
@@ -2,29 +2,13 @@
.class public loops.loops
.super java/lang/Object
-.method public <init>()V
- aload_0
- invokenonvirtual java/lang/Object/<init>()V
- return
-.end method
-
.method public static write(I)V
- .limit locals 5
- .limit stack 5
- iload 0
+ .limit locals 1
+ .limit stack 2
getstatic java/lang/System/out Ljava/io/PrintStream;
- swap
- invokevirtual java/io/PrintStream/println(I)V
- return
-.end method
-
-.method public static write(S)V
- .limit locals 5
- .limit stack 5
- iload 0
- getstatic java/lang/System/out Ljava/io/PrintStream;
- swap
- invokevirtual java/io/PrintStream/println(S)V
+ iload 0
+ i2c ; Int => Char
+ invokevirtual java/io/PrintStream/print(C)V ; println(I)V => print(C)V
return
.end method
@@ -32,62 +16,62 @@
.limit locals 200
.limit stack 200
-ldc 1000
-istore 0
-iload 0
-istore 1
-iload 0
-istore 2
-iload 0
-istore 3
-
-Loop_begin_0:
-
-ldc 0
-iload 1
-if_icmpge Loop_end_1
-
-Loop_begin_2:
-
-ldc 0
-iload 2
-if_icmpge Loop_end_3
-
-Loop_begin_4:
+; COMPILED CODE STARTS
-ldc 0
-iload 3
-if_icmpge Loop_end_5
-iload 3
-ldc 1
-isub
-istore 3
-goto Loop_begin_4
-
-Loop_end_5:
+ ldc 200000
+ istore 0 ; start
+ iload 0
+ istore 1 ; x1
+ iload 0
+ istore 2 ; x2
+ iload 0
+ istore 3 ; x3
+Loop_begin_90:
+ ldc 0
+ iload 1
+ if_icmpge Loop_end_91
+Loop_begin_92:
+ ldc 0
+ iload 2
+ if_icmpge Loop_end_93
+Loop_begin_94:
+ ldc 0
+ iload 3
+ if_icmpge Loop_end_95
+ iload 3
+ ldc 1
+ isub
+ istore 3 ; x3
+ ;; test start
+ bipush 1
+ bipush 1
+ bipush 1
+ bipush 1
+ pop
+ pop
+ pop
+ pop
+ ;; test end
+ goto Loop_begin_94
+Loop_end_95:
+ iload 0
+ istore 3 ; x3
+ iload 2
+ ldc 1
+ isub
+ istore 2 ; x2
+ goto Loop_begin_92
+Loop_end_93:
+ iload 0
+ istore 2 ; x2
+ iload 1
+ ldc 1
+ isub
+ istore 1 ; x1
+ goto Loop_begin_90
+Loop_end_91:
-iload 0
-istore 3
-iload 2
-ldc 1
-isub
-istore 2
-goto Loop_begin_2
-
-Loop_end_3:
-
-iload 0
-istore 2
-iload 1
-ldc 1
-isub
-istore 1
-goto Loop_begin_0
-
-Loop_end_1:
-
-
-
+; COMPILED CODE ENDS
return
.end method