progs/loops.j
changeset 710 183663740fb7
parent 207 f824e1331fc6
--- 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