| |
| method Main.getHandleForStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle |
| { |
| 0| invoke-static {}, java.lang.invoke.MethodHandles.publicLookup():java.lang.invoke.MethodHandles$Lookup |
| 3| move-result-object v0 |
| 4| invoke-virtual {v0,v2,v3,v4}, java.lang.invoke.MethodHandles$Lookup.findStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle |
| 7| move-result-object v1 |
| 8| return-object v1 |
| } |
| |
| method Main.getHandleForVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle |
| { |
| 0| invoke-static {}, java.lang.invoke.MethodHandles.publicLookup():java.lang.invoke.MethodHandles$Lookup |
| 3| move-result-object v0 |
| 4| invoke-virtual {v0,v2,v3,v4}, java.lang.invoke.MethodHandles$Lookup.findVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle |
| 7| move-result-object v1 |
| 8| return-object v1 |
| } |
| |
| method Main.getLongCompareToHandle():java.lang.invoke.MethodHandle |
| { |
| 0| new-instance v0, java.lang.Long |
| 2| const-wide v1:v2, #+0 (0x0000000000000000 | 0.00000) |
| 7| invoke-direct {v0,v1,v2}, java.lang.Long.<init>(long):void |
| 10| invoke-virtual {v0}, java.lang.Object.getClass():java.lang.Class |
| 13| move-result-object v0 |
| 14| sget-object v1, java.lang.Integer.TYPE |
| 16| invoke-static {v1,v0}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType |
| 19| move-result-object v2 |
| 20| const-string v3, "compareTo" |
| 22| invoke-static {v0,v3,v2}, Main.getHandleForVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle |
| 25| move-result-object v0 |
| 26| return-object v0 |
| } |
| |
| method Main.getStringConcatHandle():java.lang.invoke.MethodHandle |
| { |
| 0| const-string v0, "concat" |
| 2| invoke-virtual {v0}, java.lang.Object.getClass():java.lang.Class |
| 5| move-result-object v1 |
| 6| invoke-static {v1,v1}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType |
| 9| move-result-object v2 |
| 10| invoke-static {v1,v0,v2}, Main.getHandleForVirtual(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle |
| 13| move-result-object v0 |
| 14| return-object v0 |
| } |
| |
| method Main.getStringValueOfLongHandle():java.lang.invoke.MethodHandle |
| { |
| 0| sget-object v0, java.lang.Long.TYPE |
| 2| const-string v1, "valueOf" |
| 4| invoke-virtual {v1}, java.lang.Object.getClass():java.lang.Class |
| 7| move-result-object v2 |
| 8| invoke-static {v2,v0}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType |
| 11| move-result-object v3 |
| 12| invoke-static {v2,v1,v3}, Main.getHandleForStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle |
| 15| move-result-object v0 |
| 16| return-object v0 |
| } |
| |
| method Main.getStringValueOfObjectHandle():java.lang.invoke.MethodHandle |
| { |
| 0| new-instance v0, java.lang.Object |
| 2| invoke-direct {v0}, java.lang.Object.<init>():void |
| 5| invoke-virtual {v0}, java.lang.Object.getClass():java.lang.Class |
| 8| move-result-object v0 |
| 9| const-string v1, "valueOf" |
| 11| invoke-virtual {v1}, java.lang.Object.getClass():java.lang.Class |
| 14| move-result-object v2 |
| 15| invoke-static {v2,v0}, java.lang.invoke.MethodType.methodType(java.lang.Class, java.lang.Class):java.lang.invoke.MethodType |
| 18| move-result-object v3 |
| 19| invoke-static {v2,v1,v3}, Main.getHandleForStatic(java.lang.Class, java.lang.String, java.lang.invoke.MethodType):java.lang.invoke.MethodHandle |
| 22| move-result-object v0 |
| 23| return-object v0 |
| } |
| |
| method Main.main(java.lang.String[]):void |
| { |
| 0| invoke-static {}, Main.getStringConcatHandle():java.lang.invoke.MethodHandle |
| 3| move-result-object v0 |
| 4| const-string v1, "[String1]" |
| 6| const-string v2, "+[String2]" |
| 8| invoke-polymorphic {v0,v1,v2}, java.lang.invoke.MethodHandle.invokeExact(java.lang.Object[]):java.lang.Object, (java.lang.String, java.lang.String):java.lang.String |
| 12| move-result-object v3 |
| 13| sget-object v4, java.lang.System.out |
| 15| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void |
| 18| invoke-static {}, Main.getStringValueOfObjectHandle():java.lang.invoke.MethodHandle |
| 21| move-result-object v0 |
| 22| const-string v1, "[String1]" |
| 24| invoke-polymorphic {v0,v1}, java.lang.invoke.MethodHandle.invokeExact(java.lang.Object[]):java.lang.Object, (java.lang.Object):java.lang.String |
| 28| move-result-object v3 |
| 29| sget-object v4, java.lang.System.out |
| 31| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void |
| 34| invoke-static {}, Main.getStringConcatHandle():java.lang.invoke.MethodHandle |
| 37| move-result-object v0 |
| 38| const-string v1, "[String1]" |
| 40| const-string v2, "+[String2]" |
| 42| invoke-polymorphic {v0,v1,v2}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Object, java.lang.Object):java.lang.String |
| 46| move-result-object v3 |
| 47| sget-object v4, java.lang.System.out |
| 49| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void |
| 52| invoke-static {}, Main.getStringValueOfLongHandle():java.lang.invoke.MethodHandle |
| 55| move-result-object v0 |
| 56| const-wide v1:v2, #+42 (0x000000000000002a | 2.07508e-322) |
| 61| invoke-polymorphic {v0,v1,v2}, java.lang.invoke.MethodHandle.invokeExact(java.lang.Object[]):java.lang.Object, (long):java.lang.String |
| 65| move-result-object v3 |
| 66| sget-object v4, java.lang.System.out |
| 68| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void |
| 71| const v1, #+40 (0x00000028 | 5.60519e-44) |
| 74| invoke-polymorphic {v0,v1}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (int):java.lang.String |
| 78| move-result-object v3 |
| 79| sget-object v4, java.lang.System.out |
| 81| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void |
| 84| new-instance v1, java.lang.Long |
| 86| const-wide v2:v3, #+43 (0x000000000000002b | 2.12448e-322) |
| 91| invoke-direct {v1,v2,v3}, java.lang.Long.<init>(long):void |
| 94| invoke-polymorphic {v0,v1}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long):java.lang.String |
| 98| move-result-object v3 |
| 99| sget-object v4, java.lang.System.out |
| 101| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void |
| 104| new-instance v1, java.lang.Integer |
| 106| const v2, #+44 (0x0000002c | 6.16571e-44) |
| 109| invoke-direct {v1,v2}, java.lang.Integer.<init>(int):void |
| 112| invoke-polymorphic {v0,v1}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Integer):java.lang.String |
| 116| move-result-object v3 |
| 117| sget-object v4, java.lang.System.out |
| 119| invoke-virtual {v4,v3}, java.io.PrintStream.println(java.lang.String):void |
| 122| invoke-static {}, Main.getLongCompareToHandle():java.lang.invoke.MethodHandle |
| 125| move-result-object v0 |
| 126| new-instance v1, java.lang.Long |
| 128| const-wide v2:v3, #+43 (0x000000000000002b | 2.12448e-322) |
| 133| invoke-direct {v1,v2,v3}, java.lang.Long.<init>(long):void |
| 136| invoke-polymorphic {v0,v1,v1}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, java.lang.Long):int |
| 140| move-result v3 |
| 141| sget-object v4, java.lang.System.out |
| 143| invoke-virtual {v4,v3}, java.io.PrintStream.println(int):void |
| 146| const-wide v2:v3, #+44 (0x000000000000002c | 2.17389e-322) |
| 151| invoke-polymorphic {v0,v1,v2,v3}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, long):int |
| 155| move-result v3 |
| 156| sget-object v4, java.lang.System.out |
| 158| invoke-virtual {v4,v3}, java.io.PrintStream.println(int):void |
| 161| invoke-polymorphic/range {v7..v12}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, long):int |
| 165| invoke-polymorphic/range {v3..v43}, java.lang.invoke.MethodHandle.invoke(java.lang.Object[]):java.lang.Object, (java.lang.Long, long):int |
| 169| return-void |
| } |