#SimpleCodeGenerationTest.testLocalVarsIncDec() 0: enter 0, 2 3: const_2 4: store_0 5: const_5 6: store_1 7: inc 0, 1 10: inc 1, -1 13: load_0 14: load_1 15: add 16: const_0 17: print 18: exit 19: return #SimpleCodeGenerationTest.dynamicArrayAccessFromEnd() 0: enter 0, 2 3: read 4: store_1 5: load_1 6: newarray 1 8: store_0 9: load_0 10: dup 11: arraylength 12: load_1 13: sub 14: const_1 15: astore 16: load_0 17: dup 18: arraylength 19: load_1 20: const_1 21: sub 22: sub 23: const_2 24: astore 25: load_0 26: dup 27: arraylength 28: load_1 29: const_2 30: sub 31: sub 32: const_3 33: astore 34: load_0 35: dup 36: arraylength 37: load_1 38: sub 39: aload 40: store_1 41: load_1 42: const_0 43: print 44: exit 45: return #SimpleCodeGenerationTest.negativeOutOfBoundsArrayAccessFromEnd() 0: enter 0, 2 3: const_3 4: newarray 1 6: store_0 7: load_0 8: dup 9: arraylength 10: const -20 15: sub 16: aload 17: store_1 18: load_1 19: const_0 20: print 21: exit 22: return #SimpleCodeGenerationTest.testReadAndPrint() 0: enter 0, 1 3: const_0 4: store_0 5: read 6: store_0 7: load_0 8: const_0 9: print 10: exit 11: return #SimpleCodeGenerationTest.bsp01a() 0: enter 0, 3 3: const_m1 4: const_2 5: add 6: store_2 7: load_2 8: const_0 9: print 10: exit 11: return #SimpleCodeGenerationTest.testPrint() 0: enter 0, 0 3: const 97 8: const_0 9: bprint 10: const 98 15: const_1 16: bprint 17: const 99 22: const_2 23: bprint 24: const 100 29: const_3 30: bprint 31: const 101 36: const_4 37: bprint 38: exit 39: return #SimpleCodeGenerationTest.negativeArrayIndex() 0: enter 0, 2 3: const_1 4: newarray 1 6: store_0 7: load_0 8: const_m1 9: aload 10: store_1 11: load_1 12: const_0 13: print 14: exit 15: return #SimpleCodeGenerationTest.testArrayAndDesignator() 0: enter 0, 3 3: const_5 4: newarray 1 6: store_2 7: load_2 8: const_0 9: new 1 12: astore 13: load_2 14: const_0 15: aload 16: new 1 19: putfield 0 22: load_2 23: const_0 24: aload 25: getfield 0 28: new 1 31: putfield 0 34: load_2 35: const_0 36: aload 37: getfield 0 40: getfield 0 43: const 10 48: newarray 1 50: putfield 0 53: load_2 54: const_3 55: new 1 58: astore 59: load_2 60: const_3 61: aload 62: new 1 65: putfield 0 68: load_2 69: const_3 70: aload 71: getfield 0 74: new 1 77: putfield 0 80: load_2 81: const_3 82: aload 83: getfield 0 86: getfield 0 89: const 30 94: newarray 1 96: putfield 0 99: load_2 100: const_0 101: aload 102: getfield 0 105: getfield 0 108: getfield 0 111: const_0 112: dup2 113: aload 114: const_m1 115: add 116: astore 117: load_2 118: const_0 119: aload 120: getfield 0 123: getfield 0 126: getfield 0 129: const 8 134: dup2 135: aload 136: const_1 137: add 138: astore 139: load_2 140: const_3 141: aload 142: getfield 0 145: getfield 0 148: getfield 0 151: const_2 152: dup2 153: aload 154: const_1 155: add 156: astore 157: load_2 158: const_3 159: aload 160: getfield 0 163: getfield 0 166: getfield 0 169: const_2 170: dup2 171: aload 172: const_3 173: mul 174: astore 175: load_2 176: const_0 177: aload 178: getfield 0 181: getfield 0 184: getfield 0 187: const 8 192: dup2 193: aload 194: const 50 199: load_2 200: const_3 201: aload 202: getfield 0 205: getfield 0 208: getfield 0 211: const_2 212: aload 213: load_2 214: const_3 215: aload 216: getfield 0 219: getfield 0 222: getfield 0 225: const_2 226: aload 227: mul 228: load_2 229: const_0 230: aload 231: getfield 0 234: getfield 0 237: getfield 0 240: const_0 241: aload 242: mul 243: add 244: add 245: astore 246: load_2 247: const_0 248: aload 249: getfield 0 252: getfield 0 255: getfield 0 258: const 8 263: aload 264: const_0 265: print 266: exit 267: return #SimpleCodeGenerationTest.computedArrayAccessFromEnd() 0: enter 0, 2 3: const_3 4: newarray 1 6: store_0 7: load_0 8: dup 9: arraylength 10: const_2 11: const 6 16: mul 17: const 11 22: sub 23: sub 24: const_3 25: astore 26: load_0 27: dup 28: arraylength 29: const 9 34: const 11 39: sub 40: const_4 41: add 42: sub 43: const_2 44: astore 45: load_0 46: dup 47: arraylength 48: const_3 49: sub 50: const_1 51: astore 52: load_0 53: dup 54: arraylength 55: load_0 56: const_0 57: aload 58: const_2 59: const 6 64: mul 65: add 66: const 11 71: sub 72: sub 73: aload 74: store_1 75: load_1 76: const_0 77: print 78: exit 79: return #SimpleCodeGenerationTest.testDesignator() 0: enter 0, 3 3: new 1 6: store_2 7: load_2 8: new 1 11: putfield 0 14: load_2 15: getfield 0 18: new 1 21: putfield 0 24: load_2 25: getfield 0 28: getfield 0 31: dup 32: getfield 0 35: const_1 36: add 37: putfield 0 40: load_2 41: getfield 0 44: getfield 0 47: getfield 0 50: const_0 51: print 52: exit 53: return #SimpleCodeGenerationTest.arrayFromEndIncrement() 0: enter 0, 1 3: const_1 4: newarray 1 6: store_0 7: load_0 8: dup 9: arraylength 10: const_1 11: sub 12: dup2 13: aload 14: const_1 15: add 16: astore 17: load_0 18: const_0 19: aload 20: const_0 21: print 22: exit 23: return #SimpleCodeGenerationTest.testArrayAndDesignatorAndAssign() 0: enter 0, 3 3: const_5 4: newarray 1 6: store_2 7: load_2 8: const_0 9: new 1 12: astore 13: load_2 14: const_0 15: aload 16: new 1 19: putfield 0 22: load_2 23: const_0 24: aload 25: getfield 0 28: new 1 31: putfield 0 34: load_2 35: const_0 36: aload 37: getfield 0 40: getfield 0 43: const_2 44: newarray 1 46: putfield 0 49: load_2 50: const_3 51: new 1 54: astore 55: load_2 56: const_3 57: aload 58: new 1 61: putfield 0 64: load_2 65: const_3 66: aload 67: getfield 0 70: new 1 73: putfield 0 76: load_2 77: const_3 78: aload 79: getfield 0 82: getfield 0 85: const_3 86: newarray 1 88: putfield 0 91: load_2 92: const_0 93: aload 94: getfield 0 97: getfield 0 100: getfield 0 103: const_1 104: dup2 105: aload 106: const_1 107: add 108: astore 109: load_2 110: const_0 111: aload 112: getfield 0 115: getfield 0 118: getfield 0 121: const_1 122: dup2 123: aload 124: const 256 129: mul 130: astore 131: load_2 132: const_0 133: aload 134: getfield 0 137: getfield 0 140: getfield 0 143: const_1 144: dup2 145: aload 146: const_2 147: div 148: astore 149: load_2 150: const_0 151: aload 152: getfield 0 155: getfield 0 158: getfield 0 161: const_1 162: dup2 163: aload 164: const_m1 165: add 166: astore 167: load_2 168: const_0 169: aload 170: getfield 0 173: getfield 0 176: getfield 0 179: const_1 180: dup2 181: aload 182: const 64 187: rem 188: astore 189: load_2 190: const_3 191: aload 192: getfield 0 195: getfield 0 198: getfield 0 201: const_2 202: dup2 203: aload 204: const_1 205: add 206: astore 207: load_2 208: const_3 209: aload 210: getfield 0 213: getfield 0 216: getfield 0 219: const_2 220: dup2 221: aload 222: const 21 227: mul 228: astore 229: load_2 230: const_0 231: aload 232: getfield 0 235: getfield 0 238: getfield 0 241: const_1 242: dup2 243: aload 244: load_2 245: const_3 246: aload 247: getfield 0 250: getfield 0 253: getfield 0 256: const_2 257: aload 258: sub 259: astore 260: load_2 261: const_0 262: aload 263: getfield 0 266: getfield 0 269: getfield 0 272: const_1 273: aload 274: const_0 275: print 276: exit 277: return #SimpleCodeGenerationTest.bsp01() 0: enter 0, 3 3: const_3 4: store_2 5: load_2 6: const_0 7: print 8: exit 9: return #SimpleCodeGenerationTest.bsp02() 0: enter 0, 3 3: const 10 8: putstatic 1 11: getstatic 1 14: const_0 15: print 16: exit 17: return #SimpleCodeGenerationTest.bsp03() 0: enter 0, 3 3: const_1 4: putstatic 1 7: const_3 8: getstatic 1 11: add 12: store_2 13: load_2 14: const_0 15: print 16: exit 17: return #SimpleCodeGenerationTest.bsp04() 0: enter 0, 3 3: const_1 4: putstatic 1 7: const_3 8: getstatic 1 11: const 12 16: mul 17: add 18: load_2 19: sub 20: store_2 21: load_2 22: const_0 23: print 24: exit 25: return #SimpleCodeGenerationTest.bsp05() 0: enter 0, 3 3: const 10 8: newarray 1 10: store_0 11: load_0 12: const_5 13: const 10 18: astore 19: load_0 20: const_0 21: aload 22: const_0 23: print 24: load_0 25: const_5 26: aload 27: const_0 28: print 29: exit 30: return #SimpleCodeGenerationTest.bsp06() 0: enter 0, 3 3: const 10 8: newarray 1 10: store_0 11: load_0 12: const_5 13: const 10 18: astore 19: new 2 22: store_1 23: load_1 24: load_0 25: const_5 26: aload 27: const_3 28: mul 29: putfield 1 32: load_1 33: getfield 1 36: const_0 37: print 38: exit 39: return #SimpleCodeGenerationTest.bsp07() 0: enter 0, 3 3: inc 2, -1 6: load_2 7: const_0 8: print 9: exit 10: return #SimpleCodeGenerationTest.bsp08() 0: enter 0, 3 3: getstatic 1 6: const_m1 7: add 8: putstatic 1 11: getstatic 1 14: const_0 15: print 16: exit 17: return #SimpleCodeGenerationTest.bsp09() 0: enter 0, 3 3: new 2 6: store_1 7: load_1 8: dup 9: getfield 1 12: const_m1 13: add 14: putfield 1 17: load_1 18: getfield 1 21: const_0 22: print 23: exit 24: return #SimpleCodeGenerationTest.bsp10() 0: enter 0, 3 3: const 10 8: newarray 1 10: store_0 11: load_0 12: const_0 13: dup2 14: aload 15: const_m1 16: add 17: astore 18: load_0 19: const_0 20: aload 21: const_0 22: print 23: exit 24: return #SimpleCodeGenerationTest.arrayAccessFromZeroEnd() 0: enter 0, 2 3: const_3 4: newarray 1 6: store_0 7: load_0 8: dup 9: arraylength 10: const_0 11: sub 12: aload 13: store_1 14: load_1 15: const_0 16: print 17: exit 18: return #SimpleCodeGenerationTest.testConstDecl() 0: enter 0, 0 3: const 100 8: const_0 9: print 10: const 65 15: const_0 16: bprint 17: exit 18: return #SimpleCodeGenerationTest.positiveOutOfBoundsArrayAccessFromEnd() 0: enter 0, 2 3: const_3 4: newarray 1 6: store_0 7: load_0 8: dup 9: arraylength 10: const 1000 15: sub 16: aload 17: store_1 18: load_1 19: const_0 20: print 21: exit 22: return #SimpleCodeGenerationTest.constantArrayAccessFromEnd() 0: enter 0, 2 3: const_3 4: newarray 1 6: store_0 7: load_0 8: dup 9: arraylength 10: const_1 11: sub 12: const_3 13: astore 14: load_0 15: dup 16: arraylength 17: const_2 18: sub 19: const_2 20: astore 21: load_0 22: dup 23: arraylength 24: const_3 25: sub 26: const_1 27: astore 28: load_0 29: dup 30: arraylength 31: const_1 32: sub 33: aload 34: store_1 35: load_1 36: const_0 37: print 38: exit 39: return #SimpleCodeGenerationTest.twoMethods() 0: enter 0, 1 3: const_0 4: store_0 5: exit 6: return 7: enter 0, 0 10: const_2 11: const_0 12: print 13: exit 14: return #SimpleCodeGenerationTest.bspEmpty() 0: enter 0, 3 3: exit 4: return #SimpleCodeGenerationTest.testFields() 0: enter 0, 2 3: new 1 6: store_0 7: new 1 10: store_1 11: load_0 12: const 20 17: putfield 0 20: load_0 21: dup 22: getfield 0 25: const_1 26: add 27: putfield 0 30: load_0 31: dup 32: getfield 0 35: const 7 40: div 41: putfield 0 44: load_0 45: dup 46: getfield 0 49: load_0 50: getfield 0 53: mul 54: putfield 0 57: load_0 58: dup 59: getfield 0 62: load_0 63: getfield 0 66: const_5 67: sub 68: rem 69: putfield 0 72: load_1 73: new 1 76: putfield 0 79: load_1 80: getfield 0 83: const -12 88: putfield 0 91: load_1 92: getfield 0 95: dup 96: getfield 0 99: load_0 100: getfield 0 103: sub 104: putfield 0 107: load_1 108: getfield 0 111: dup 112: getfield 0 115: load_0 116: getfield 0 119: neg 120: mul 121: putfield 0 124: load_1 125: getfield 0 128: dup 129: getfield 0 132: const_5 133: rem 134: putfield 0 137: load_1 138: getfield 0 141: dup 142: getfield 0 145: load_0 146: getfield 0 149: const_2 150: const_3 151: mul 152: add 153: mul 154: putfield 0 157: load_1 158: getfield 0 161: getfield 0 164: const_0 165: print 166: exit 167: return #SimpleCodeGenerationTest.testMulops() 0: enter 0, 2 3: const 42 8: store_0 9: const_3 10: store_1 11: load_0 12: load_1 13: div 14: store_0 15: load_0 16: load_1 17: load_1 18: mul 19: rem 20: store_0 21: load_0 22: const_0 23: print 24: exit 25: return #SimpleCodeGenerationTest.testArrayIndexExpression() 0: enter 0, 1 3: const 10 8: newarray 1 10: store_0 11: load_0 12: const_1 13: const_2 14: add 15: const_3 16: mul 17: const_4 18: astore 19: load_0 20: const_4 21: const_2 22: const_2 23: mul 24: sub 25: const_2 26: astore 27: load_0 28: const 90 33: const 10 38: div 39: aload 40: const_0 41: print 42: load_0 43: const 6 48: const_3 49: const_2 50: mul 51: sub 52: aload 53: const_0 54: print 55: exit 56: return #SimpleCodeGenerationTest.arrayFromEndCompoundAssignment() 0: enter 0, 1 3: const_2 4: newarray 1 6: store_0 7: load_0 8: const_0 9: const_1 10: astore 11: load_0 12: const_1 13: const_1 14: astore 15: load_0 16: dup 17: arraylength 18: const_1 19: sub 20: dup2 21: aload 22: const_1 23: add 24: astore 25: load_0 26: dup 27: arraylength 28: const_2 29: sub 30: dup2 31: aload 32: const_m1 33: add 34: astore 35: load_0 36: const_0 37: aload 38: const_0 39: print 40: load_0 41: const_1 42: aload 43: const_0 44: print 45: exit 46: return #SimpleCodeGenerationTest.globalArrayAccessFromEnd() 0: enter 0, 2 3: const_3 4: newarray 1 6: store_0 7: load_0 8: dup 9: arraylength 10: const_3 11: sub 12: const_1 13: astore 14: load_0 15: dup 16: arraylength 17: const_3 18: const_1 19: sub 20: sub 21: const_2 22: astore 23: load_0 24: dup 25: arraylength 26: const_3 27: const_2 28: sub 29: sub 30: const_3 31: astore 32: load_0 33: dup 34: arraylength 35: const_3 36: sub 37: aload 38: store_1 39: load_1 40: const_0 41: print 42: exit 43: return #CodeGenerationTest.testSimpleBreak() 0: enter 0, 0 3: const 42 8: const_0 9: jle 9 (=18) 12: jmp 6 (=18) 15: jmp -12 (=3) 18: exit 19: return #CodeGenerationTest.coverUniverseMethod() 0: enter 1, 1 3: load_0 4: exit 5: return 6: trap 1 8: enter 1, 1 11: load_0 12: call -12 (=0) 15: const 30 20: sub 21: exit 22: return 23: trap 1 25: enter 0, 0 28: const 65 33: call -25 (=8) 36: const_0 37: bprint 38: exit 39: return #CodeGenerationTest.fibDyn() 0: enter 1, 2 3: load_0 4: const_1 5: jgt 6 (=11) 8: const_1 9: exit 10: return 11: getstatic 0 14: load_0 15: aload 16: const_0 17: jeq 10 (=27) 20: getstatic 0 23: load_0 24: aload 25: exit 26: return 27: load_0 28: const_1 29: sub 30: call -30 (=0) 33: load_0 34: const_2 35: sub 36: call -36 (=0) 39: add 40: store_1 41: getstatic 0 44: load_0 45: load_1 46: astore 47: load_1 48: exit 49: return 50: trap 1 52: enter 0, 1 55: const 1000 60: newarray 1 62: putstatic 0 65: read 66: store_0 67: load_0 68: call -68 (=0) 71: const_0 72: print 73: exit 74: return #CodeGenerationTest.testAnimals() 0: enter 2, 2 3: load_0 4: load_1 5: putfield 0 8: exit 9: return 10: enter 1, 4 13: load_0 14: getfield 0 17: arraylength 18: store_2 19: const_0 20: store_1 21: load_1 22: load_2 23: jge 18 (=41) 26: load_0 27: getfield 0 30: load_1 31: baload 32: const_0 33: bprint 34: load_1 35: const_1 36: add 37: store_1 38: jmp -17 (=21) 41: exit 42: return 43: enter 0, 5 46: const_3 47: newarray 0 49: store_2 50: load_2 51: const_0 52: const 99 57: bastore 58: load_2 59: const_1 60: const 97 65: bastore 66: load_2 67: const_2 68: const 116 73: bastore 74: const_3 75: newarray 0 77: store_3 78: load_3 79: const_0 80: const 100 85: bastore 86: load_3 87: const_1 88: const 111 93: bastore 94: load_3 95: const_2 96: const 103 101: bastore 102: const 7 107: newarray 0 109: store 4 111: load 4 113: const_0 114: const 111 119: bastore 120: load 4 122: const_1 123: const 99 128: bastore 129: load 4 131: const_2 132: const 116 137: bastore 138: load 4 140: const_3 141: const 111 146: bastore 147: load 4 149: const_4 150: const 112 155: bastore 156: load 4 158: const_5 159: const 117 164: bastore 165: load 4 167: const 6 172: const 115 177: bastore 178: const_3 179: newarray 1 181: store_1 182: load_1 183: const_0 184: new 1 187: astore 188: load_1 189: const_1 190: new 1 193: astore 194: load_1 195: const_2 196: new 1 199: astore 200: load_1 201: const_0 202: aload 203: load_2 204: call -204 (=0) 207: load_1 208: const_1 209: aload 210: load_3 211: call -211 (=0) 214: load_1 215: const_2 216: aload 217: load 4 219: call -219 (=0) 222: read 223: store_0 224: load_1 225: load_0 226: aload 227: call -217 (=10) 230: exit 231: return #CodeGenerationTest.testBreak() 0: enter 0, 1 3: read 4: store_0 5: getstatic 0 8: load_0 9: jgt 40 (=49) 12: const_1 13: const_2 14: jge 14 (=28) 17: const_1 18: const_1 19: jne 6 (=25) 22: jmp 6 (=28) 25: jmp -13 (=12) 28: getstatic 0 31: const_5 32: jne 6 (=38) 35: jmp 14 (=49) 38: getstatic 0 41: const_1 42: add 43: putstatic 0 46: jmp -41 (=5) 49: getstatic 0 52: const_0 53: print 54: exit 55: return #CodeGenerationTest.iterateArrayFromEnd() 0: enter 0, 2 3: const_3 4: newarray 1 6: store_0 7: load_0 8: const_0 9: const_1 10: astore 11: load_0 12: const_1 13: const_2 14: astore 15: load_0 16: const_2 17: const_3 18: astore 19: const_1 20: store_1 21: load_1 22: const_3 23: jgt 17 (=40) 26: load_0 27: dup 28: arraylength 29: load_1 30: sub 31: aload 32: const_0 33: print 34: inc 1, 1 37: jmp -16 (=21) 40: exit 41: return #CodeGenerationTest.compareNeg() 0: enter 0, 1 3: const -42 8: store_0 9: load_0 10: const -42 15: jne 13 (=28) 18: const 42 23: const_0 24: print 25: jmp 6 (=31) 28: load_0 29: const_0 30: print 31: exit 32: return #CodeGenerationTest.methodCall() 0: enter 0, 0 3: const 98 8: const_0 9: bprint 10: const 97 15: const_0 16: bprint 17: const 114 22: const_0 23: bprint 24: exit 25: return 26: enter 0, 0 29: const 102 34: const_0 35: bprint 36: const 111 41: const_0 42: bprint 43: const 111 48: const_0 49: bprint 50: exit 51: return 52: enter 0, 0 55: call -29 (=26) 58: exit 59: return #CodeGenerationTest.createPalindrom() 0: enter 2, 4 3: load_0 4: arraylength 5: store_3 6: const_0 7: store_2 8: load_2 9: load_3 10: jge 26 (=36) 13: load_1 14: load_2 15: load_0 16: load_2 17: baload 18: bastore 19: load_1 20: dup 21: arraylength 22: load_2 23: const_1 24: add 25: sub 26: load_0 27: load_2 28: baload 29: bastore 30: inc 2, 1 33: jmp -25 (=8) 36: exit 37: return 38: enter 1, 2 41: const_0 42: store_1 43: load_1 44: load_0 45: arraylength 46: jge 14 (=60) 49: load_0 50: load_1 51: baload 52: const_0 53: bprint 54: inc 1, 1 57: jmp -14 (=43) 60: exit 61: return 62: enter 0, 3 65: const_5 66: newarray 0 68: store_0 69: load_0 70: const_0 71: const 108 76: bastore 77: load_0 78: const_1 79: const 97 84: bastore 85: load_0 86: const_2 87: const 103 92: bastore 93: load_0 94: const_3 95: const 101 100: bastore 101: load_0 102: const_4 103: const 114 108: bastore 109: const 10 114: newarray 0 116: store_1 117: load_0 118: load_1 119: call -119 (=0) 122: load_1 123: call -85 (=38) 126: const_2 127: newarray 0 129: store_0 130: load_0 131: const_0 132: const 111 137: bastore 138: load_0 139: const_1 140: const 116 145: bastore 146: const_4 147: newarray 0 149: store_1 150: load_0 151: load_1 152: call -152 (=0) 155: load_1 156: call -118 (=38) 159: exit 160: return #CodeGenerationTest.fib() 0: enter 1, 1 3: load_0 4: const_1 5: jgt 6 (=11) 8: const_1 9: exit 10: return 11: load_0 12: const_1 13: sub 14: call -14 (=0) 17: load_0 18: const_2 19: sub 20: call -20 (=0) 23: add 24: exit 25: return 26: trap 1 28: enter 0, 1 31: read 32: store_0 33: load_0 34: call -34 (=0) 37: const_0 38: print 39: exit 40: return #CodeGenerationTest.unusedReturnVal() 0: enter 0, 0 3: const 351 8: exit 9: return 10: trap 1 12: enter 0, 0 15: call -15 (=0) 18: pop 19: const 42 24: exit 25: return 26: trap 1 28: enter 0, 0 31: const 932 36: call -24 (=12) 39: add 40: const_0 41: print 42: exit 43: return #CodeGenerationTest.lenTest() 0: enter 0, 1 3: const_5 4: newarray 1 6: store_0 7: load_0 8: arraylength 9: const_0 10: print 11: exit 12: return #CodeGenerationTest.bsp11() 0: enter 0, 3 3: read 4: putstatic 1 7: getstatic 1 10: load_2 11: jgt 5 (=16) 14: const_1 15: store_2 16: load_2 17: const_0 18: print 19: exit 20: return #CodeGenerationTest.bsp12() 0: enter 0, 3 3: read 4: putstatic 1 7: const_1 8: store_2 9: getstatic 1 12: load_2 13: jgt 10 (=23) 16: load_2 17: const_0 18: jge 5 (=23) 21: const_2 22: store_2 23: load_2 24: const_0 25: print 26: exit 27: return #CodeGenerationTest.bsp13() 0: enter 0, 3 3: read 4: putstatic 1 7: const_1 8: store_2 9: getstatic 1 12: load_2 13: jle 14 (=27) 16: getstatic 1 19: const 10 24: jge 5 (=29) 27: const_2 28: store_2 29: load_2 30: const_0 31: print 32: exit 33: return #CodeGenerationTest.bsp14() 0: enter 0, 3 3: read 4: putstatic 1 7: const_1 8: store_2 9: getstatic 1 12: load_2 13: jle 21 (=34) 16: getstatic 1 19: const 10 24: jge 12 (=36) 27: getstatic 1 30: const_5 31: jle 5 (=36) 34: const_2 35: store_2 36: load_2 37: const_0 38: print 39: exit 40: return #CodeGenerationTest.bsp15() 0: enter 0, 3 3: read 4: store_2 5: getstatic 1 8: load_2 9: jgt 14 (=23) 12: getstatic 1 15: const_1 16: add 17: putstatic 1 20: jmp -15 (=5) 23: getstatic 1 26: const_0 27: print 28: exit 29: return #CodeGenerationTest.bsp16() 0: enter 0, 3 3: read 4: putstatic 1 7: getstatic 1 10: const 12 15: jgt 8 (=23) 18: const_1 19: store_2 20: jmp 5 (=25) 23: const_2 24: store_2 25: load_2 26: const_0 27: print 28: exit 29: return #CodeGenerationTest.bsp17() 0: enter 0, 4 3: read 4: store_2 5: const_0 6: store_3 7: getstatic 1 10: load_2 11: jgt 20 (=31) 14: load_3 15: getstatic 1 18: add 19: store_3 20: getstatic 1 23: const_1 24: add 25: putstatic 1 28: jmp -21 (=7) 31: load_3 32: const_0 33: print 34: exit 35: return #CodeGenerationTest.bsp18() 0: enter 0, 4 3: read 4: store_2 5: const_0 6: store_3 7: const_2 8: putstatic 1 11: getstatic 1 14: load_2 15: jgt 20 (=35) 18: load_3 19: getstatic 1 22: add 23: store_3 24: getstatic 1 27: const_1 28: add 29: putstatic 1 32: jmp -21 (=11) 35: load_3 36: const_0 37: print 38: exit 39: return #CodeGenerationTest.trappingOrdChrTest() 0: enter 0, 0 3: const 7 8: const 7 13: mul 14: const_0 15: print 16: trap 1 18: enter 0, 2 21: const 33 26: pop 27: const 42 32: pop 33: const 33 38: store_0 39: const 42 44: store_1 45: exit 46: return #CodeGenerationTest.arrayFromEndWithFunctionCall() 0: enter 0, 0 3: const_1 4: exit 5: return 6: trap 1 8: enter 0, 1 11: const_2 12: newarray 1 14: store_0 15: load_0 16: const_0 17: const 13 22: astore 23: load_0 24: dup 25: arraylength 26: call -26 (=0) 29: sub 30: const 42 35: astore 36: load_0 37: dup 38: arraylength 39: call -39 (=0) 42: sub 43: aload 44: const_0 45: print 46: exit 47: return #CodeGenerationTest.testElseIf() 0: enter 0, 1 3: read 4: store_0 5: load_0 6: const_1 7: jne 13 (=20) 10: const 9 15: const_0 16: print 17: jmp 25 (=42) 20: load_0 21: const_2 22: jne 13 (=35) 25: const 8 30: const_0 31: print 32: jmp 10 (=42) 35: const 7 40: const_0 41: print 42: exit 43: return #CodeGenerationTest.testRelops() 0: enter 0, 1 3: read 4: store_0 5: load_0 6: const_1 7: jne 24 (=31) 10: const 61 15: const_0 16: bprint 17: const 61 22: const_0 23: bprint 24: const 44 29: const_0 30: bprint 31: load_0 32: const_1 33: jeq 24 (=57) 36: const 33 41: const_0 42: bprint 43: const 61 48: const_0 49: bprint 50: const 44 55: const_0 56: bprint 57: load_0 58: const_1 59: jge 17 (=76) 62: const 60 67: const_0 68: bprint 69: const 44 74: const_0 75: bprint 76: load_0 77: const_1 78: jgt 24 (=102) 81: const 60 86: const_0 87: bprint 88: const 61 93: const_0 94: bprint 95: const 44 100: const_0 101: bprint 102: load_0 103: const_1 104: jle 17 (=121) 107: const 62 112: const_0 113: bprint 114: const 44 119: const_0 120: bprint 121: load_0 122: const_1 123: jlt 24 (=147) 126: const 62 131: const_0 132: bprint 133: const 61 138: const_0 139: bprint 140: const 44 145: const_0 146: bprint 147: exit 148: return #CodeGenerationTest.basicOrdChrTest() 0: enter 0, 2 3: const 65 8: store_0 9: load_0 10: const_0 11: print 12: const 42 17: store_0 18: load_0 19: const_0 20: print 21: const 49 26: store_1 27: load_1 28: const_0 29: bprint 30: exit 31: return #CodeGenerationTest.testNestedBreak() 0: enter 0, 2 3: const 21 8: store_1 9: const 83 14: const 84 19: jge 28 (=47) 22: const 167 27: const 168 32: jge 9 (=41) 35: jmp 6 (=41) 38: jmp -16 (=22) 41: jmp 6 (=47) 44: jmp -35 (=9) 47: exit 48: return