1*f0dffb02SXin Li 2*f0dffb02SXin Limethod A.<init>():void 3*f0dffb02SXin Li{ 4*f0dffb02SXin Li .src "tryCatch.java" 5*f0dffb02SXin Li .line 2 6*f0dffb02SXin Li 0| move-object/16 v15, v25 7*f0dffb02SXin Li 3| move-object/16 v14, v15 8*f0dffb02SXin Li 6| move-object/16 v13, v14 9*f0dffb02SXin Li .prologue_end 10*f0dffb02SXin Li .line 2 11*f0dffb02SXin Li 9| move-object v11, v13 12*f0dffb02SXin Li .local v11, "this", A 13*f0dffb02SXin Li 10| move-object v12, v11 14*f0dffb02SXin Li 11| invoke-direct {v12}, java.lang.Throwable.<init>():void 15*f0dffb02SXin Li 14| return-void 16*f0dffb02SXin Li} 17*f0dffb02SXin Li 18*f0dffb02SXin Limethod B.<init>():void 19*f0dffb02SXin Li{ 20*f0dffb02SXin Li .src "tryCatch.java" 21*f0dffb02SXin Li .line 6 22*f0dffb02SXin Li 0| move-object/16 v15, v25 23*f0dffb02SXin Li 3| move-object/16 v14, v15 24*f0dffb02SXin Li 6| move-object/16 v13, v14 25*f0dffb02SXin Li .prologue_end 26*f0dffb02SXin Li .line 6 27*f0dffb02SXin Li 9| move-object v11, v13 28*f0dffb02SXin Li .local v11, "this", B 29*f0dffb02SXin Li 10| move-object v12, v11 30*f0dffb02SXin Li 11| invoke-direct {v12}, java.lang.Throwable.<init>():void 31*f0dffb02SXin Li 14| return-void 32*f0dffb02SXin Li} 33*f0dffb02SXin Li 34*f0dffb02SXin Limethod TryCatch.<init>():void 35*f0dffb02SXin Li{ 36*f0dffb02SXin Li .src "tryCatch.java" 37*f0dffb02SXin Li .line 10 38*f0dffb02SXin Li 0| move-object/16 v15, v25 39*f0dffb02SXin Li 3| move-object/16 v14, v15 40*f0dffb02SXin Li 6| move-object/16 v13, v14 41*f0dffb02SXin Li .prologue_end 42*f0dffb02SXin Li .line 10 43*f0dffb02SXin Li 9| move-object v11, v13 44*f0dffb02SXin Li .local v11, "this", TryCatch 45*f0dffb02SXin Li 10| move-object v12, v11 46*f0dffb02SXin Li 11| invoke-direct {v12}, java.lang.Object.<init>():void 47*f0dffb02SXin Li 14| return-void 48*f0dffb02SXin Li} 49*f0dffb02SXin Li 50*f0dffb02SXin Limethod TryCatch.foo(int):int 51*f0dffb02SXin Li{ 52*f0dffb02SXin Li .params "?" 53*f0dffb02SXin Li .src "tryCatch.java" 54*f0dffb02SXin Li .line 27 55*f0dffb02SXin Li 0| move/16 v15, v27 56*f0dffb02SXin Li 3| move/16 v14, v15 57*f0dffb02SXin Li 6| move/16 v13, v14 58*f0dffb02SXin Li .prologue_end 59*f0dffb02SXin Li .line 27 60*f0dffb02SXin Li 9| move v9, v13 61*f0dffb02SXin Li .local v9, "x", int 62*f0dffb02SXin Li 10| move v10, v9 63*f0dffb02SXin Li 11| if-lez v10, Label_4 64*f0dffb02SXin Li .line 28 65*f0dffb02SXin Li 13| move v10, v9 66*f0dffb02SXin Li 14| packed-switch v10, Label_5 67*f0dffb02SXin Li .line 31 68*f0dffb02SXin Li 17| const/4 v10, #+1 (0x00000001 | 1.40130e-45) 69*f0dffb02SXin Li 18| move v9, v10 70*f0dffb02SXin LiLabel_1: 71*f0dffb02SXin Li .line 34 72*f0dffb02SXin Li .end_local v9 73*f0dffb02SXin Li 19| return v9 74*f0dffb02SXin LiLabel_2: 75*f0dffb02SXin Li .line 29 76*f0dffb02SXin Li .restart_local v9 77*f0dffb02SXin Li 20| new-instance v10, A 78*f0dffb02SXin Li 22| move-object v12, v10 79*f0dffb02SXin Li 23| move-object v10, v12 80*f0dffb02SXin Li 24| move-object v11, v12 81*f0dffb02SXin Li 25| invoke-direct {v11}, A.<init>():void 82*f0dffb02SXin Li 28| throw v10 83*f0dffb02SXin LiLabel_3: 84*f0dffb02SXin Li .line 30 85*f0dffb02SXin Li 29| new-instance v10, B 86*f0dffb02SXin Li 31| move-object v12, v10 87*f0dffb02SXin Li 32| move-object v10, v12 88*f0dffb02SXin Li 33| move-object v11, v12 89*f0dffb02SXin Li 34| invoke-direct {v11}, B.<init>():void 90*f0dffb02SXin Li 37| throw v10 91*f0dffb02SXin LiLabel_4: 92*f0dffb02SXin Li .line 34 93*f0dffb02SXin Li 38| const/4 v10, #+0 (0x00000000 | 0.00000) 94*f0dffb02SXin Li 39| move v9, v10 95*f0dffb02SXin Li 40| goto/16 Label_1 96*f0dffb02SXin LiLabel_5: <aligned> 97*f0dffb02SXin Li .line 28 98*f0dffb02SXin Li 42| packed-switch-payload 99*f0dffb02SXin Li 1: Label_2 100*f0dffb02SXin Li 2: Label_3 101*f0dffb02SXin Li} 102*f0dffb02SXin Li 103*f0dffb02SXin Limethod TryCatch.main(java.lang.String[]):void 104*f0dffb02SXin Li{ 105*f0dffb02SXin Li .params "?" 106*f0dffb02SXin Li .src "tryCatch.java" 107*f0dffb02SXin Li .line 15 108*f0dffb02SXin Li 0| move-object/16 v15, v29 109*f0dffb02SXin Li 3| move-object/16 v14, v15 110*f0dffb02SXin Li 6| move-object/16 v13, v14 111*f0dffb02SXin Li .prologue_end 112*f0dffb02SXin Li .line 15 113*f0dffb02SXin Li 9| move-object v7, v13 114*f0dffb02SXin Li .local v7, "args", java.lang.String[] 115*f0dffb02SXin Li 10| const/4 v10, #+0 (0x00000000 | 0.00000) 116*f0dffb02SXin Li .try_begin_1 117*f0dffb02SXin Li 11| invoke-static {v10}, TryCatch.foo(int):int 118*f0dffb02SXin Li .try_end_1 119*f0dffb02SXin Li catch(B) : Label_3 120*f0dffb02SXin Li catch(A) : Label_4 121*f0dffb02SXin Li catch(...) : Label_5 122*f0dffb02SXin Li 14| move-result v10 123*f0dffb02SXin LiLabel_1: 124*f0dffb02SXin Li .line 18 125*f0dffb02SXin Li .line 22 126*f0dffb02SXin Li 15| sget-object v10, java.lang.System.out 127*f0dffb02SXin Li 17| const-string v11, "finally\n" 128*f0dffb02SXin Li 19| const/4 v12, #+0 (0x00000000 | 0.00000) 129*f0dffb02SXin Li 20| new-array v12, v12, java.lang.Object[] 130*f0dffb02SXin Li 22| invoke-virtual {v10,v11,v12}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 131*f0dffb02SXin Li 25| move-result-object v10 132*f0dffb02SXin LiLabel_2: 133*f0dffb02SXin Li .line 23 134*f0dffb02SXin Li .line 24 135*f0dffb02SXin Li 26| return-void 136*f0dffb02SXin LiLabel_3: 137*f0dffb02SXin Li .line 16 138*f0dffb02SXin Li 27| move-exception v10 139*f0dffb02SXin Li 28| move-object v8, v10 140*f0dffb02SXin Li .try_begin_2 141*f0dffb02SXin Li .line 17 142*f0dffb02SXin Li .local v8, "ex", B 143*f0dffb02SXin Li 29| sget-object v10, java.lang.System.out 144*f0dffb02SXin Li 31| const-string v11, "catch: B\n" 145*f0dffb02SXin Li 33| const/4 v12, #+0 (0x00000000 | 0.00000) 146*f0dffb02SXin Li 34| new-array v12, v12, java.lang.Object[] 147*f0dffb02SXin Li 36| invoke-virtual {v10,v11,v12}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 148*f0dffb02SXin Li .try_end_2 149*f0dffb02SXin Li catch(A) : Label_4 150*f0dffb02SXin Li catch(...) : Label_5 151*f0dffb02SXin Li 39| move-result-object v10 152*f0dffb02SXin Li 40| goto/16 Label_1 153*f0dffb02SXin LiLabel_4: 154*f0dffb02SXin Li .line 19 155*f0dffb02SXin Li .end_local v8 156*f0dffb02SXin Li 42| move-exception v10 157*f0dffb02SXin Li 43| move-object v8, v10 158*f0dffb02SXin Li .try_begin_3 159*f0dffb02SXin Li .line 20 160*f0dffb02SXin Li .local v8, "ex", A 161*f0dffb02SXin Li 44| sget-object v10, java.lang.System.out 162*f0dffb02SXin Li 46| const-string v11, "catch: A\n" 163*f0dffb02SXin Li 48| const/4 v12, #+0 (0x00000000 | 0.00000) 164*f0dffb02SXin Li 49| new-array v12, v12, java.lang.Object[] 165*f0dffb02SXin Li 51| invoke-virtual {v10,v11,v12}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 166*f0dffb02SXin Li .try_end_3 167*f0dffb02SXin Li catch(...) : Label_5 168*f0dffb02SXin Li 54| move-result-object v10 169*f0dffb02SXin Li .line 22 170*f0dffb02SXin Li 55| sget-object v10, java.lang.System.out 171*f0dffb02SXin Li 57| const-string v11, "finally\n" 172*f0dffb02SXin Li 59| const/4 v12, #+0 (0x00000000 | 0.00000) 173*f0dffb02SXin Li 60| new-array v12, v12, java.lang.Object[] 174*f0dffb02SXin Li 62| invoke-virtual {v10,v11,v12}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 175*f0dffb02SXin Li 65| move-result-object v10 176*f0dffb02SXin Li .line 23 177*f0dffb02SXin Li 66| goto/16 Label_2 178*f0dffb02SXin LiLabel_5: 179*f0dffb02SXin Li .line 22 180*f0dffb02SXin Li .end_local v8 181*f0dffb02SXin Li 68| move-exception v10 182*f0dffb02SXin Li 69| move-object v9, v10 183*f0dffb02SXin Li 70| sget-object v10, java.lang.System.out 184*f0dffb02SXin Li 72| const-string v11, "finally\n" 185*f0dffb02SXin Li 74| const/4 v12, #+0 (0x00000000 | 0.00000) 186*f0dffb02SXin Li 75| new-array v12, v12, java.lang.Object[] 187*f0dffb02SXin Li 77| invoke-virtual {v10,v11,v12}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 188*f0dffb02SXin Li 80| move-result-object v10 189*f0dffb02SXin Li 81| move-object v10, v9 190*f0dffb02SXin Li 82| throw v10 191*f0dffb02SXin Li} 192