1*f0dffb02SXin Li 2*f0dffb02SXin Limethod Main.getHandleForStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle 3*f0dffb02SXin Li{ 4*f0dffb02SXin Li 0| move-object/16 v13, v25 5*f0dffb02SXin Li 3| move-object/16 v14, v26 6*f0dffb02SXin Li 6| move-object/16 v15, v27 7*f0dffb02SXin Li 9| move-object/16 v12, v13 8*f0dffb02SXin Li 12| move-object/16 v13, v14 9*f0dffb02SXin Li 15| move-object/16 v14, v15 10*f0dffb02SXin Li 18| move-object/16 v11, v12 11*f0dffb02SXin Li 21| move-object/16 v12, v13 12*f0dffb02SXin Li 24| move-object/16 v13, v14 13*f0dffb02SXin Li 27| invoke-static {}, java.lang.invoke.MethodHandles.publicLookup():java.lang.invoke.MethodHandles$Lookup 14*f0dffb02SXin Li 30| move-result-object v9 15*f0dffb02SXin Li 31| invoke-virtual {v9,v11,v12,v13}, java.lang.invoke.MethodHandles$Lookup.findStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle 16*f0dffb02SXin Li 34| move-result-object v10 17*f0dffb02SXin Li 35| return-object v10 18*f0dffb02SXin Li} 19*f0dffb02SXin Li 20*f0dffb02SXin Limethod Main.getHandleForVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle 21*f0dffb02SXin Li{ 22*f0dffb02SXin Li 0| move-object/16 v13, v25 23*f0dffb02SXin Li 3| move-object/16 v14, v26 24*f0dffb02SXin Li 6| move-object/16 v15, v27 25*f0dffb02SXin Li 9| move-object/16 v12, v13 26*f0dffb02SXin Li 12| move-object/16 v13, v14 27*f0dffb02SXin Li 15| move-object/16 v14, v15 28*f0dffb02SXin Li 18| move-object/16 v11, v12 29*f0dffb02SXin Li 21| move-object/16 v12, v13 30*f0dffb02SXin Li 24| move-object/16 v13, v14 31*f0dffb02SXin Li 27| invoke-static {}, java.lang.invoke.MethodHandles.publicLookup():java.lang.invoke.MethodHandles$Lookup 32*f0dffb02SXin Li 30| move-result-object v9 33*f0dffb02SXin Li 31| invoke-virtual {v9,v11,v12,v13}, java.lang.invoke.MethodHandles$Lookup.findVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle 34*f0dffb02SXin Li 34| move-result-object v10 35*f0dffb02SXin Li 35| return-object v10 36*f0dffb02SXin Li} 37*f0dffb02SXin Li 38*f0dffb02SXin Limethod Main.getLongCompareToHandle():java.lang.invoke.MethodHandle 39*f0dffb02SXin Li{ 40*f0dffb02SXin Li 0| new-instance v0, java.lang.Long 41*f0dffb02SXin Li 2| const-wide v1:v2, #+0 (0x0000000000000000 | 0.00000) 42*f0dffb02SXin Li 7| invoke-direct {v0,v1,v2}, java.lang.Long.<init>(long):void 43*f0dffb02SXin Li 10| invoke-virtual {v0}, java.lang.Object.getClass():java.lang.Class 44*f0dffb02SXin Li 13| move-result-object v0 45*f0dffb02SXin Li 14| sget-object v1, java.lang.Integer.TYPE 46*f0dffb02SXin Li 16| invoke-static {v1,v0}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType 47*f0dffb02SXin Li 19| move-result-object v2 48*f0dffb02SXin Li 20| const-string v3, "compareTo" 49*f0dffb02SXin Li 22| invoke-static {v0,v3,v2}, Main.getHandleForVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle 50*f0dffb02SXin Li 25| move-result-object v0 51*f0dffb02SXin Li 26| return-object v0 52*f0dffb02SXin Li} 53*f0dffb02SXin Li 54*f0dffb02SXin Limethod Main.getStringConcatHandle():java.lang.invoke.MethodHandle 55*f0dffb02SXin Li{ 56*f0dffb02SXin Li 0| const-string v0, "concat" 57*f0dffb02SXin Li 2| invoke-virtual {v0}, java.lang.Object.getClass():java.lang.Class 58*f0dffb02SXin Li 5| move-result-object v1 59*f0dffb02SXin Li 6| invoke-static {v1,v1}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType 60*f0dffb02SXin Li 9| move-result-object v2 61*f0dffb02SXin Li 10| invoke-static {v1,v0,v2}, Main.getHandleForVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle 62*f0dffb02SXin Li 13| move-result-object v0 63*f0dffb02SXin Li 14| return-object v0 64*f0dffb02SXin Li} 65*f0dffb02SXin Li 66*f0dffb02SXin Limethod Main.getStringValueOfLongHandle():java.lang.invoke.MethodHandle 67*f0dffb02SXin Li{ 68*f0dffb02SXin Li 0| sget-object v0, java.lang.Long.TYPE 69*f0dffb02SXin Li 2| const-string v1, "valueOf" 70*f0dffb02SXin Li 4| invoke-virtual {v1}, java.lang.Object.getClass():java.lang.Class 71*f0dffb02SXin Li 7| move-result-object v2 72*f0dffb02SXin Li 8| invoke-static {v2,v0}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType 73*f0dffb02SXin Li 11| move-result-object v3 74*f0dffb02SXin Li 12| invoke-static {v2,v1,v3}, Main.getHandleForStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle 75*f0dffb02SXin Li 15| move-result-object v0 76*f0dffb02SXin Li 16| return-object v0 77*f0dffb02SXin Li} 78*f0dffb02SXin Li 79*f0dffb02SXin Limethod Main.getStringValueOfObjectHandle():java.lang.invoke.MethodHandle 80*f0dffb02SXin Li{ 81*f0dffb02SXin Li 0| new-instance v0, java.lang.Object 82*f0dffb02SXin Li 2| invoke-direct {v0}, java.lang.Object.<init>():void 83*f0dffb02SXin Li 5| invoke-virtual {v0}, java.lang.Object.getClass():java.lang.Class 84*f0dffb02SXin Li 8| move-result-object v0 85*f0dffb02SXin Li 9| const-string v1, "valueOf" 86*f0dffb02SXin Li 11| invoke-virtual {v1}, java.lang.Object.getClass():java.lang.Class 87*f0dffb02SXin Li 14| move-result-object v2 88*f0dffb02SXin Li 15| invoke-static {v2,v0}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType 89*f0dffb02SXin Li 18| move-result-object v3 90*f0dffb02SXin Li 19| invoke-static {v2,v1,v3}, Main.getHandleForStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle 91*f0dffb02SXin Li 22| move-result-object v0 92*f0dffb02SXin Li 23| return-object v0 93*f0dffb02SXin Li} 94*f0dffb02SXin Li 95*f0dffb02SXin Limethod Main.main(java.lang.String[]):void 96*f0dffb02SXin Li{ 97*f0dffb02SXin Li 0| move-object/16 v15, v27 98*f0dffb02SXin Li 3| move-object/16 v14, v15 99*f0dffb02SXin Li 6| move-object/16 v13, v14 100*f0dffb02SXin Li 9| invoke-static {}, Main.getStringConcatHandle():java.lang.invoke.MethodHandle 101*f0dffb02SXin Li 12| move-result-object v9 102*f0dffb02SXin Li 13| const-string v10, "[String1]" 103*f0dffb02SXin Li 15| const-string v11, "+[String2]" 104*f0dffb02SXin Li 17| invoke-polymorphic {v9,v10,v11}, java.lang.invoke.MethodHandle.invokeExact(java.lang.Object[]):java.lang.Object, (java.lang.String, java.lang.String):java.lang.String 105*f0dffb02SXin Li 21| move-result-object v12 106*f0dffb02SXin Li 22| sget-object v13, java.lang.System.out 107*f0dffb02SXin Li 24| invoke-virtual {v13,v12}, java.io.PrintStream.println(java.lang.String):void 108*f0dffb02SXin Li 27| invoke-static {}, Main.getStringValueOfObjectHandle():java.lang.invoke.MethodHandle 109*f0dffb02SXin Li 30| move-result-object v9 110*f0dffb02SXin Li 31| const-string v10, "[String1]" 111*f0dffb02SXin Li 33| invoke-polymorphic {v9,v10}, java.lang.invoke.MethodHandle.invokeExact(java.lang.Object[]):java.lang.Object, (java.lang.Object):java.lang.String 112*f0dffb02SXin Li 37| move-result-object v12 113*f0dffb02SXin Li 38| sget-object v13, java.lang.System.out 114*f0dffb02SXin Li 40| invoke-virtual {v13,v12}, java.io.PrintStream.println(java.lang.String):void 115*f0dffb02SXin Li 43| invoke-static {}, Main.getStringConcatHandle():java.lang.invoke.MethodHandle 116*f0dffb02SXin Li 46| move-result-object v9 117*f0dffb02SXin Li 47| const-string v10, "[String1]" 118*f0dffb02SXin Li 49| const-string v11, "+[String2]" 119*f0dffb02SXin Li 51| invoke-polymorphic {v9,v10,v11}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Object, java.lang.Object):java.lang.String 120*f0dffb02SXin Li 55| move-result-object v12 121*f0dffb02SXin Li 56| sget-object v13, java.lang.System.out 122*f0dffb02SXin Li 58| invoke-virtual {v13,v12}, java.io.PrintStream.println(java.lang.String):void 123*f0dffb02SXin Li 61| invoke-static {}, Main.getStringValueOfLongHandle():java.lang.invoke.MethodHandle 124*f0dffb02SXin Li 64| move-result-object v9 125*f0dffb02SXin Li 65| const-wide v10:v11, #+42 (0x000000000000002a | 2.07508e-322) 126*f0dffb02SXin Li 70| invoke-polymorphic {v9,v10,v11}, java.lang.invoke.MethodHandle.invokeExact(java.lang.Object[]):java.lang.Object, (long):java.lang.String 127*f0dffb02SXin Li 74| move-result-object v12 128*f0dffb02SXin Li 75| sget-object v13, java.lang.System.out 129*f0dffb02SXin Li 77| invoke-virtual {v13,v12}, java.io.PrintStream.println(java.lang.String):void 130*f0dffb02SXin Li 80| const v10, #+40 (0x00000028 | 5.60519e-44) 131*f0dffb02SXin Li 83| invoke-polymorphic {v9,v10}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (int):java.lang.String 132*f0dffb02SXin Li 87| move-result-object v12 133*f0dffb02SXin Li 88| sget-object v13, java.lang.System.out 134*f0dffb02SXin Li 90| invoke-virtual {v13,v12}, java.io.PrintStream.println(java.lang.String):void 135*f0dffb02SXin Li 93| new-instance v10, java.lang.Long 136*f0dffb02SXin Li 95| const-wide v11:v12, #+43 (0x000000000000002b | 2.12448e-322) 137*f0dffb02SXin Li 100| invoke-direct {v10,v11,v12}, java.lang.Long.<init>(long):void 138*f0dffb02SXin Li 103| invoke-polymorphic {v9,v10}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long):java.lang.String 139*f0dffb02SXin Li 107| move-result-object v12 140*f0dffb02SXin Li 108| sget-object v13, java.lang.System.out 141*f0dffb02SXin Li 110| invoke-virtual {v13,v12}, java.io.PrintStream.println(java.lang.String):void 142*f0dffb02SXin Li 113| new-instance v10, java.lang.Integer 143*f0dffb02SXin Li 115| const v11, #+44 (0x0000002c | 6.16571e-44) 144*f0dffb02SXin Li 118| invoke-direct {v10,v11}, java.lang.Integer.<init>(int):void 145*f0dffb02SXin Li 121| invoke-polymorphic {v9,v10}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Integer):java.lang.String 146*f0dffb02SXin Li 125| move-result-object v12 147*f0dffb02SXin Li 126| sget-object v13, java.lang.System.out 148*f0dffb02SXin Li 128| invoke-virtual {v13,v12}, java.io.PrintStream.println(java.lang.String):void 149*f0dffb02SXin Li 131| invoke-static {}, Main.getLongCompareToHandle():java.lang.invoke.MethodHandle 150*f0dffb02SXin Li 134| move-result-object v9 151*f0dffb02SXin Li 135| new-instance v10, java.lang.Long 152*f0dffb02SXin Li 137| const-wide v11:v12, #+43 (0x000000000000002b | 2.12448e-322) 153*f0dffb02SXin Li 142| invoke-direct {v10,v11,v12}, java.lang.Long.<init>(long):void 154*f0dffb02SXin Li 145| invoke-polymorphic {v9,v10,v10}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, java.lang.Long):int 155*f0dffb02SXin Li 149| move-result v12 156*f0dffb02SXin Li 150| sget-object v13, java.lang.System.out 157*f0dffb02SXin Li 152| invoke-virtual {v13,v12}, java.io.PrintStream.println(int):void 158*f0dffb02SXin Li 155| const-wide v11:v12, #+44 (0x000000000000002c | 2.17389e-322) 159*f0dffb02SXin Li 160| invoke-polymorphic {v9,v10,v11,v12}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, long):int 160*f0dffb02SXin Li 164| move-result v12 161*f0dffb02SXin Li 165| sget-object v13, java.lang.System.out 162*f0dffb02SXin Li 167| invoke-virtual {v13,v12}, java.io.PrintStream.println(int):void 163*f0dffb02SXin Li 170| invoke-polymorphic/range {v16..v21}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, long):int 164*f0dffb02SXin Li 174| invoke-polymorphic/range {v12..v52}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, long):int 165*f0dffb02SXin Li 178| return-void 166*f0dffb02SXin Li} 167