diff -r c112a6cb5e52 -r 183663740fb7 progs/loops.j --- 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 ()V - aload_0 - invokenonvirtual java/lang/Object/()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