diff options
| author | 2018-05-25 16:18:40 +0000 | |
|---|---|---|
| committer | 2018-05-25 16:18:40 +0000 | |
| commit | 11a482dfa59affa094179a966f1a553660bb5ae2 (patch) | |
| tree | 1dbbcd3c5554421df3d62a87bd8534ae214a6bea | |
| parent | f507810d6fad70fb4a45797d9eefd2c20740191c (diff) | |
| parent | 0f6cc7fc009a006f0dcecca67e3a13c94d503f3f (diff) | |
Merge "Dexdump: fix type printing for call sites"
| -rw-r--r-- | dexdump/dexdump.cc | 5 | ||||
| -rw-r--r-- | test/dexdump/invoke-custom.dex | bin | 8984 -> 31732 bytes | |||
| -rw-r--r-- | test/dexdump/invoke-custom.lst | 178 | ||||
| -rw-r--r-- | test/dexdump/invoke-custom.txt | 6610 | ||||
| -rw-r--r-- | test/dexdump/invoke-custom.xml | 844 |
5 files changed, 6108 insertions, 1529 deletions
diff --git a/dexdump/dexdump.cc b/dexdump/dexdump.cc index f5a13f0920..85778b6411 100644 --- a/dexdump/dexdump.cc +++ b/dexdump/dexdump.cc @@ -1773,9 +1773,8 @@ static void dumpCallSite(const DexFile* pDexFile, u4 idx) { case EncodedArrayValueIterator::ValueType::kType: { type = "Class"; dex::TypeIndex type_idx = static_cast<dex::TypeIndex>(it.GetJavaValue().i); - const DexFile::ClassDef* class_def = pDexFile->FindClassDef(type_idx); - value = pDexFile->GetClassDescriptor(*class_def); - value = descriptorClassToDot(value.c_str()).get(); + const DexFile::TypeId& type_id = pDexFile->GetTypeId(type_idx); + value = pDexFile->GetTypeDescriptor(type_id); break; } case EncodedArrayValueIterator::ValueType::kField: diff --git a/test/dexdump/invoke-custom.dex b/test/dexdump/invoke-custom.dex Binary files differindex dab6f0f0d6..c7de9dedf0 100644 --- a/test/dexdump/invoke-custom.dex +++ b/test/dexdump/invoke-custom.dex diff --git a/test/dexdump/invoke-custom.lst b/test/dexdump/invoke-custom.lst index 9037c28990..e481d2abcd 100644 --- a/test/dexdump/invoke-custom.lst +++ b/test/dexdump/invoke-custom.lst @@ -1,35 +1,145 @@ #invoke-custom.dex -0x000009a0 8 invokecustom.Super <init> ()V InvokeCustom.java 29 -0x000009b8 16 invokecustom.Super targetMethodTest4 ()V InvokeCustom.java 31 -0x000009d8 8 invokecustom.InvokeCustom <clinit> ()V InvokeCustom.java 102 -0x000009f0 14 invokecustom.InvokeCustom <init> ()V InvokeCustom.java 39 -0x00000a10 74 invokecustom.InvokeCustom <init> (I)V InvokeCustom.java 40 -0x00000a6c 72 invokecustom.InvokeCustom bsmCreateCallSite (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite; InvokeCustom.java 160 -0x00000ac4 58 invokecustom.InvokeCustom bsmLookupStatic (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; InvokeCustom.java 142 -0x00000b10 164 invokecustom.InvokeCustom bsmLookupStaticWithExtraArgs (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IJFD)Ljava/lang/invoke/CallSite; InvokeCustom.java 151 -0x00000bc4 270 invokecustom.InvokeCustom bsmLookupTest9 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite; InvokeCustom.java 170 -0x00000ce4 164 invokecustom.InvokeCustom checkFieldTest9 (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V InvokeCustom.java 120 -0x00000d98 160 invokecustom.InvokeCustom checkStaticFieldTest9 (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V InvokeCustom.java 107 -0x00000e48 22 invokecustom.InvokeCustom lambda$lambdaTest$0 (Ljava/lang/String;)Z InvokeCustom.java 192 -0x00000e70 142 invokecustom.InvokeCustom lambdaTest ()V InvokeCustom.java 191 -0x00000f10 56 invokecustom.InvokeCustom main ([Ljava/lang/String;)V InvokeCustom.java -1 -0x00000f58 16 invokecustom.InvokeCustom targetMethodTest1 ()V InvokeCustom.java 45 -0x00000f78 92 invokecustom.InvokeCustom targetMethodTest2 (ZBCSIFJDLjava/lang/String;)V InvokeCustom.java 50 -0x00000fe4 16 invokecustom.InvokeCustom targetMethodTest3 ()V InvokeCustom.java 62 -0x00001004 166 invokecustom.InvokeCustom targetMethodTest5 (III)I InvokeCustom.java 72 -0x000010bc 170 invokecustom.InvokeCustom targetMethodTest6 (JJJ)J InvokeCustom.java 81 -0x00001178 172 invokecustom.InvokeCustom targetMethodTest7 (FFD)D InvokeCustom.java 90 -0x00001234 50 invokecustom.InvokeCustom targetMethodTest8 (Ljava/lang/String;)V InvokeCustom.java 99 -0x00001278 16 invokecustom.InvokeCustom targetMethodTest9 ()V InvokeCustom.java 133 -0x00001298 8 invokecustom.InvokeCustom test1 ()V InvokeCustom.java -1 -0x000012b0 54 invokecustom.InvokeCustom test2 ()V InvokeCustom.java -1 -0x000012f8 8 invokecustom.InvokeCustom test3 ()V InvokeCustom.java -1 -0x00001310 18 invokecustom.InvokeCustom test4 ()V InvokeCustom.java -1 -0x00001334 70 invokecustom.InvokeCustom test5 ()V InvokeCustom.java -1 -0x0000138c 88 invokecustom.InvokeCustom test6 ()V InvokeCustom.java -1 -0x000013f4 80 invokecustom.InvokeCustom test7 ()V InvokeCustom.java -1 -0x00001454 32 invokecustom.InvokeCustom test8 ()V InvokeCustom.java -1 -0x00001484 8 invokecustom.InvokeCustom test9 ()V InvokeCustom.java -1 -0x0000149c 54 invokecustom.InvokeCustom helperMethodTest9 ()V InvokeCustom.java 129 -0x000014e4 16 invokecustom.InvokeCustom run ()V InvokeCustom.java 137 -0x00001504 16 invokecustom.InvokeCustom targetMethodTest4 ()V InvokeCustom.java 68 +0x00001b28 8 TestBadBootstrapArguments$TestersConstantCallSite <init> (Ljava/lang/invoke/MethodHandle;)V TestBadBootstrapArguments.java 449 +0x00002554 8 TestBase <init> ()V TestBase.java 19 +0x0000256c 68 TestBase assertEquals (BB)V TestBase.java 27 +0x000025c0 68 TestBase assertEquals (CC)V TestBase.java 34 +0x00002614 72 TestBase assertEquals (DD)V TestBase.java 69 +0x0000266c 72 TestBase assertEquals (FF)V TestBase.java 62 +0x000026c4 68 TestBase assertEquals (II)V TestBase.java 48 +0x00002774 72 TestBase assertEquals (JJ)V TestBase.java 55 +0x00002718 76 TestBase assertEquals (Ljava/lang/Object;Ljava/lang/Object;)V TestBase.java 76 +0x000027cc 68 TestBase assertEquals (SS)V TestBase.java 41 +0x00002820 76 TestBase assertNotEquals (Ljava/lang/Object;Ljava/lang/Object;)V TestBase.java 82 +0x0000287c 16 TestBase assertNotReached ()V TestBase.java 88 +0x0000289c 52 TestBase assertTrue (Z)V TestBase.java 21 +0x000028e0 22 TestBase fail ()V TestBase.java 92 +0x00002acc 8 TestInvocationKinds$Widget <init> (I)V TestInvocationKinds.java 177 +0x00002ef8 8 TestInvokeCustomWithConcurrentThreads$1 <init> ()V TestInvokeCustomWithConcurrentThreads.java 33 +0x00002eb0 26 TestInvokeCustomWithConcurrentThreads$1 initialValue ()Ljava/lang/Integer; TestInvokeCustomWithConcurrentThreads.java 36 +0x00002edc 10 TestInvokeCustomWithConcurrentThreads$1 initialValue ()Ljava/lang/Object; TestInvokeCustomWithConcurrentThreads.java 33 +0x00003fd8 8 UnrelatedBSM <init> ()V UnrelatedBSM.java 23 +0x00003fb4 20 UnrelatedBSM bsm (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/CallSite; UnrelatedBSM.java 27 +0x00001910 8 Main <init> ()V Main.java 21 +0x00001928 132 Main TestLinkerMethodMinimalArguments ()V Main.java 49 +0x000019e0 44 Main TestLinkerMethodMultipleArgumentTypes ()V Main.java 42 +0x00001a1c 156 Main TestUninitializedCallSite ()V Main.java 24 +0x00001ae0 56 Main main ([Ljava/lang/String;)V Main.java 78 +0x00001d74 8 TestBadBootstrapArguments <init> ()V TestBadBootstrapArguments.java 27 +0x00001d8c 16 TestBadBootstrapArguments boxingArguments ()V TestBadBootstrapArguments.java 348 +0x00001bc4 170 TestBadBootstrapArguments bsm (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ILjava/lang/String;)Ljava/lang/invoke/CallSite; TestBadBootstrapArguments.java 35 +0x00001c80 90 TestBadBootstrapArguments bsmDJ (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;DJ)Ljava/lang/invoke/CallSite; TestBadBootstrapArguments.java 270 +0x00001cec 90 TestBadBootstrapArguments bsmDoubleLong (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Double;Ljava/lang/Long;)Ljava/lang/invoke/CallSite; TestBadBootstrapArguments.java 314 +0x00001b6c 26 TestBadBootstrapArguments bsmReturningInteger (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Integer; TestBadBootstrapArguments.java 425 +0x00001b98 26 TestBadBootstrapArguments bsmReturningObject (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Object; TestBadBootstrapArguments.java 402 +0x00001b40 28 TestBadBootstrapArguments bsmReturningTestersConstantCallsite (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)LTestBadBootstrapArguments$TestersConstantCallSite; TestBadBootstrapArguments.java 455 +0x00001dac 16 TestBadBootstrapArguments bsmReturningVoid (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V TestBadBootstrapArguments.java 380 +0x00001d58 10 TestBadBootstrapArguments bsmZBCS (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ZBCS)Ljava/lang/invoke/CallSite; TestBadBootstrapArguments.java 227 +0x00001dcc 16 TestBadBootstrapArguments extraArguments ()V TestBadBootstrapArguments.java 158 +0x00001dec 16 TestBadBootstrapArguments happy ()V TestBadBootstrapArguments.java 74 +0x00001e0c 8 TestBadBootstrapArguments integerReturnType ()V TestBadBootstrapArguments.java 444 +0x00001e24 8 TestBadBootstrapArguments invokeBoxingArguments ()V TestBadBootstrapArguments.java 344 +0x00001e3c 8 TestBadBootstrapArguments invokeExtraArguments ()V TestBadBootstrapArguments.java 154 +0x00001e54 8 TestBadBootstrapArguments invokeHappy ()V TestBadBootstrapArguments.java 70 +0x00001e6c 8 TestBadBootstrapArguments invokeIntegerReturnType ()V TestBadBootstrapArguments.java 440 +0x00001e84 8 TestBadBootstrapArguments invokeMissingParameterTypes ()V TestBadBootstrapArguments.java 124 +0x00001e9c 8 TestBadBootstrapArguments invokeNarrowArguments ()V TestBadBootstrapArguments.java 256 +0x00001eb4 8 TestBadBootstrapArguments invokeObjectReturnType ()V TestBadBootstrapArguments.java 417 +0x00001ecc 8 TestBadBootstrapArguments invokeViaCustomCallSiteClass ()V TestBadBootstrapArguments.java 469 +0x00001ee4 8 TestBadBootstrapArguments invokeVoidReturnType ()V TestBadBootstrapArguments.java 394 +0x00001efc 8 TestBadBootstrapArguments invokeWideningArguments ()V TestBadBootstrapArguments.java 300 +0x00001f14 8 TestBadBootstrapArguments invokeWideningBoxingArguments ()V TestBadBootstrapArguments.java 372 +0x00001f2c 8 TestBadBootstrapArguments invokeWrongArguments ()V TestBadBootstrapArguments.java 182 +0x00001f44 8 TestBadBootstrapArguments invokeWrongArgumentsAgain ()V TestBadBootstrapArguments.java 210 +0x00001f5c 8 TestBadBootstrapArguments invokeWrongParameterTypes ()V TestBadBootstrapArguments.java 98 +0x00001f74 16 TestBadBootstrapArguments missingParameterTypes ()V TestBadBootstrapArguments.java 128 +0x00001f94 8 TestBadBootstrapArguments narrowArguments ()V TestBadBootstrapArguments.java 260 +0x00001fac 8 TestBadBootstrapArguments objectReturnType ()V TestBadBootstrapArguments.java 421 +0x00001fc4 16 TestBadBootstrapArguments sayHello ()V TestBadBootstrapArguments.java 473 +0x00001fe4 1058 TestBadBootstrapArguments test ()V TestBadBootstrapArguments.java 477 +0x0000249c 8 TestBadBootstrapArguments voidReturnType ()V TestBadBootstrapArguments.java 398 +0x000024b4 16 TestBadBootstrapArguments wideningArguments ()V TestBadBootstrapArguments.java 304 +0x000024d4 16 TestBadBootstrapArguments wideningBoxingArguments ()V TestBadBootstrapArguments.java 376 +0x000024f4 16 TestBadBootstrapArguments wrongArguments ()V TestBadBootstrapArguments.java 186 +0x00002514 16 TestBadBootstrapArguments wrongArgumentsAgain ()V TestBadBootstrapArguments.java 214 +0x00002534 16 TestBadBootstrapArguments wrongParameterTypes ()V TestBadBootstrapArguments.java 102 +0x000029d8 8 TestDynamicBootstrapArguments <clinit> ()V TestDynamicBootstrapArguments.java 27 +0x000029f0 8 TestDynamicBootstrapArguments <init> ()V TestDynamicBootstrapArguments.java 26 +0x00002970 86 TestDynamicBootstrapArguments bsm (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;J)Ljava/lang/invoke/CallSite; TestDynamicBootstrapArguments.java 36 +0x00002908 60 TestDynamicBootstrapArguments targetA100000000 (ILjava/lang/String;Ljava/lang/Double;)I TestDynamicBootstrapArguments.java 71 +0x00002a08 50 TestDynamicBootstrapArguments test ()V TestDynamicBootstrapArguments.java 86 +0x00002a4c 110 TestDynamicBootstrapArguments testCallSites ()V TestDynamicBootstrapArguments.java 80 +0x00002954 10 TestDynamicBootstrapArguments testDynamic (ILjava/lang/String;Ljava/lang/Double;)I TestDynamicBootstrapArguments.java 66 +0x00002cb4 8 TestInvocationKinds <init> ()V TestInvocationKinds.java 25 +0x00002b00 12 TestInvocationKinds getInstanceField (LTestInvocationKinds;)D TestInvocationKinds.java 117 +0x00002b38 10 TestInvocationKinds getStaticField ()I TestInvocationKinds.java 71 +0x00002b70 40 TestInvocationKinds lookupConstructor (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; TestInvocationKinds.java 183 +0x00002ba8 40 TestInvocationKinds lookupInstanceFieldGetter (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; TestInvocationKinds.java 101 +0x00002be0 42 TestInvocationKinds lookupInstanceFieldSetter (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; TestInvocationKinds.java 78 +0x00002c1c 32 TestInvocationKinds lookupStaticFieldGetter (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; TestInvocationKinds.java 32 +0x00002c4c 34 TestInvocationKinds lookupStaticFieldSetter (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; TestInvocationKinds.java 54 +0x00002c80 36 TestInvocationKinds lookupVirtual (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; TestInvocationKinds.java 146 +0x00002ae4 10 TestInvocationKinds makeWidget (I)LTestInvocationKinds$Widget; TestInvocationKinds.java 200 +0x00002b54 10 TestInvocationKinds maxIntegerValue (LTestInvocationKinds;II)I TestInvocationKinds.java 159 +0x00002ccc 16 TestInvocationKinds setInstanceField (LTestInvocationKinds;D)V TestInvocationKinds.java 94 +0x00002cec 8 TestInvocationKinds setStaticField (I)V TestInvocationKinds.java 48 +0x00002d04 48 TestInvocationKinds test ()V TestInvocationKinds.java 212 +0x00002d44 62 TestInvocationKinds testConstructor ()V TestInvocationKinds.java 205 +0x00002d94 88 TestInvocationKinds testInstanceFieldAccessors ()V TestInvocationKinds.java 133 +0x00002dfc 50 TestInvocationKinds testInvokeVirtual ()V TestInvocationKinds.java 168 +0x00002e40 94 TestInvocationKinds testStaticFieldAccessors ()V TestInvocationKinds.java 122 +0x00002b1c 12 TestInvocationKinds getMaxIntegerValue (II)I TestInvocationKinds.java 164 +0x00003074 74 TestInvokeCustomWithConcurrentThreads <clinit> ()V TestInvokeCustomWithConcurrentThreads.java 30 +0x000030d0 8 TestInvokeCustomWithConcurrentThreads <init> ()V TestInvokeCustomWithConcurrentThreads.java 52 +0x0000305c 6 TestInvokeCustomWithConcurrentThreads access$000 ()Ljava/util/concurrent/atomic/AtomicInteger; TestInvokeCustomWithConcurrentThreads.java 27 +0x00002f10 26 TestInvokeCustomWithConcurrentThreads getThreadIndex ()I TestInvokeCustomWithConcurrentThreads.java 55 +0x00002f88 194 TestInvokeCustomWithConcurrentThreads linkerMethod (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; TestInvokeCustomWithConcurrentThreads.java 87 +0x00002f3c 2 TestInvokeCustomWithConcurrentThreads notUsed (I)I TestInvokeCustomWithConcurrentThreads.java 59 +0x00002f50 40 TestInvokeCustomWithConcurrentThreads setCalled (I)I TestInvokeCustomWithConcurrentThreads.java 79 +0x0000310c 458 TestInvokeCustomWithConcurrentThreads test ()V TestInvokeCustomWithConcurrentThreads.java 107 +0x000030e8 18 TestInvokeCustomWithConcurrentThreads run ()V TestInvokeCustomWithConcurrentThreads.java 63 +0x00003414 8 TestLinkerMethodMinimalArguments <clinit> ()V TestLinkerMethodMinimalArguments.java 26 +0x0000342c 8 TestLinkerMethodMinimalArguments <init> ()V TestLinkerMethodMinimalArguments.java 25 +0x000032e8 46 TestLinkerMethodMinimalArguments _add (II)I TestLinkerMethodMinimalArguments.java 51 +0x00003328 10 TestLinkerMethodMinimalArguments add (II)I TestLinkerMethodMinimalArguments.java 45 +0x00003344 192 TestLinkerMethodMinimalArguments linkerMethod (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; TestLinkerMethodMinimalArguments.java 61 +0x00003444 136 TestLinkerMethodMinimalArguments test (III)V TestLinkerMethodMinimalArguments.java 78 +0x00003628 8 TestLinkerMethodMultipleArgumentTypes <clinit> ()V TestLinkerMethodMultipleArgumentTypes.java 28 +0x00003640 8 TestLinkerMethodMultipleArgumentTypes <init> ()V TestLinkerMethodMultipleArgumentTypes.java 26 +0x000034f4 6 TestLinkerMethodMultipleArgumentTypes _add (II)I TestLinkerMethodMultipleArgumentTypes.java 74 +0x0000350c 10 TestLinkerMethodMultipleArgumentTypes add (II)I TestLinkerMethodMultipleArgumentTypes.java 68 +0x00003528 238 TestLinkerMethodMultipleArgumentTypes linkerMethod (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IIIIIFDLjava/lang/String;Ljava/lang/Class;J)Ljava/lang/invoke/CallSite; TestLinkerMethodMultipleArgumentTypes.java 93 +0x00003658 34 TestLinkerMethodMultipleArgumentTypes test (II)V TestLinkerMethodMultipleArgumentTypes.java 114 +0x000034dc 6 TestLinkerMethodMultipleArgumentTypes GetBootstrapRunCount ()I TestLinkerMethodMultipleArgumentTypes.java 110 +0x000036f4 8 TestLinkerUnrelatedBSM <init> ()V TestLinkerUnrelatedBSM.java 23 +0x0000368c 6 TestLinkerUnrelatedBSM _addf (FF)F TestLinkerUnrelatedBSM.java 47 +0x000036a4 6 TestLinkerUnrelatedBSM _subf (FF)F TestLinkerUnrelatedBSM.java 73 +0x000036bc 10 TestLinkerUnrelatedBSM addf (FF)F TestLinkerUnrelatedBSM.java 42 +0x000036d8 10 TestLinkerUnrelatedBSM subf (FF)F TestLinkerUnrelatedBSM.java 68 +0x0000370c 68 TestLinkerUnrelatedBSM test ()V TestLinkerUnrelatedBSM.java 77 +0x00003a8c 8 TestVariableArityLinkerMethod <init> ()V TestVariableArityLinkerMethod.java 27 +0x00003760 68 TestVariableArityLinkerMethod bsmWithBoxedArray (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Integer;)Ljava/lang/invoke/CallSite; TestVariableArityLinkerMethod.java 477 +0x000037b4 74 TestVariableArityLinkerMethod bsmWithClassAndFloatArray (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;[F)Ljava/lang/invoke/CallSite; TestVariableArityLinkerMethod.java 294 +0x00003810 68 TestVariableArityLinkerMethod bsmWithClassArray (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Class;)Ljava/lang/invoke/CallSite; TestVariableArityLinkerMethod.java 367 +0x00003864 68 TestVariableArityLinkerMethod bsmWithDoubleArray (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[D)Ljava/lang/invoke/CallSite; TestVariableArityLinkerMethod.java 332 +0x000038b8 82 TestVariableArityLinkerMethod bsmWithFloatAndLongArray (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;F[J)Ljava/lang/invoke/CallSite; TestVariableArityLinkerMethod.java 257 +0x0000391c 82 TestVariableArityLinkerMethod bsmWithIntAndStringArray (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I[Ljava/lang/String;)Ljava/lang/invoke/CallSite; TestVariableArityLinkerMethod.java 133 +0x00003980 82 TestVariableArityLinkerMethod bsmWithLongAndIntArray (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;J[I)Ljava/lang/invoke/CallSite; TestVariableArityLinkerMethod.java 219 +0x000039e4 68 TestVariableArityLinkerMethod bsmWithStringArray (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/String;)Ljava/lang/invoke/CallSite; TestVariableArityLinkerMethod.java 61 +0x00003a38 68 TestVariableArityLinkerMethod bsmWithWiderArray (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[J)Ljava/lang/invoke/CallSite; TestVariableArityLinkerMethod.java 447 +0x00003aa4 16 TestVariableArityLinkerMethod methodA ()V TestVariableArityLinkerMethod.java 86 +0x00003ac4 16 TestVariableArityLinkerMethod methodB ()V TestVariableArityLinkerMethod.java 105 +0x00003ae4 16 TestVariableArityLinkerMethod methodC ()V TestVariableArityLinkerMethod.java 123 +0x00003b04 16 TestVariableArityLinkerMethod methodD ()V TestVariableArityLinkerMethod.java 166 +0x00003b24 16 TestVariableArityLinkerMethod methodE ()V TestVariableArityLinkerMethod.java 189 +0x00003b44 16 TestVariableArityLinkerMethod methodF ()V TestVariableArityLinkerMethod.java 209 +0x00003b64 16 TestVariableArityLinkerMethod methodG ()V TestVariableArityLinkerMethod.java 247 +0x00003b84 16 TestVariableArityLinkerMethod methodH ()V TestVariableArityLinkerMethod.java 284 +0x00003ba4 16 TestVariableArityLinkerMethod methodI ()V TestVariableArityLinkerMethod.java 323 +0x00003bc4 16 TestVariableArityLinkerMethod methodJ ()V TestVariableArityLinkerMethod.java 358 +0x00003be4 16 TestVariableArityLinkerMethod methodK ()V TestVariableArityLinkerMethod.java 392 +0x00003c04 8 TestVariableArityLinkerMethod methodO ()V TestVariableArityLinkerMethod.java 413 +0x00003c1c 8 TestVariableArityLinkerMethod methodP ()V TestVariableArityLinkerMethod.java 441 +0x00003c34 8 TestVariableArityLinkerMethod methodQ ()V TestVariableArityLinkerMethod.java 468 +0x00003c4c 8 TestVariableArityLinkerMethod methodR ()V TestVariableArityLinkerMethod.java 501 +0x00003c64 318 TestVariableArityLinkerMethod printBsmArgs (Ljava/lang/String;[Ljava/lang/Object;)V TestVariableArityLinkerMethod.java 29 +0x00003db4 448 TestVariableArityLinkerMethod test ()V TestVariableArityLinkerMethod.java 506 diff --git a/test/dexdump/invoke-custom.txt b/test/dexdump/invoke-custom.txt index bd3250865b..cfab248168 100644 --- a/test/dexdump/invoke-custom.txt +++ b/test/dexdump/invoke-custom.txt @@ -2,49 +2,98 @@ Processing 'invoke-custom.dex'... Opened 'invoke-custom.dex', DEX version '038' DEX file header: magic : 'dex\n038\0' -checksum : d11a9e29 -signature : 5b54...15c3 -file_size : 8984 +checksum : dc722174 +signature : b59a...f803 +file_size : 31732 header_size : 112 link_size : 0 link_off : 0 (0x000000) -string_ids_size : 165 +string_ids_size : 478 string_ids_off : 112 (0x000070) -type_ids_size : 38 -type_ids_off : 772 (0x000304) -proto_ids_size : 51 -proto_ids_off : 924 (0x00039c) -field_ids_size : 3 -field_ids_off : 1536 (0x000600) -method_ids_size : 78 -method_ids_off : 1560 (0x000618) -class_defs_size : 2 -class_defs_off : 2184 (0x000888) -data_size : 6552 -data_off : 2432 (0x000980) +type_ids_size : 77 +type_ids_off : 2024 (0x0007e8) +proto_ids_size : 91 +proto_ids_off : 2332 (0x00091c) +field_ids_size : 21 +field_ids_off : 3424 (0x000d60) +method_ids_size : 243 +method_ids_off : 3592 (0x000e08) +class_defs_size : 14 +class_defs_off : 5536 (0x0015a0) +data_size : 25332 +data_off : 6400 (0x001900) Class #0 header: -class_idx : 8 -access_flags : 1024 (0x0400) -superclass_idx : 13 +class_idx : 7 +access_flags : 0 (0x0000) +superclass_idx : 52 interfaces_off : 0 (0x000000) -source_file_idx : 27 -annotations_off : 0 (0x000000) -class_data_off : 8589 (0x00218d) +source_file_idx : 144 +annotations_off : 30700 (0x0077ec) +class_data_off : 28922 (0x0070fa) static_fields_size : 0 instance_fields_size: 0 direct_methods_size : 1 -virtual_methods_size: 2 +virtual_methods_size: 0 + +Class #0 annotations: +Annotations on class + VISIBILITY_SYSTEM Ldalvik/annotation/EnclosingClass; value=LTestBadBootstrapArguments; + VISIBILITY_SYSTEM Ldalvik/annotation/InnerClass; accessFlags=8 name="TestersConstantCallSite" Class #0 - - Class descriptor : 'Linvokecustom/Super;' + Class descriptor : 'LTestBadBootstrapArguments$TestersConstantCallSite;' + Access flags : 0x0000 () + Superclass : 'Ljava/lang/invoke/ConstantCallSite;' + Interfaces - + Static fields - + Instance fields - + Direct methods - + #0 : (in LTestBadBootstrapArguments$TestersConstantCallSite;) + name : '<init>' + type : '(Ljava/lang/invoke/MethodHandle;)V' + access : 0x10001 (PUBLIC CONSTRUCTOR) + code - + registers : 2 + ins : 2 + outs : 2 + insns size : 4 16-bit code units +001b18: |[001b18] TestBadBootstrapArguments.TestersConstantCallSite.<init>:(Ljava/lang/invoke/MethodHandle;)V +001b28: 7020 d200 1000 |0000: invoke-direct {v0, v1}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +001b2e: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=449 + 0x0003 line=450 + locals : + 0x0000 - 0x0004 reg=0 this LTestBadBootstrapArguments$TestersConstantCallSite; + 0x0000 - 0x0004 reg=1 mh Ljava/lang/invoke/MethodHandle; + + Virtual methods - + source_file_idx : 144 (TestBadBootstrapArguments.java) + +Class #1 header: +class_idx : 9 +access_flags : 1024 (0x0400) +superclass_idx : 42 +interfaces_off : 0 (0x000000) +source_file_idx : 145 +annotations_off : 0 (0x000000) +class_data_off : 28932 (0x007104) +static_fields_size : 0 +instance_fields_size: 0 +direct_methods_size : 13 +virtual_methods_size: 0 + +Class #1 - + Class descriptor : 'LTestBase;' Access flags : 0x0400 (ABSTRACT) Superclass : 'Ljava/lang/Object;' Interfaces - Static fields - Instance fields - Direct methods - - #0 : (in Linvokecustom/Super;) + #0 : (in LTestBase;) name : '<init>' type : '()V' access : 0x10000 (CONSTRUCTOR) @@ -53,627 +102,1581 @@ Class #0 - ins : 1 outs : 1 insns size : 4 16-bit code units -000990: |[000990] invokecustom.Super.<init>:()V -0009a0: 7010 2b00 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@002b -0009a6: 0e00 |0003: return-void +002544: |[002544] TestBase.<init>:()V +002554: 7010 bf00 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@00bf +00255a: 0e00 |0003: return-void catches : (none) positions : - 0x0000 line=29 + 0x0000 line=19 + locals : + 0x0000 - 0x0004 reg=0 this LTestBase; + + #1 : (in LTestBase;) + name : 'assertEquals' + type : '(BB)V' + access : 0x0008 (STATIC) + code - + registers : 5 + ins : 2 + outs : 2 + insns size : 34 16-bit code units +00255c: |[00255c] TestBase.assertEquals:(BB)V +00256c: 3343 0300 |0000: if-ne v3, v4, 0003 // +0003 +002570: 0e00 |0002: return-void +002572: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e +002576: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d +00257a: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +002580: 1a02 d300 |000a: const-string v2, "assertEquals b1: " // string@00d3 +002584: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +00258a: 6e20 c500 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 +002590: 1a02 0d00 |0012: const-string v2, ", b2: " // string@000d +002594: 6e20 c800 2100 |0014: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +00259a: 6e20 c500 4100 |0017: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 +0025a0: 6e10 ca00 0100 |001a: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +0025a6: 0c01 |001d: move-result-object v1 +0025a8: 7020 b500 1000 |001e: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5 +0025ae: 2700 |0021: throw v0 + catches : (none) + positions : + 0x0000 line=27 + 0x0002 line=28 + 0x0003 line=30 + locals : + 0x0000 - 0x0022 reg=3 b1 B + 0x0000 - 0x0022 reg=4 b2 B + + #2 : (in LTestBase;) + name : 'assertEquals' + type : '(CC)V' + access : 0x0008 (STATIC) + code - + registers : 5 + ins : 2 + outs : 2 + insns size : 34 16-bit code units +0025b0: |[0025b0] TestBase.assertEquals:(CC)V +0025c0: 3343 0300 |0000: if-ne v3, v4, 0003 // +0003 +0025c4: 0e00 |0002: return-void +0025c6: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e +0025ca: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d +0025ce: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +0025d4: 1a02 d400 |000a: const-string v2, "assertEquals c1: " // string@00d4 +0025d8: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +0025de: 6e20 c200 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(C)Ljava/lang/StringBuilder; // method@00c2 +0025e4: 1a02 0e00 |0012: const-string v2, ", c2: " // string@000e +0025e8: 6e20 c800 2100 |0014: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +0025ee: 6e20 c200 4100 |0017: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(C)Ljava/lang/StringBuilder; // method@00c2 +0025f4: 6e10 ca00 0100 |001a: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +0025fa: 0c01 |001d: move-result-object v1 +0025fc: 7020 b500 1000 |001e: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5 +002602: 2700 |0021: throw v0 + catches : (none) + positions : + 0x0000 line=34 + 0x0002 line=35 + 0x0003 line=37 + locals : + 0x0000 - 0x0022 reg=3 c1 C + 0x0000 - 0x0022 reg=4 c2 C + + #3 : (in LTestBase;) + name : 'assertEquals' + type : '(DD)V' + access : 0x0008 (STATIC) + code - + registers : 7 + ins : 4 + outs : 3 + insns size : 36 16-bit code units +002604: |[002604] TestBase.assertEquals:(DD)V +002614: 2f00 0305 |0000: cmpl-double v0, v3, v5 +002618: 3900 0300 |0002: if-nez v0, 0005 // +0003 +00261c: 0e00 |0004: return-void +00261e: 2200 1e00 |0005: new-instance v0, Ljava/lang/AssertionError; // type@001e +002622: 2201 2d00 |0007: new-instance v1, Ljava/lang/StringBuilder; // type@002d +002626: 7010 c100 0100 |0009: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +00262c: 1a02 d500 |000c: const-string v2, "assertEquals d1: " // string@00d5 +002630: 6e20 c800 2100 |000e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +002636: 6e30 c300 3104 |0011: invoke-virtual {v1, v3, v4}, Ljava/lang/StringBuilder;.append:(D)Ljava/lang/StringBuilder; // method@00c3 +00263c: 1a02 0f00 |0014: const-string v2, ", d2: " // string@000f +002640: 6e20 c800 2100 |0016: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +002646: 6e30 c300 5106 |0019: invoke-virtual {v1, v5, v6}, Ljava/lang/StringBuilder;.append:(D)Ljava/lang/StringBuilder; // method@00c3 +00264c: 6e10 ca00 0100 |001c: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +002652: 0c01 |001f: move-result-object v1 +002654: 7020 b500 1000 |0020: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5 +00265a: 2700 |0023: throw v0 + catches : (none) + positions : + 0x0000 line=69 + 0x0004 line=70 + 0x0005 line=72 + locals : + 0x0000 - 0x0024 reg=3 d1 D + 0x0000 - 0x0024 reg=5 d2 D + + #4 : (in LTestBase;) + name : 'assertEquals' + type : '(FF)V' + access : 0x0008 (STATIC) + code - + registers : 5 + ins : 2 + outs : 2 + insns size : 36 16-bit code units +00265c: |[00265c] TestBase.assertEquals:(FF)V +00266c: 2d00 0304 |0000: cmpl-float v0, v3, v4 +002670: 3900 0300 |0002: if-nez v0, 0005 // +0003 +002674: 0e00 |0004: return-void +002676: 2200 1e00 |0005: new-instance v0, Ljava/lang/AssertionError; // type@001e +00267a: 2201 2d00 |0007: new-instance v1, Ljava/lang/StringBuilder; // type@002d +00267e: 7010 c100 0100 |0009: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +002684: 1a02 d600 |000c: const-string v2, "assertEquals f1: " // string@00d6 +002688: 6e20 c800 2100 |000e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +00268e: 6e20 c400 3100 |0011: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(F)Ljava/lang/StringBuilder; // method@00c4 +002694: 1a02 1000 |0014: const-string v2, ", f2: " // string@0010 +002698: 6e20 c800 2100 |0016: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +00269e: 6e20 c400 4100 |0019: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(F)Ljava/lang/StringBuilder; // method@00c4 +0026a4: 6e10 ca00 0100 |001c: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +0026aa: 0c01 |001f: move-result-object v1 +0026ac: 7020 b500 1000 |0020: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5 +0026b2: 2700 |0023: throw v0 + catches : (none) + positions : + 0x0000 line=62 + 0x0004 line=63 + 0x0005 line=65 + locals : + 0x0000 - 0x0024 reg=3 f1 F + 0x0000 - 0x0024 reg=4 f2 F + + #5 : (in LTestBase;) + name : 'assertEquals' + type : '(II)V' + access : 0x0008 (STATIC) + code - + registers : 5 + ins : 2 + outs : 2 + insns size : 34 16-bit code units +0026b4: |[0026b4] TestBase.assertEquals:(II)V +0026c4: 3343 0300 |0000: if-ne v3, v4, 0003 // +0003 +0026c8: 0e00 |0002: return-void +0026ca: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e +0026ce: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d +0026d2: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +0026d8: 1a02 d700 |000a: const-string v2, "assertEquals i1: " // string@00d7 +0026dc: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +0026e2: 6e20 c500 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 +0026e8: 1a02 1100 |0012: const-string v2, ", i2: " // string@0011 +0026ec: 6e20 c800 2100 |0014: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +0026f2: 6e20 c500 4100 |0017: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 +0026f8: 6e10 ca00 0100 |001a: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +0026fe: 0c01 |001d: move-result-object v1 +002700: 7020 b500 1000 |001e: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5 +002706: 2700 |0021: throw v0 + catches : (none) + positions : + 0x0000 line=48 + 0x0002 line=49 + 0x0003 line=51 + locals : + 0x0000 - 0x0022 reg=3 i1 I + 0x0000 - 0x0022 reg=4 i2 I + + #6 : (in LTestBase;) + name : 'assertEquals' + type : '(JJ)V' + access : 0x0008 (STATIC) + code - + registers : 7 + ins : 4 + outs : 3 + insns size : 36 16-bit code units +002764: |[002764] TestBase.assertEquals:(JJ)V +002774: 3100 0305 |0000: cmp-long v0, v3, v5 +002778: 3900 0300 |0002: if-nez v0, 0005 // +0003 +00277c: 0e00 |0004: return-void +00277e: 2200 1e00 |0005: new-instance v0, Ljava/lang/AssertionError; // type@001e +002782: 2201 2d00 |0007: new-instance v1, Ljava/lang/StringBuilder; // type@002d +002786: 7010 c100 0100 |0009: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +00278c: 1a02 d800 |000c: const-string v2, "assertEquals l1: " // string@00d8 +002790: 6e20 c800 2100 |000e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +002796: 6e30 c600 3104 |0011: invoke-virtual {v1, v3, v4}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@00c6 +00279c: 1a02 1200 |0014: const-string v2, ", l2: " // string@0012 +0027a0: 6e20 c800 2100 |0016: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +0027a6: 6e30 c600 5106 |0019: invoke-virtual {v1, v5, v6}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@00c6 +0027ac: 6e10 ca00 0100 |001c: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +0027b2: 0c01 |001f: move-result-object v1 +0027b4: 7020 b500 1000 |0020: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5 +0027ba: 2700 |0023: throw v0 + catches : (none) + positions : + 0x0000 line=55 + 0x0004 line=56 + 0x0005 line=58 + locals : + 0x0000 - 0x0024 reg=3 l1 J + 0x0000 - 0x0024 reg=5 l2 J + + #7 : (in LTestBase;) + name : 'assertEquals' + type : '(Ljava/lang/Object;Ljava/lang/Object;)V' + access : 0x0008 (STATIC) + code - + registers : 5 + ins : 2 + outs : 2 + insns size : 38 16-bit code units +002708: |[002708] TestBase.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V +002718: 7120 ec00 4300 |0000: invoke-static {v3, v4}, Ljava/util/Objects;.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z // method@00ec +00271e: 0a00 |0003: move-result v0 +002720: 3800 0300 |0004: if-eqz v0, 0007 // +0003 +002724: 0e00 |0006: return-void +002726: 2200 1e00 |0007: new-instance v0, Ljava/lang/AssertionError; // type@001e +00272a: 2201 2d00 |0009: new-instance v1, Ljava/lang/StringBuilder; // type@002d +00272e: 7010 c100 0100 |000b: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +002734: 1a02 da00 |000e: const-string v2, "assertEquals: o1: " // string@00da +002738: 6e20 c800 2100 |0010: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +00273e: 6e20 c700 3100 |0013: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7 +002744: 1a02 1300 |0016: const-string v2, ", o2: " // string@0013 +002748: 6e20 c800 2100 |0018: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +00274e: 6e20 c700 4100 |001b: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7 +002754: 6e10 ca00 0100 |001e: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +00275a: 0c01 |0021: move-result-object v1 +00275c: 7020 b500 1000 |0022: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5 +002762: 2700 |0025: throw v0 + catches : (none) + positions : + 0x0000 line=76 + 0x0006 line=79 + 0x0007 line=77 + locals : + 0x0000 - 0x0026 reg=3 o Ljava/lang/Object; + 0x0000 - 0x0026 reg=4 p Ljava/lang/Object; + + #8 : (in LTestBase;) + name : 'assertEquals' + type : '(SS)V' + access : 0x0008 (STATIC) + code - + registers : 5 + ins : 2 + outs : 2 + insns size : 34 16-bit code units +0027bc: |[0027bc] TestBase.assertEquals:(SS)V +0027cc: 3343 0300 |0000: if-ne v3, v4, 0003 // +0003 +0027d0: 0e00 |0002: return-void +0027d2: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e +0027d6: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d +0027da: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +0027e0: 1a02 d900 |000a: const-string v2, "assertEquals s1: " // string@00d9 +0027e4: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +0027ea: 6e20 c500 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 +0027f0: 1a02 1400 |0012: const-string v2, ", s2: " // string@0014 +0027f4: 6e20 c800 2100 |0014: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +0027fa: 6e20 c500 4100 |0017: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 +002800: 6e10 ca00 0100 |001a: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +002806: 0c01 |001d: move-result-object v1 +002808: 7020 b500 1000 |001e: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5 +00280e: 2700 |0021: throw v0 + catches : (none) + positions : + 0x0000 line=41 + 0x0002 line=42 + 0x0003 line=44 + locals : + 0x0000 - 0x0022 reg=3 s1 S + 0x0000 - 0x0022 reg=4 s2 S + + #9 : (in LTestBase;) + name : 'assertNotEquals' + type : '(Ljava/lang/Object;Ljava/lang/Object;)V' + access : 0x0008 (STATIC) + code - + registers : 5 + ins : 2 + outs : 2 + insns size : 38 16-bit code units +002810: |[002810] TestBase.assertNotEquals:(Ljava/lang/Object;Ljava/lang/Object;)V +002820: 7120 ec00 4300 |0000: invoke-static {v3, v4}, Ljava/util/Objects;.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z // method@00ec +002826: 0a00 |0003: move-result v0 +002828: 3900 0300 |0004: if-nez v0, 0007 // +0003 +00282c: 0e00 |0006: return-void +00282e: 2200 1e00 |0007: new-instance v0, Ljava/lang/AssertionError; // type@001e +002832: 2201 2d00 |0009: new-instance v1, Ljava/lang/StringBuilder; // type@002d +002836: 7010 c100 0100 |000b: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +00283c: 1a02 dc00 |000e: const-string v2, "assertNotEquals: o1: " // string@00dc +002840: 6e20 c800 2100 |0010: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +002846: 6e20 c700 3100 |0013: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7 +00284c: 1a02 1300 |0016: const-string v2, ", o2: " // string@0013 +002850: 6e20 c800 2100 |0018: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +002856: 6e20 c700 4100 |001b: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7 +00285c: 6e10 ca00 0100 |001e: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +002862: 0c01 |0021: move-result-object v1 +002864: 7020 b500 1000 |0022: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5 +00286a: 2700 |0025: throw v0 + catches : (none) + positions : + 0x0000 line=82 + 0x0006 line=85 + 0x0007 line=83 + locals : + 0x0000 - 0x0026 reg=3 o Ljava/lang/Object; + 0x0000 - 0x0026 reg=4 p Ljava/lang/Object; + + #10 : (in LTestBase;) + name : 'assertNotReached' + type : '()V' + access : 0x0008 (STATIC) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 8 16-bit code units +00286c: |[00286c] TestBase.assertNotReached:()V +00287c: 2200 1e00 |0000: new-instance v0, Ljava/lang/AssertionError; // type@001e +002880: 1a01 a300 |0002: const-string v1, "Unreachable" // string@00a3 +002884: 7020 b500 1000 |0004: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5 +00288a: 2700 |0007: throw v0 + catches : (none) + positions : + 0x0000 line=88 + locals : + + #11 : (in LTestBase;) + name : 'assertTrue' + type : '(Z)V' + access : 0x0008 (STATIC) + code - + registers : 4 + ins : 1 + outs : 2 + insns size : 26 16-bit code units +00288c: |[00288c] TestBase.assertTrue:(Z)V +00289c: 3803 0300 |0000: if-eqz v3, 0003 // +0003 +0028a0: 0e00 |0002: return-void +0028a2: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e +0028a6: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d +0028aa: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +0028b0: 1a02 df00 |000a: const-string v2, "assertTrue value: " // string@00df +0028b4: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +0028ba: 6e20 c900 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Z)Ljava/lang/StringBuilder; // method@00c9 +0028c0: 6e10 ca00 0100 |0012: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +0028c6: 0c01 |0015: move-result-object v1 +0028c8: 7020 b500 1000 |0016: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5 +0028ce: 2700 |0019: throw v0 + catches : (none) + positions : + 0x0000 line=21 + 0x0002 line=24 + 0x0003 line=22 + locals : + 0x0000 - 0x001a reg=3 value Z + + #12 : (in LTestBase;) + name : 'fail' + type : '()V' + access : 0x0008 (STATIC) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 11 16-bit code units +0028d0: |[0028d0] TestBase.fail:()V +0028e0: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0028e4: 1a01 2601 |0002: const-string v1, "fail" // string@0126 +0028e8: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +0028ee: 7100 cc00 0000 |0007: invoke-static {}, Ljava/lang/Thread;.dumpStack:()V // method@00cc +0028f4: 0e00 |000a: return-void + catches : (none) + positions : + 0x0000 line=92 + 0x0007 line=93 + 0x000a line=94 locals : - 0x0000 - 0x0004 reg=0 this Linvokecustom/Super; Virtual methods - - #0 : (in Linvokecustom/Super;) - name : 'helperMethodTest9' + source_file_idx : 145 (TestBase.java) + +Class #2 header: +class_idx : 11 +access_flags : 0 (0x0000) +superclass_idx : 42 +interfaces_off : 0 (0x000000) +source_file_idx : 148 +annotations_off : 30716 (0x0077fc) +class_data_off : 28990 (0x00713e) +static_fields_size : 0 +instance_fields_size: 1 +direct_methods_size : 1 +virtual_methods_size: 0 + +Class #2 annotations: +Annotations on class + VISIBILITY_SYSTEM Ldalvik/annotation/EnclosingClass; value=LTestInvocationKinds; + VISIBILITY_SYSTEM Ldalvik/annotation/InnerClass; accessFlags=8 name="Widget" + +Class #2 - + Class descriptor : 'LTestInvocationKinds$Widget;' + Access flags : 0x0000 () + Superclass : 'Ljava/lang/Object;' + Interfaces - + Static fields - + Instance fields - + #0 : (in LTestInvocationKinds$Widget;) + name : 'value' + type : 'I' + access : 0x0000 () + Direct methods - + #0 : (in LTestInvocationKinds$Widget;) + name : '<init>' + type : '(I)V' + access : 0x10001 (PUBLIC CONSTRUCTOR) + code - + registers : 2 + ins : 2 + outs : 1 + insns size : 4 16-bit code units +002abc: |[002abc] TestInvocationKinds.Widget.<init>:(I)V +002acc: 7010 bf00 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@00bf +002ad2: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=177 + locals : + 0x0000 - 0x0004 reg=0 this LTestInvocationKinds$Widget; + 0x0000 - 0x0004 reg=1 value I + + Virtual methods - + source_file_idx : 148 (TestInvocationKinds.java) + +Class #3 header: +class_idx : 13 +access_flags : 0 (0x0000) +superclass_idx : 48 +interfaces_off : 0 (0x000000) +source_file_idx : 149 +annotations_off : 30732 (0x00780c) +class_data_off : 29002 (0x00714a) +static_fields_size : 0 +instance_fields_size: 0 +direct_methods_size : 1 +virtual_methods_size: 2 + +Class #3 annotations: +Annotations on class + VISIBILITY_SYSTEM Ldalvik/annotation/EnclosingClass; value=LTestInvokeCustomWithConcurrentThreads; + VISIBILITY_SYSTEM Ldalvik/annotation/InnerClass; accessFlags=0 name=null + VISIBILITY_SYSTEM Ldalvik/annotation/Signature; value={ "Ljava/lang/ThreadLocal<" "Ljava/lang/Integer;" ">;" } + +Class #3 - + Class descriptor : 'LTestInvokeCustomWithConcurrentThreads$1;' + Access flags : 0x0000 () + Superclass : 'Ljava/lang/ThreadLocal;' + Interfaces - + Static fields - + Instance fields - + Direct methods - + #0 : (in LTestInvokeCustomWithConcurrentThreads$1;) + name : '<init>' type : '()V' - access : 0x0401 (PUBLIC ABSTRACT) - code : (none) + access : 0x10000 (CONSTRUCTOR) + code - + registers : 1 + ins : 1 + outs : 1 + insns size : 4 16-bit code units +002ee8: |[002ee8] TestInvokeCustomWithConcurrentThreads.1.<init>:()V +002ef8: 7010 cf00 0000 |0000: invoke-direct {v0}, Ljava/lang/ThreadLocal;.<init>:()V // method@00cf +002efe: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=33 + locals : + 0x0000 - 0x0004 reg=0 this LTestInvokeCustomWithConcurrentThreads$1; + + Virtual methods - + #0 : (in LTestInvokeCustomWithConcurrentThreads$1;) + name : 'initialValue' + type : '()Ljava/lang/Integer;' + access : 0x0004 (PROTECTED) + code - + registers : 2 + ins : 1 + outs : 1 + insns size : 13 16-bit code units +002ea0: |[002ea0] TestInvokeCustomWithConcurrentThreads.1.initialValue:()Ljava/lang/Integer; +002eb0: 7100 6500 0000 |0000: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.access$000:()Ljava/util/concurrent/atomic/AtomicInteger; // method@0065 +002eb6: 0c00 |0003: move-result-object v0 +002eb8: 6e10 f100 0000 |0004: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.getAndIncrement:()I // method@00f1 +002ebe: 0a00 |0007: move-result v0 +002ec0: 7110 bd00 0000 |0008: invoke-static {v0}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd +002ec6: 0c00 |000b: move-result-object v0 +002ec8: 1100 |000c: return-object v0 + catches : (none) + positions : + 0x0000 line=36 + locals : + 0x0000 - 0x000d reg=1 this LTestInvokeCustomWithConcurrentThreads$1; + + #1 : (in LTestInvokeCustomWithConcurrentThreads$1;) + name : 'initialValue' + type : '()Ljava/lang/Object;' + access : 0x1044 (PROTECTED BRIDGE SYNTHETIC) + code - + registers : 2 + ins : 1 + outs : 1 + insns size : 5 16-bit code units +002ecc: |[002ecc] TestInvokeCustomWithConcurrentThreads.1.initialValue:()Ljava/lang/Object; +002edc: 6e10 6100 0100 |0000: invoke-virtual {v1}, LTestInvokeCustomWithConcurrentThreads$1;.initialValue:()Ljava/lang/Integer; // method@0061 +002ee2: 0c00 |0003: move-result-object v0 +002ee4: 1100 |0004: return-object v0 + catches : (none) + positions : + 0x0000 line=33 + locals : + 0x0000 - 0x0005 reg=1 this LTestInvokeCustomWithConcurrentThreads$1; + + source_file_idx : 149 (TestInvokeCustomWithConcurrentThreads.java) - #1 : (in Linvokecustom/Super;) - name : 'targetMethodTest4' +Class #4 header: +class_idx : 19 +access_flags : 0 (0x0000) +superclass_idx : 42 +interfaces_off : 0 (0x000000) +source_file_idx : 164 +annotations_off : 30748 (0x00781c) +class_data_off : 29021 (0x00715d) +static_fields_size : 0 +instance_fields_size: 0 +direct_methods_size : 2 +virtual_methods_size: 0 + +Class #4 annotations: +Annotations on method #170 'bsm' + VISIBILITY_SYSTEM Ldalvik/annotation/Signature; value={ "(" "Ljava/lang/invoke/MethodHandles$Lookup;" "Ljava/lang/String;" "Ljava/lang/invoke/MethodType;" "Ljava/lang/Class<" "*>;)" "Ljava/lang/invoke/CallSite;" } + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } + +Class #4 - + Class descriptor : 'LUnrelatedBSM;' + Access flags : 0x0000 () + Superclass : 'Ljava/lang/Object;' + Interfaces - + Static fields - + Instance fields - + Direct methods - + #0 : (in LUnrelatedBSM;) + name : '<init>' type : '()V' - access : 0x0001 (PUBLIC) + access : 0x10000 (CONSTRUCTOR) code - - registers : 3 + registers : 1 ins : 1 - outs : 2 - insns size : 8 16-bit code units -0009a8: |[0009a8] invokecustom.Super.targetMethodTest4:()V -0009b8: 6200 0200 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -0009bc: 1a01 8b00 |0002: const-string v1, "targetMethodTest4 from Super" // string@008b -0009c0: 6e20 2900 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -0009c6: 0e00 |0007: return-void + outs : 1 + insns size : 4 16-bit code units +003fc8: |[003fc8] UnrelatedBSM.<init>:()V +003fd8: 7010 bf00 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@00bf +003fde: 0e00 |0003: return-void catches : (none) positions : - 0x0000 line=31 - 0x0007 line=32 + 0x0000 line=23 locals : - 0x0000 - 0x0008 reg=2 this Linvokecustom/Super; + 0x0000 - 0x0004 reg=0 this LUnrelatedBSM; - source_file_idx : 27 (InvokeCustom.java) + #1 : (in LUnrelatedBSM;) + name : 'bsm' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/CallSite;' + access : 0x0008 (STATIC) + code - + registers : 6 + ins : 4 + outs : 4 + insns size : 10 16-bit code units +003fa4: |[003fa4] UnrelatedBSM.bsm:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/CallSite; +003fb4: 6e40 d800 5243 |0000: invoke-virtual {v2, v5, v3, v4}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +003fba: 0c00 |0003: move-result-object v0 +003fbc: 2201 3400 |0004: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +003fc0: 7020 d200 0100 |0006: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +003fc6: 1101 |0009: return-object v1 + catches : (none) + positions : + 0x0000 line=27 + 0x0004 line=28 + locals : + 0x0000 - 0x0000 reg=5 (null) Ljava/lang/Class; + 0x0004 - 0x000a reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x000a reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x000a reg=3 name Ljava/lang/String; + 0x0000 - 0x000a reg=4 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x000a reg=5 target Ljava/lang/Class; Ljava/lang/Class<*>; -Class #1 header: -class_idx : 7 + Virtual methods - + source_file_idx : 164 (UnrelatedBSM.java) + +Class #5 header: +class_idx : 6 access_flags : 1 (0x0001) -superclass_idx : 8 -interfaces_off : 5460 (0x001554) -source_file_idx : 27 -annotations_off : 5396 (0x001514) -class_data_off : 8607 (0x00219f) -static_fields_size : 1 -instance_fields_size: 1 -direct_methods_size : 29 -virtual_methods_size: 3 +superclass_idx : 9 +interfaces_off : 0 (0x000000) +source_file_idx : 136 +annotations_off : 30772 (0x007834) +class_data_off : 29036 (0x00716c) +static_fields_size : 0 +instance_fields_size: 0 +direct_methods_size : 5 +virtual_methods_size: 0 -Class #1 annotations: -Annotations on method #3 'bsmCreateCallSite' +Class #5 annotations: +Annotations on method #1 'TestLinkerMethodMinimalArguments' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } -Annotations on method #4 'bsmLookupStatic' - VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/NoSuchMethodException; Ljava/lang/IllegalAccessException; } -Annotations on method #5 'bsmLookupStaticWithExtraArgs' - VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/NoSuchMethodException; Ljava/lang/IllegalAccessException; } -Annotations on method #6 'bsmLookupTest9' +Annotations on method #2 'TestLinkerMethodMultipleArgumentTypes' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } -Annotations on method #7 'checkFieldTest9' +Annotations on method #3 'TestUninitializedCallSite' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } -Annotations on method #8 'checkStaticFieldTest9' +Annotations on method #7 'main' VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } -Class #1 - - Class descriptor : 'Linvokecustom/InvokeCustom;' +Class #5 - + Class descriptor : 'LMain;' Access flags : 0x0001 (PUBLIC) - Superclass : 'Linvokecustom/Super;' + Superclass : 'LTestBase;' Interfaces - - #0 : 'Ljava/lang/Runnable;' Static fields - - #0 : (in Linvokecustom/InvokeCustom;) - name : 'staticFieldTest9' - type : 'I' - access : 0x000a (PRIVATE STATIC) Instance fields - - #0 : (in Linvokecustom/InvokeCustom;) - name : 'fieldTest9' - type : 'F' - access : 0x0002 (PRIVATE) Direct methods - - #0 : (in Linvokecustom/InvokeCustom;) - name : '<clinit>' + #0 : (in LMain;) + name : '<init>' type : '()V' - access : 0x10008 (STATIC CONSTRUCTOR) + access : 0x10001 (PUBLIC CONSTRUCTOR) code - registers : 1 + ins : 1 + outs : 1 + insns size : 4 16-bit code units +001900: |[001900] Main.<init>:()V +001910: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032 +001916: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=21 + locals : + 0x0000 - 0x0004 reg=0 this LMain; + + #1 : (in LMain;) + name : 'TestLinkerMethodMinimalArguments' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 4 ins : 0 + outs : 3 + insns size : 66 16-bit code units +001918: |[001918] Main.TestLinkerMethodMinimalArguments:()V +001928: 1210 |0000: const/4 v0, #int 1 // #1 +00192a: 1301 0a00 |0001: const/16 v1, #int 10 // #a +00192e: 7130 7700 1001 |0003: invoke-static {v0, v1, v1}, LTestLinkerMethodMinimalArguments;.test:(III)V // method@0077 +001934: 7100 0500 0000 |0006: invoke-static {}, LMain;.assertNotReached:()V // method@0005 +00193a: 280f |0009: goto 0018 // +000f +00193c: 0d00 |000a: move-exception v0 +00193e: 6e10 b600 0000 |000b: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +001944: 0c02 |000e: move-result-object v2 +001946: 6e10 c000 0200 |000f: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +00194c: 0c02 |0012: move-result-object v2 +00194e: 1c03 2200 |0013: const-class v3, Ljava/lang/ClassCastException; // type@0022 +001952: 7120 0400 3200 |0015: invoke-static {v2, v3}, LMain;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0004 +001958: 1220 |0018: const/4 v0, #int 2 // #2 +00195a: 1302 0b00 |0019: const/16 v2, #int 11 // #b +00195e: 7130 7700 1002 |001b: invoke-static {v0, v1, v2}, LTestLinkerMethodMinimalArguments;.test:(III)V // method@0077 +001964: 7100 0500 0000 |001e: invoke-static {}, LMain;.assertNotReached:()V // method@0005 +00196a: 280f |0021: goto 0030 // +000f +00196c: 0d00 |0022: move-exception v0 +00196e: 6e10 b600 0000 |0023: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +001974: 0c02 |0026: move-result-object v2 +001976: 6e10 c000 0200 |0027: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +00197c: 0c02 |002a: move-result-object v2 +00197e: 1c03 2600 |002b: const-class v3, Ljava/lang/InstantiationException; // type@0026 +001982: 7120 0400 3200 |002d: invoke-static {v2, v3}, LMain;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0004 +001988: 1230 |0030: const/4 v0, #int 3 // #3 +00198a: 1302 0c00 |0031: const/16 v2, #int 12 // #c +00198e: 7130 7700 1002 |0033: invoke-static {v0, v1, v2}, LTestLinkerMethodMinimalArguments;.test:(III)V // method@0077 +001994: 7100 0500 0000 |0036: invoke-static {}, LMain;.assertNotReached:()V // method@0005 +00199a: 2802 |0039: goto 003b // +0002 +00199c: 0d00 |003a: move-exception v0 +00199e: 1200 |003b: const/4 v0, #int 0 // #0 +0019a0: 1302 0d00 |003c: const/16 v2, #int 13 // #d +0019a4: 7130 7700 1002 |003e: invoke-static {v0, v1, v2}, LTestLinkerMethodMinimalArguments;.test:(III)V // method@0077 +0019aa: 0e00 |0041: return-void + catches : 3 + 0x0003 - 0x0009 + Ljava/lang/BootstrapMethodError; -> 0x000a + 0x001b - 0x0021 + Ljava/lang/BootstrapMethodError; -> 0x0022 + 0x0033 - 0x0039 + Ljava/lang/ArithmeticException; -> 0x003a + positions : + 0x0000 line=49 + 0x0006 line=53 + 0x0009 line=56 + 0x000a line=54 + 0x000b line=55 + 0x0018 line=59 + 0x001e line=61 + 0x0021 line=64 + 0x0022 line=62 + 0x0023 line=63 + 0x0030 line=67 + 0x0036 line=69 + 0x0039 line=71 + 0x003a line=70 + 0x003b line=73 + 0x0041 line=75 + locals : + 0x000b - 0x0018 reg=0 e Ljava/lang/BootstrapMethodError; + 0x0023 - 0x0030 reg=0 e Ljava/lang/BootstrapMethodError; + + #2 : (in LMain;) + name : 'TestLinkerMethodMultipleArgumentTypes' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 22 16-bit code units +0019d0: |[0019d0] Main.TestLinkerMethodMultipleArgumentTypes:()V +0019e0: 1300 2100 |0000: const/16 v0, #int 33 // #21 +0019e4: 1301 4300 |0002: const/16 v1, #int 67 // #43 +0019e8: 7120 8400 1000 |0004: invoke-static {v0, v1}, LTestLinkerMethodMultipleArgumentTypes;.test:(II)V // method@0084 +0019ee: 1300 f0d8 |0007: const/16 v0, #int -10000 // #d8f0 +0019f2: 1301 e803 |0009: const/16 v1, #int 1000 // #3e8 +0019f6: 7120 8400 1000 |000b: invoke-static {v0, v1}, LTestLinkerMethodMultipleArgumentTypes;.test:(II)V // method@0084 +0019fc: 1300 18fc |000e: const/16 v0, #int -1000 // #fc18 +001a00: 1301 1027 |0010: const/16 v1, #int 10000 // #2710 +001a04: 7120 8400 1000 |0012: invoke-static {v0, v1}, LTestLinkerMethodMultipleArgumentTypes;.test:(II)V // method@0084 +001a0a: 0e00 |0015: return-void + catches : (none) + positions : + 0x0000 line=42 + 0x0007 line=43 + 0x000e line=44 + 0x0015 line=45 + locals : + + #3 : (in LMain;) + name : 'TestUninitializedCallSite' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 7 + ins : 0 + outs : 3 + insns size : 78 16-bit code units +001a0c: |[001a0c] Main.TestUninitializedCallSite:()V +001a1c: 2200 3900 |0000: new-instance v0, Ljava/lang/invoke/MutableCallSite; // type@0039 +001a20: 6201 1200 |0002: sget-object v1, Ljava/lang/Integer;.TYPE:Ljava/lang/Class; // field@0012 +001a24: 7110 e100 0100 |0004: invoke-static {v1}, Ljava/lang/invoke/MethodType;.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType; // method@00e1 +001a2a: 0c01 |0007: move-result-object v1 +001a2c: 7020 e600 1000 |0008: invoke-direct {v0, v1}, Ljava/lang/invoke/MutableCallSite;.<init>:(Ljava/lang/invoke/MethodType;)V // method@00e6 +001a32: 6e10 d100 0000 |000b: invoke-virtual {v0}, Ljava/lang/invoke/CallSite;.getTarget:()Ljava/lang/invoke/MethodHandle; // method@00d1 +001a38: 0c01 |000e: move-result-object v1 +001a3a: fa10 d300 0100 4100 |000f: invoke-polymorphic {v1}, Ljava/lang/invoke/MethodHandle;.invoke:([Ljava/lang/Object;)Ljava/lang/Object;, ()V // method@00d3, proto@0041 +001a42: 7100 0600 0000 |0013: invoke-static {}, LMain;.fail:()V // method@0006 +001a48: 2809 |0016: goto 001f // +0009 +001a4a: 0d01 |0017: move-exception v1 +001a4c: 6202 1300 |0018: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001a50: 1a03 2100 |001a: const-string v3, "Caught exception from uninitialized call site" // string@0021 +001a54: 6e20 b300 3200 |001c: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +001a5a: 2201 3900 |001f: new-instance v1, Ljava/lang/invoke/MutableCallSite; // type@0039 +001a5e: 1c02 2c00 |0021: const-class v2, Ljava/lang/String; // type@002c +001a62: 6203 1200 |0023: sget-object v3, Ljava/lang/Integer;.TYPE:Ljava/lang/Class; // field@0012 +001a66: 1214 |0025: const/4 v4, #int 1 // #1 +001a68: 2344 4600 |0026: new-array v4, v4, [Ljava/lang/Class; // type@0046 +001a6c: 1205 |0028: const/4 v5, #int 0 // #0 +001a6e: 6206 1100 |0029: sget-object v6, Ljava/lang/Character;.TYPE:Ljava/lang/Class; // field@0011 +001a72: 4d06 0405 |002b: aput-object v6, v4, v5 +001a76: 7130 e200 3204 |002d: invoke-static {v2, v3, v4}, Ljava/lang/invoke/MethodType;.methodType:(Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType; // method@00e2 +001a7c: 0c02 |0030: move-result-object v2 +001a7e: 7020 e600 2100 |0031: invoke-direct {v1, v2}, Ljava/lang/invoke/MutableCallSite;.<init>:(Ljava/lang/invoke/MethodType;)V // method@00e6 +001a84: 0710 |0034: move-object v0, v1 +001a86: 6e10 d100 0000 |0035: invoke-virtual {v0}, Ljava/lang/invoke/CallSite;.getTarget:()Ljava/lang/invoke/MethodHandle; // method@00d1 +001a8c: 0c01 |0038: move-result-object v1 +001a8e: 1302 ff05 |0039: const/16 v2, #int 1535 // #5ff +001a92: 1303 6400 |003b: const/16 v3, #int 100 // #64 +001a96: fa30 d300 2103 4800 |003d: invoke-polymorphic {v1, v2, v3}, Ljava/lang/invoke/MethodHandle;.invoke:([Ljava/lang/Object;)Ljava/lang/Object;, (IC)V // method@00d3, proto@0048 +001a9e: 7100 0600 0000 |0041: invoke-static {}, LMain;.fail:()V // method@0006 +001aa4: 2809 |0044: goto 004d // +0009 +001aa6: 0d01 |0045: move-exception v1 +001aa8: 6202 1300 |0046: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001aac: 1a03 2100 |0048: const-string v3, "Caught exception from uninitialized call site" // string@0021 +001ab0: 6e20 b300 3200 |004a: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +001ab6: 0e00 |004d: return-void + catches : 2 + 0x000b - 0x0016 + Ljava/lang/IllegalStateException; -> 0x0017 + 0x0035 - 0x0044 + Ljava/lang/IllegalStateException; -> 0x0045 + positions : + 0x0000 line=24 + 0x000b line=26 + 0x0013 line=27 + 0x0016 line=30 + 0x0017 line=28 + 0x0018 line=29 + 0x001f line=32 + 0x0035 line=34 + 0x0041 line=35 + 0x0044 line=38 + 0x0045 line=36 + 0x0046 line=37 + 0x004d line=39 + locals : + 0x0018 - 0x001f reg=1 e Ljava/lang/IllegalStateException; + 0x0046 - 0x004d reg=1 e Ljava/lang/IllegalStateException; + 0x000b - 0x004e reg=0 callSite Ljava/lang/invoke/CallSite; + + #4 : (in LMain;) + name : 'main' + type : '([Ljava/lang/String;)V' + access : 0x0009 (PUBLIC STATIC) + code - + registers : 1 + ins : 1 outs : 0 - insns size : 4 16-bit code units -0009c8: |[0009c8] invokecustom.InvokeCustom.<clinit>:()V -0009d8: 1200 |0000: const/4 v0, #int 0 // #0 -0009da: 6700 0100 |0001: sput v0, Linvokecustom/InvokeCustom;.staticFieldTest9:I // field@0001 -0009de: 0e00 |0003: return-void + insns size : 28 16-bit code units +001ad0: |[001ad0] Main.main:([Ljava/lang/String;)V +001ae0: 7100 0300 0000 |0000: invoke-static {}, LMain;.TestUninitializedCallSite:()V // method@0003 +001ae6: 7100 0100 0000 |0003: invoke-static {}, LMain;.TestLinkerMethodMinimalArguments:()V // method@0001 +001aec: 7100 0200 0000 |0006: invoke-static {}, LMain;.TestLinkerMethodMultipleArgumentTypes:()V // method@0002 +001af2: 7100 8c00 0000 |0009: invoke-static {}, LTestLinkerUnrelatedBSM;.test:()V // method@008c +001af8: 7100 6e00 0000 |000c: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.test:()V // method@006e +001afe: 7100 5b00 0000 |000f: invoke-static {}, LTestInvocationKinds;.test:()V // method@005b +001b04: 7100 4500 0000 |0012: invoke-static {}, LTestDynamicBootstrapArguments;.test:()V // method@0045 +001b0a: 7100 2b00 0000 |0015: invoke-static {}, LTestBadBootstrapArguments;.test:()V // method@002b +001b10: 7100 a800 0000 |0018: invoke-static {}, LTestVariableArityLinkerMethod;.test:()V // method@00a8 +001b16: 0e00 |001b: return-void catches : (none) positions : - 0x0000 line=102 + 0x0000 line=78 + 0x0003 line=79 + 0x0006 line=80 + 0x0009 line=81 + 0x000c line=82 + 0x000f line=83 + 0x0012 line=84 + 0x0015 line=85 + 0x0018 line=86 + 0x001b line=87 locals : + 0x0000 - 0x001c reg=0 args [Ljava/lang/String; - #1 : (in Linvokecustom/InvokeCustom;) + Virtual methods - + source_file_idx : 136 (Main.java) + +Class #6 header: +class_idx : 8 +access_flags : 1 (0x0001) +superclass_idx : 9 +interfaces_off : 0 (0x000000) +source_file_idx : 144 +annotations_off : 30820 (0x007864) +class_data_off : 29062 (0x007186) +static_fields_size : 0 +instance_fields_size: 0 +direct_methods_size : 38 +virtual_methods_size: 0 + +Class #6 annotations: +Annotations on class + VISIBILITY_SYSTEM Ldalvik/annotation/MemberClasses; value={ LTestBadBootstrapArguments$TestersConstantCallSite; } +Annotations on method #14 'bsm' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #15 'bsmDJ' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #16 'bsmDoubleLong' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #19 'bsmReturningTestersConstantCallsite' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #21 'bsmZBCS' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #25 'invokeBoxingArguments' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmDoubleLong" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Ljava/lang/Double; Ljava/lang/Long; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; doubleValue={ 1.79769e+308 } Lannotations/Constant; longValue={ 9223372036854775807 } } fieldOrMethodName="boxingArguments" +Annotations on method #26 'invokeExtraArguments' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 1 } Lannotations/Constant; stringValue={ "2" } Lannotations/Constant; intValue={ 3 } } fieldOrMethodName="extraArguments" +Annotations on method #27 'invokeHappy' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ -1 } Lannotations/Constant; stringValue={ "very" } } fieldOrMethodName="happy" +Annotations on method #28 'invokeIntegerReturnType' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmReturningInteger" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; } returnType=Ljava/lang/Integer; } fieldOrMethodName="integerReturnType" +Annotations on method #29 'invokeMissingParameterTypes' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I D } } constantArgumentsForBootstrapMethod={ } fieldOrMethodName="missingParameterTypes" + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/NoSuchMethodError; } +Annotations on method #30 'invokeNarrowArguments' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmZBCS" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Z B C S } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; booleanValue={ true } Lannotations/Constant; byteValue={ 127 } Lannotations/Constant; charValue={ 65 } Lannotations/Constant; shortValue={ -32768 } } fieldOrMethodName="narrowArguments" +Annotations on method #31 'invokeObjectReturnType' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmReturningObject" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; } returnType=Ljava/lang/Object; } fieldOrMethodName="ObjectReturnType" +Annotations on method #32 'invokeViaCustomCallSiteClass' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmReturningTestersConstantCallsite" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; } returnType=LTestBadBootstrapArguments$TestersConstantCallSite; } fieldOrMethodName="sayHello" +Annotations on method #33 'invokeVoidReturnType' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmReturningVoid" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; } returnType=V } fieldOrMethodName="voidReturnType" +Annotations on method #34 'invokeWideningArguments' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmDJ" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; D J } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; doubleValue={ 1.79769e+308 } Lannotations/Constant; intValue={ 2147483647 } } fieldOrMethodName="wideningArguments" +Annotations on method #35 'invokeWideningBoxingArguments' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsmDoubleLong" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Ljava/lang/Double; Ljava/lang/Long; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; floatValue={ 3.40282e+38 } Lannotations/Constant; longValue={ 2147483647 } } fieldOrMethodName="wideningBoxingArguments" +Annotations on method #36 'invokeWrongArguments' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; stringValue={ "1" } Lannotations/Constant; doubleValue={ 3.14159 } } fieldOrMethodName="wrongArguments" +Annotations on method #37 'invokeWrongArgumentsAgain' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; doubleValue={ 3.14159 } Lannotations/Constant; stringValue={ "pie" } } fieldOrMethodName="wrongArgumentsAgain" +Annotations on method #38 'invokeWrongParameterTypes' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestBadBootstrapArguments; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I D } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ -1 } Lannotations/Constant; stringValue={ "very" } } fieldOrMethodName="wrongParameterTypes" + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/NoSuchMethodError; } + +Class #6 - + Class descriptor : 'LTestBadBootstrapArguments;' + Access flags : 0x0001 (PUBLIC) + Superclass : 'LTestBase;' + Interfaces - + Static fields - + Instance fields - + Direct methods - + #0 : (in LTestBadBootstrapArguments;) name : '<init>' type : '()V' access : 0x10001 (PUBLIC CONSTRUCTOR) code - - registers : 2 + registers : 1 ins : 1 outs : 1 - insns size : 7 16-bit code units -0009e0: |[0009e0] invokecustom.InvokeCustom.<init>:()V -0009f0: 7010 2000 0100 |0000: invoke-direct {v1}, Linvokecustom/Super;.<init>:()V // method@0020 -0009f6: 1200 |0003: const/4 v0, #int 0 // #0 -0009f8: 5910 0000 |0004: iput v0, v1, Linvokecustom/InvokeCustom;.fieldTest9:F // field@0000 -0009fc: 0e00 |0006: return-void + insns size : 4 16-bit code units +001d64: |[001d64] TestBadBootstrapArguments.<init>:()V +001d74: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032 +001d7a: 0e00 |0003: return-void catches : (none) positions : - 0x0000 line=39 - 0x0003 line=115 - 0x0006 line=39 + 0x0000 line=27 locals : - 0x0000 - 0x0007 reg=1 this Linvokecustom/InvokeCustom; + 0x0000 - 0x0004 reg=0 this LTestBadBootstrapArguments; - #2 : (in Linvokecustom/InvokeCustom;) - name : '<init>' - type : '(I)V' - access : 0x10001 (PUBLIC CONSTRUCTOR) + #1 : (in LTestBadBootstrapArguments;) + name : 'boxingArguments' + type : '()V' + access : 0x000a (PRIVATE STATIC) code - - registers : 5 - ins : 2 + registers : 2 + ins : 0 outs : 2 - insns size : 37 16-bit code units -000a00: |[000a00] invokecustom.InvokeCustom.<init>:(I)V -000a10: 7010 2000 0300 |0000: invoke-direct {v3}, Linvokecustom/Super;.<init>:()V // method@0020 -000a16: 1200 |0003: const/4 v0, #int 0 // #0 -000a18: 5930 0000 |0004: iput v0, v3, Linvokecustom/InvokeCustom;.fieldTest9:F // field@0000 -000a1c: 6200 0200 |0006: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000a20: 2201 1000 |0008: new-instance v1, Ljava/lang/StringBuilder; // type@0010 -000a24: 7010 3000 0100 |000a: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -000a2a: 1a02 1a00 |000d: const-string v2, "InvokeCustom.<init>(" // string@001a -000a2e: 6e20 3600 2100 |000f: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000a34: 0c01 |0012: move-result-object v1 -000a36: 6e20 3300 4100 |0013: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0033 -000a3c: 0c01 |0016: move-result-object v1 -000a3e: 1a02 0800 |0017: const-string v2, ")" // string@0008 -000a42: 6e20 3600 2100 |0019: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000a48: 0c01 |001c: move-result-object v1 -000a4a: 6e10 3700 0100 |001d: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -000a50: 0c01 |0020: move-result-object v1 -000a52: 6e20 2900 1000 |0021: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -000a58: 0e00 |0024: return-void - catches : (none) - positions : - 0x0000 line=40 - 0x0003 line=115 - 0x0006 line=41 - 0x0024 line=42 - locals : - 0x0000 - 0x0025 reg=3 this Linvokecustom/InvokeCustom; - 0x0000 - 0x0025 reg=4 (null) I - - #3 : (in Linvokecustom/InvokeCustom;) - name : 'bsmCreateCallSite' - type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite;' - access : 0x0009 (PUBLIC STATIC) + insns size : 8 16-bit code units +001d7c: |[001d7c] TestBadBootstrapArguments.boxingArguments:()V +001d8c: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001d90: 1a01 e900 |0002: const-string v1, "boxingArguments" // string@00e9 +001d94: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +001d9a: 0e00 |0007: return-void + catches : (none) + positions : + 0x0000 line=348 + 0x0007 line=349 + locals : + + #2 : (in LTestBadBootstrapArguments;) + name : 'bsm' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ILjava/lang/String;)Ljava/lang/invoke/CallSite;' + access : 0x000a (PRIVATE STATIC) code - registers : 7 - ins : 4 - outs : 2 - insns size : 36 16-bit code units -000a5c: |[000a5c] invokecustom.InvokeCustom.bsmCreateCallSite:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite; -000a6c: 6200 0200 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000a70: 2201 1000 |0002: new-instance v1, Ljava/lang/StringBuilder; // type@0010 -000a74: 7010 3000 0100 |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -000a7a: 1a02 6000 |0007: const-string v2, "bsmCreateCallSite [" // string@0060 -000a7e: 6e20 3600 2100 |0009: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000a84: 0c01 |000c: move-result-object v1 -000a86: 6e20 3500 6100 |000d: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@0035 -000a8c: 0c01 |0010: move-result-object v1 -000a8e: 1a02 5900 |0011: const-string v2, "]" // string@0059 -000a92: 6e20 3600 2100 |0013: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000a98: 0c01 |0016: move-result-object v1 -000a9a: 6e10 3700 0100 |0017: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -000aa0: 0c01 |001a: move-result-object v1 -000aa2: 6e20 2900 1000 |001b: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -000aa8: 2200 1400 |001e: new-instance v0, Ljava/lang/invoke/ConstantCallSite; // type@0014 -000aac: 7020 3800 6000 |0020: invoke-direct {v0, v6}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@0038 -000ab2: 1100 |0023: return-object v0 - catches : (none) - positions : - 0x0000 line=160 - 0x001e line=161 - locals : - 0x0000 - 0x0024 reg=3 (null) Ljava/lang/invoke/MethodHandles$Lookup; - 0x0000 - 0x0024 reg=4 (null) Ljava/lang/String; - 0x0000 - 0x0024 reg=5 (null) Ljava/lang/invoke/MethodType; - 0x0000 - 0x0024 reg=6 (null) Ljava/lang/invoke/MethodHandle; - - #4 : (in Linvokecustom/InvokeCustom;) - name : 'bsmLookupStatic' - type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' - access : 0x0009 (PUBLIC STATIC) + ins : 5 + outs : 4 + insns size : 85 16-bit code units +001bb4: |[001bb4] TestBadBootstrapArguments.bsm:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ILjava/lang/String;)Ljava/lang/invoke/CallSite; +001bc4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001bc8: 1a01 ee00 |0002: const-string v1, "bsm(" // string@00ee +001bcc: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +001bd2: 6200 1300 |0007: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001bd6: 6e10 dc00 0200 |0009: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc +001bdc: 0c01 |000c: move-result-object v1 +001bde: 6e20 af00 1000 |000d: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +001be4: 6200 1300 |0010: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001be8: 1a01 0c00 |0012: const-string v1, ", " // string@000c +001bec: 6e20 b000 1000 |0014: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +001bf2: 6200 1300 |0017: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001bf6: 6e20 b000 3000 |0019: invoke-virtual {v0, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +001bfc: 6200 1300 |001c: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001c00: 1a01 0c00 |001e: const-string v1, ", " // string@000c +001c04: 6e20 b000 1000 |0020: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +001c0a: 6200 1300 |0023: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001c0e: 6e20 af00 4000 |0025: invoke-virtual {v0, v4}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +001c14: 6200 1300 |0028: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001c18: 1a01 0c00 |002a: const-string v1, ", " // string@000c +001c1c: 6e20 b000 1000 |002c: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +001c22: 6200 1300 |002f: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001c26: 6e20 ad00 5000 |0031: invoke-virtual {v0, v5}, Ljava/io/PrintStream;.print:(I)V // method@00ad +001c2c: 6200 1300 |0034: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001c30: 1a01 0c00 |0036: const-string v1, ", " // string@000c +001c34: 6e20 b000 1000 |0038: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +001c3a: 6200 1300 |003b: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001c3e: 6e20 b000 6000 |003d: invoke-virtual {v0, v6}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +001c44: 6200 1300 |0040: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001c48: 1a01 0700 |0042: const-string v1, ")" // string@0007 +001c4c: 6e20 b300 1000 |0044: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +001c52: 6e10 dc00 0200 |0047: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc +001c58: 0c00 |004a: move-result-object v0 +001c5a: 6e40 d800 0243 |004b: invoke-virtual {v2, v0, v3, v4}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +001c60: 0c00 |004e: move-result-object v0 +001c62: 2201 3400 |004f: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +001c66: 7020 d200 0100 |0051: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +001c6c: 1101 |0054: return-object v1 + catches : (none) + positions : + 0x0000 line=35 + 0x0007 line=36 + 0x0010 line=37 + 0x0017 line=38 + 0x001c line=39 + 0x0023 line=40 + 0x0028 line=41 + 0x002f line=42 + 0x0034 line=43 + 0x003b line=44 + 0x0040 line=45 + 0x0047 line=46 + 0x004f line=47 + locals : + 0x004f - 0x0055 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0055 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0055 reg=3 methodName Ljava/lang/String; + 0x0000 - 0x0055 reg=4 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x0055 reg=5 extraInt I + 0x0000 - 0x0055 reg=6 extraString Ljava/lang/String; + + #3 : (in LTestBadBootstrapArguments;) + name : 'bsmDJ' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;DJ)Ljava/lang/invoke/CallSite;' + access : 0x000a (PRIVATE STATIC) code - - registers : 5 - ins : 3 + registers : 9 + ins : 7 outs : 4 - insns size : 29 16-bit code units -000ab4: |[000ab4] invokecustom.InvokeCustom.bsmLookupStatic:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; -000ac4: 6200 0200 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000ac8: 1a01 6200 |0002: const-string v1, "bsmLookupStatic []" // string@0062 -000acc: 6e20 2900 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -000ad2: 7100 4600 0000 |0007: invoke-static {}, Ljava/lang/invoke/MethodHandles;.lookup:()Ljava/lang/invoke/MethodHandles$Lookup; // method@0046 -000ad8: 0c00 |000a: move-result-object v0 -000ada: 6e10 4500 0000 |000b: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@0045 -000ae0: 0c01 |000e: move-result-object v1 -000ae2: 6e40 4400 1043 |000f: invoke-virtual {v0, v1, v3, v4}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@0044 -000ae8: 0c00 |0012: move-result-object v0 -000aea: 2201 1400 |0013: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0014 -000aee: 6e20 3a00 4000 |0015: invoke-virtual {v0, v4}, Ljava/lang/invoke/MethodHandle;.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@003a -000af4: 0c00 |0018: move-result-object v0 -000af6: 7020 3800 0100 |0019: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@0038 -000afc: 1101 |001c: return-object v1 - catches : (none) - positions : - 0x0000 line=142 - 0x0007 line=143 - 0x000b line=144 - 0x0013 line=145 - locals : - 0x0000 - 0x001d reg=2 (null) Ljava/lang/invoke/MethodHandles$Lookup; - 0x0000 - 0x001d reg=3 (null) Ljava/lang/String; - 0x0000 - 0x001d reg=4 (null) Ljava/lang/invoke/MethodType; - - #5 : (in Linvokecustom/InvokeCustom;) - name : 'bsmLookupStaticWithExtraArgs' - type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IJFD)Ljava/lang/invoke/CallSite;' - access : 0x0009 (PUBLIC STATIC) + insns size : 45 16-bit code units +001c70: |[001c70] TestBadBootstrapArguments.bsmDJ:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;DJ)Ljava/lang/invoke/CallSite; +001c80: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001c84: 1a01 f100 |0002: const-string v1, "bsmDJ(..., " // string@00f1 +001c88: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +001c8e: 6200 1300 |0007: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001c92: 6e30 ac00 5006 |0009: invoke-virtual {v0, v5, v6}, Ljava/io/PrintStream;.print:(D)V // method@00ac +001c98: 6200 1300 |000c: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001c9c: 1a01 0c00 |000e: const-string v1, ", " // string@000c +001ca0: 6e20 b000 1000 |0010: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +001ca6: 6200 1300 |0013: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001caa: 6e30 ae00 7008 |0015: invoke-virtual {v0, v7, v8}, Ljava/io/PrintStream;.print:(J)V // method@00ae +001cb0: 6200 1300 |0018: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001cb4: 1a01 0700 |001a: const-string v1, ")" // string@0007 +001cb8: 6e20 b300 1000 |001c: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +001cbe: 6e10 dc00 0200 |001f: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc +001cc4: 0c00 |0022: move-result-object v0 +001cc6: 6e40 d800 0243 |0023: invoke-virtual {v2, v0, v3, v4}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +001ccc: 0c00 |0026: move-result-object v0 +001cce: 2201 3400 |0027: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +001cd2: 7020 d200 0100 |0029: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +001cd8: 1101 |002c: return-object v1 + catches : (none) + positions : + 0x0000 line=270 + 0x0007 line=271 + 0x000c line=272 + 0x0013 line=273 + 0x0018 line=274 + 0x001f line=275 + 0x0027 line=276 + locals : + 0x0027 - 0x002d reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x002d reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x002d reg=3 methodName Ljava/lang/String; + 0x0000 - 0x002d reg=4 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x002d reg=5 extraArg0 D + 0x0000 - 0x002d reg=7 extraArg1 J + + #4 : (in LTestBadBootstrapArguments;) + name : 'bsmDoubleLong' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Double;Ljava/lang/Long;)Ljava/lang/invoke/CallSite;' + access : 0x000a (PRIVATE STATIC) code - - registers : 12 - ins : 9 + registers : 7 + ins : 5 outs : 4 - insns size : 82 16-bit code units -000b00: |[000b00] invokecustom.InvokeCustom.bsmLookupStaticWithExtraArgs:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IJFD)Ljava/lang/invoke/CallSite; -000b10: 6200 0200 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000b14: 2201 1000 |0002: new-instance v1, Ljava/lang/StringBuilder; // type@0010 -000b18: 7010 3000 0100 |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -000b1e: 1a02 6400 |0007: const-string v2, "bsmLookupStaticWithExtraArgs [" // string@0064 -000b22: 6e20 3600 2100 |0009: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000b28: 0c01 |000c: move-result-object v1 -000b2a: 6e20 3300 6100 |000d: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0033 -000b30: 0c01 |0010: move-result-object v1 -000b32: 1a02 0900 |0011: const-string v2, ", " // string@0009 -000b36: 6e20 3600 2100 |0013: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000b3c: 0c01 |0016: move-result-object v1 -000b3e: 6e30 3400 7108 |0017: invoke-virtual {v1, v7, v8}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@0034 -000b44: 0c01 |001a: move-result-object v1 -000b46: 1a02 0900 |001b: const-string v2, ", " // string@0009 -000b4a: 6e20 3600 2100 |001d: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000b50: 0c01 |0020: move-result-object v1 -000b52: 6e20 3200 9100 |0021: invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;.append:(F)Ljava/lang/StringBuilder; // method@0032 -000b58: 0c01 |0024: move-result-object v1 -000b5a: 1a02 0900 |0025: const-string v2, ", " // string@0009 -000b5e: 6e20 3600 2100 |0027: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000b64: 0c01 |002a: move-result-object v1 -000b66: 6e30 3100 a10b |002b: invoke-virtual {v1, v10, v11}, Ljava/lang/StringBuilder;.append:(D)Ljava/lang/StringBuilder; // method@0031 -000b6c: 0c01 |002e: move-result-object v1 -000b6e: 1a02 5900 |002f: const-string v2, "]" // string@0059 -000b72: 6e20 3600 2100 |0031: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000b78: 0c01 |0034: move-result-object v1 -000b7a: 6e10 3700 0100 |0035: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -000b80: 0c01 |0038: move-result-object v1 -000b82: 6e20 2900 1000 |0039: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -000b88: 7100 4600 0000 |003c: invoke-static {}, Ljava/lang/invoke/MethodHandles;.lookup:()Ljava/lang/invoke/MethodHandles$Lookup; // method@0046 -000b8e: 0c00 |003f: move-result-object v0 -000b90: 6e10 4500 0000 |0040: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@0045 -000b96: 0c01 |0043: move-result-object v1 -000b98: 6e40 4400 1054 |0044: invoke-virtual {v0, v1, v4, v5}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@0044 -000b9e: 0c00 |0047: move-result-object v0 -000ba0: 2201 1400 |0048: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0014 -000ba4: 6e20 3a00 5000 |004a: invoke-virtual {v0, v5}, Ljava/lang/invoke/MethodHandle;.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@003a -000baa: 0c00 |004d: move-result-object v0 -000bac: 7020 3800 0100 |004e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@0038 -000bb2: 1101 |0051: return-object v1 - catches : (none) - positions : - 0x0000 line=151 - 0x003c line=152 - 0x0040 line=153 - 0x0048 line=154 - locals : - 0x0000 - 0x0052 reg=3 (null) Ljava/lang/invoke/MethodHandles$Lookup; - 0x0000 - 0x0052 reg=4 (null) Ljava/lang/String; - 0x0000 - 0x0052 reg=5 (null) Ljava/lang/invoke/MethodType; - 0x0000 - 0x0052 reg=6 (null) I - 0x0000 - 0x0052 reg=7 (null) J - 0x0000 - 0x0052 reg=9 (null) F - 0x0000 - 0x0052 reg=10 (null) D - - #6 : (in Linvokecustom/InvokeCustom;) - name : 'bsmLookupTest9' - type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite;' - access : 0x0009 (PUBLIC STATIC) + insns size : 45 16-bit code units +001cdc: |[001cdc] TestBadBootstrapArguments.bsmDoubleLong:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Double;Ljava/lang/Long;)Ljava/lang/invoke/CallSite; +001cec: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001cf0: 1a01 f300 |0002: const-string v1, "bsmDoubleLong(..., " // string@00f3 +001cf4: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +001cfa: 6200 1300 |0007: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001cfe: 6e20 af00 5000 |0009: invoke-virtual {v0, v5}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +001d04: 6200 1300 |000c: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001d08: 1a01 0c00 |000e: const-string v1, ", " // string@000c +001d0c: 6e20 b000 1000 |0010: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +001d12: 6200 1300 |0013: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001d16: 6e20 af00 6000 |0015: invoke-virtual {v0, v6}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +001d1c: 6200 1300 |0018: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001d20: 1a01 0700 |001a: const-string v1, ")" // string@0007 +001d24: 6e20 b300 1000 |001c: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +001d2a: 6e10 dc00 0200 |001f: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc +001d30: 0c00 |0022: move-result-object v0 +001d32: 6e40 d800 0243 |0023: invoke-virtual {v2, v0, v3, v4}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +001d38: 0c00 |0026: move-result-object v0 +001d3a: 2201 3400 |0027: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +001d3e: 7020 d200 0100 |0029: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +001d44: 1101 |002c: return-object v1 + catches : (none) + positions : + 0x0000 line=314 + 0x0007 line=315 + 0x000c line=316 + 0x0013 line=317 + 0x0018 line=318 + 0x001f line=319 + 0x0027 line=320 + locals : + 0x0027 - 0x002d reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x002d reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x002d reg=3 methodName Ljava/lang/String; + 0x0000 - 0x002d reg=4 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x002d reg=5 extraArg0 Ljava/lang/Double; + 0x0000 - 0x002d reg=6 extraArg1 Ljava/lang/Long; + + #5 : (in LTestBadBootstrapArguments;) + name : 'bsmReturningInteger' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Integer;' + access : 0x0008 (STATIC) code - - registers : 13 - ins : 10 + registers : 5 + ins : 3 + outs : 2 + insns size : 13 16-bit code units +001b5c: |[001b5c] TestBadBootstrapArguments.bsmReturningInteger:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Integer; +001b6c: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001b70: 1a01 eb00 |0002: const-string v1, "bsm returning Integer value." // string@00eb +001b74: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +001b7a: 1230 |0007: const/4 v0, #int 3 // #3 +001b7c: 7110 bd00 0000 |0008: invoke-static {v0}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd +001b82: 0c00 |000b: move-result-object v0 +001b84: 1100 |000c: return-object v0 + catches : (none) + positions : + 0x0000 line=425 + 0x0007 line=426 + locals : + 0x0000 - 0x000d reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x000d reg=3 name Ljava/lang/String; + 0x0000 - 0x000d reg=4 type Ljava/lang/invoke/MethodType; + + #6 : (in LTestBadBootstrapArguments;) + name : 'bsmReturningObject' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Object;' + access : 0x0008 (STATIC) + code - + registers : 5 + ins : 3 + outs : 2 + insns size : 13 16-bit code units +001b88: |[001b88] TestBadBootstrapArguments.bsmReturningObject:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Object; +001b98: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001b9c: 1a01 ec00 |0002: const-string v1, "bsm returning Object value." // string@00ec +001ba0: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +001ba6: 2200 2a00 |0007: new-instance v0, Ljava/lang/Object; // type@002a +001baa: 7010 bf00 0000 |0009: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@00bf +001bb0: 1100 |000c: return-object v0 + catches : (none) + positions : + 0x0000 line=402 + 0x0007 line=403 + locals : + 0x0000 - 0x000d reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x000d reg=3 name Ljava/lang/String; + 0x0000 - 0x000d reg=4 type Ljava/lang/invoke/MethodType; + + #7 : (in LTestBadBootstrapArguments;) + name : 'bsmReturningTestersConstantCallsite' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)LTestBadBootstrapArguments$TestersConstantCallSite;' + access : 0x0008 (STATIC) + code - + registers : 5 + ins : 3 outs : 4 - insns size : 135 16-bit code units -000bb4: |[000bb4] invokecustom.InvokeCustom.bsmLookupTest9:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite; -000bc4: 6200 0200 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000bc8: 2201 1000 |0002: new-instance v1, Ljava/lang/StringBuilder; // type@0010 -000bcc: 7010 3000 0100 |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -000bd2: 1a02 6600 |0007: const-string v2, "bsmLookupTest9 [" // string@0066 -000bd6: 6e20 3600 2100 |0009: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000bdc: 0c01 |000c: move-result-object v1 -000bde: 6e20 3500 6100 |000d: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@0035 -000be4: 0c01 |0010: move-result-object v1 -000be6: 1a02 0900 |0011: const-string v2, ", " // string@0009 -000bea: 6e20 3600 2100 |0013: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000bf0: 0c01 |0016: move-result-object v1 -000bf2: 6e20 3500 7100 |0017: invoke-virtual {v1, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@0035 -000bf8: 0c01 |001a: move-result-object v1 -000bfa: 1a02 0900 |001b: const-string v2, ", " // string@0009 -000bfe: 6e20 3600 2100 |001d: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000c04: 0c01 |0020: move-result-object v1 -000c06: 6e20 3500 8100 |0021: invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@0035 -000c0c: 0c01 |0024: move-result-object v1 -000c0e: 1a02 0900 |0025: const-string v2, ", " // string@0009 -000c12: 6e20 3600 2100 |0027: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000c18: 0c01 |002a: move-result-object v1 -000c1a: 6e20 3500 9100 |002b: invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@0035 -000c20: 0c01 |002e: move-result-object v1 -000c22: 1a02 5900 |002f: const-string v2, "]" // string@0059 -000c26: 6e20 3600 2100 |0031: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000c2c: 0c01 |0034: move-result-object v1 -000c2e: 6e10 3700 0100 |0035: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -000c34: 0c01 |0038: move-result-object v1 -000c36: 6e20 2900 1000 |0039: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -000c3c: 6200 0200 |003c: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000c40: 2201 1000 |003e: new-instance v1, Ljava/lang/StringBuilder; // type@0010 -000c44: 7010 3000 0100 |0040: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -000c4a: 6e20 3600 4100 |0043: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000c50: 0c01 |0046: move-result-object v1 -000c52: 1a02 0100 |0047: const-string v2, " " // string@0001 -000c56: 6e20 3600 2100 |0049: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000c5c: 0c01 |004c: move-result-object v1 -000c5e: 6e20 3500 5100 |004d: invoke-virtual {v1, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@0035 -000c64: 0c01 |0050: move-result-object v1 -000c66: 6e10 3700 0100 |0051: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -000c6c: 0c01 |0054: move-result-object v1 -000c6e: 6e20 2900 1000 |0055: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -000c74: 7120 0800 7600 |0058: invoke-static {v6, v7}, Linvokecustom/InvokeCustom;.checkStaticFieldTest9:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V // method@0008 -000c7a: 2200 0700 |005b: new-instance v0, Linvokecustom/InvokeCustom; // type@0007 -000c7e: 7010 0100 0000 |005d: invoke-direct {v0}, Linvokecustom/InvokeCustom;.<init>:()V // method@0001 -000c84: 7030 0700 8009 |0060: invoke-direct {v0, v8, v9}, Linvokecustom/InvokeCustom;.checkFieldTest9:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V // method@0007 -000c8a: fa20 4000 0a00 2700 |0063: invoke-polymorphic {v10, v0}, Ljava/lang/invoke/MethodHandle;.invokeExact:([Ljava/lang/Object;)Ljava/lang/Object;, (Linvokecustom/InvokeCustom;)V // method@0040, proto@0027 -000c92: 1230 |0067: const/4 v0, #int 3 // #3 -000c94: fa20 4000 0b00 0500 |0068: invoke-polymorphic {v11, v0}, Ljava/lang/invoke/MethodHandle;.invokeExact:([Ljava/lang/Object;)Ljava/lang/Object;, (I)Linvokecustom/InvokeCustom; // method@0040, proto@0005 -000c9c: 0c00 |006c: move-result-object v0 -000c9e: fa20 3b00 0c00 2700 |006d: invoke-polymorphic {v12, v0}, Ljava/lang/invoke/MethodHandle;.invoke:([Ljava/lang/Object;)Ljava/lang/Object;, (Linvokecustom/InvokeCustom;)V // method@003b, proto@0027 -000ca6: 7100 4600 0000 |0071: invoke-static {}, Ljava/lang/invoke/MethodHandles;.lookup:()Ljava/lang/invoke/MethodHandles$Lookup; // method@0046 -000cac: 0c00 |0074: move-result-object v0 -000cae: 6e10 4500 0000 |0075: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@0045 -000cb4: 0c01 |0078: move-result-object v1 -000cb6: 6e40 4400 1054 |0079: invoke-virtual {v0, v1, v4, v5}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@0044 -000cbc: 0c00 |007c: move-result-object v0 -000cbe: 2201 1400 |007d: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0014 -000cc2: 6e20 3a00 5000 |007f: invoke-virtual {v0, v5}, Ljava/lang/invoke/MethodHandle;.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@003a -000cc8: 0c00 |0082: move-result-object v0 -000cca: 7020 3800 0100 |0083: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@0038 -000cd0: 1101 |0086: return-object v1 - catches : (none) - positions : - 0x0000 line=170 - 0x003c line=172 - 0x0058 line=175 - 0x005b line=176 - 0x0060 line=177 - 0x0063 line=180 - 0x0067 line=182 - 0x006d line=183 - 0x0071 line=185 - 0x0075 line=186 - 0x007d line=187 - locals : - 0x0000 - 0x0087 reg=3 (null) Ljava/lang/invoke/MethodHandles$Lookup; - 0x0000 - 0x0087 reg=4 (null) Ljava/lang/String; - 0x0000 - 0x0087 reg=5 (null) Ljava/lang/invoke/MethodType; - 0x0000 - 0x0087 reg=6 (null) Ljava/lang/invoke/MethodHandle; - 0x0000 - 0x0087 reg=7 (null) Ljava/lang/invoke/MethodHandle; - 0x0000 - 0x0087 reg=8 (null) Ljava/lang/invoke/MethodHandle; - 0x0000 - 0x0087 reg=9 (null) Ljava/lang/invoke/MethodHandle; - 0x0000 - 0x0087 reg=10 (null) Ljava/lang/invoke/MethodHandle; - 0x0000 - 0x0087 reg=11 (null) Ljava/lang/invoke/MethodHandle; - 0x0000 - 0x0087 reg=12 (null) Ljava/lang/invoke/MethodHandle; - - #7 : (in Linvokecustom/InvokeCustom;) - name : 'checkFieldTest9' - type : '(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V' - access : 0x0002 (PRIVATE) + insns size : 14 16-bit code units +001b30: |[001b30] TestBadBootstrapArguments.bsmReturningTestersConstantCallsite:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)LTestBadBootstrapArguments$TestersConstantCallSite; +001b40: 2200 0700 |0000: new-instance v0, LTestBadBootstrapArguments$TestersConstantCallSite; // type@0007 +001b44: 6e10 dc00 0200 |0002: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc +001b4a: 0c01 |0005: move-result-object v1 +001b4c: 6e40 d800 1243 |0006: invoke-virtual {v2, v1, v3, v4}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +001b52: 0c01 |0009: move-result-object v1 +001b54: 7020 0800 1000 |000a: invoke-direct {v0, v1}, LTestBadBootstrapArguments$TestersConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@0008 +001b5a: 1100 |000d: return-object v0 + catches : (none) + positions : + 0x0000 line=455 + locals : + 0x0000 - 0x000e reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x000e reg=3 name Ljava/lang/String; + 0x0000 - 0x000e reg=4 type Ljava/lang/invoke/MethodType; + + #8 : (in LTestBadBootstrapArguments;) + name : 'bsmReturningVoid' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V' + access : 0x0008 (STATIC) code - - registers : 9 + registers : 5 ins : 3 - outs : 3 - insns size : 82 16-bit code units -000cd4: |[000cd4] invokecustom.InvokeCustom.checkFieldTest9:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V -000ce4: 1405 0ff0 6a20 |0000: const v5, #float 1.99e-19 // #206af00f -000cea: fa20 4000 6700 0100 |0003: invoke-polymorphic {v7, v6}, Ljava/lang/invoke/MethodHandle;.invokeExact:([Ljava/lang/Object;)Ljava/lang/Object;, (Linvokecustom/InvokeCustom;)F // method@0040, proto@0001 -000cf2: 0a00 |0007: move-result v0 -000cf4: fa30 4000 6805 2800 |0008: invoke-polymorphic {v8, v6, v5}, Ljava/lang/invoke/MethodHandle;.invokeExact:([Ljava/lang/Object;)Ljava/lang/Object;, (Linvokecustom/InvokeCustom;F)V // method@0040, proto@0028 -000cfc: fa20 4000 6700 0100 |000c: invoke-polymorphic {v7, v6}, Ljava/lang/invoke/MethodHandle;.invokeExact:([Ljava/lang/Object;)Ljava/lang/Object;, (Linvokecustom/InvokeCustom;)F // method@0040, proto@0001 -000d04: 0a01 |0010: move-result v1 -000d06: 6202 0200 |0011: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000d0a: 2203 1000 |0013: new-instance v3, Ljava/lang/StringBuilder; // type@0010 -000d0e: 7010 3000 0300 |0015: invoke-direct {v3}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -000d14: 1a04 6800 |0018: const-string v4, "checkFieldTest9: old " // string@0068 -000d18: 6e20 3600 4300 |001a: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000d1e: 0c03 |001d: move-result-object v3 -000d20: 6e20 3200 0300 |001e: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(F)Ljava/lang/StringBuilder; // method@0032 -000d26: 0c00 |0021: move-result-object v0 -000d28: 1a03 0700 |0022: const-string v3, " new " // string@0007 -000d2c: 6e20 3600 3000 |0024: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000d32: 0c00 |0027: move-result-object v0 -000d34: 6e20 3200 1000 |0028: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(F)Ljava/lang/StringBuilder; // method@0032 -000d3a: 0c00 |002b: move-result-object v0 -000d3c: 1a03 0600 |002c: const-string v3, " expected " // string@0006 -000d40: 6e20 3600 3000 |002e: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000d46: 0c00 |0031: move-result-object v0 -000d48: 6e20 3200 5000 |0032: invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;.append:(F)Ljava/lang/StringBuilder; // method@0032 -000d4e: 0c00 |0035: move-result-object v0 -000d50: 1a03 0100 |0036: const-string v3, " " // string@0001 -000d54: 6e20 3600 3000 |0038: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000d5a: 0c00 |003b: move-result-object v0 -000d5c: 6e10 3700 0000 |003c: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -000d62: 0c00 |003f: move-result-object v0 -000d64: 6e20 2300 0200 |0040: invoke-virtual {v2, v0}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@0023 -000d6a: 6202 0200 |0043: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000d6e: 2d00 0105 |0045: cmpl-float v0, v1, v5 -000d72: 3900 0800 |0047: if-nez v0, 004f // +0008 -000d76: 1a00 4400 |0049: const-string v0, "OK" // string@0044 -000d7a: 6e20 2900 0200 |004b: invoke-virtual {v2, v0}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -000d80: 0e00 |004e: return-void -000d82: 1a00 1100 |004f: const-string v0, "ERROR" // string@0011 -000d86: 28fa |0051: goto 004b // -0006 - catches : (none) - positions : - 0x0003 line=120 - 0x0008 line=121 - 0x000c line=122 - 0x0011 line=123 - 0x0043 line=125 - 0x004e line=126 - 0x004f line=125 - locals : - 0x0000 - 0x0052 reg=6 this Linvokecustom/InvokeCustom; - 0x0000 - 0x0052 reg=7 (null) Ljava/lang/invoke/MethodHandle; - 0x0000 - 0x0052 reg=8 (null) Ljava/lang/invoke/MethodHandle; - - #8 : (in Linvokecustom/InvokeCustom;) - name : 'checkStaticFieldTest9' - type : '(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V' + outs : 2 + insns size : 8 16-bit code units +001d9c: |[001d9c] TestBadBootstrapArguments.bsmReturningVoid:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V +001dac: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001db0: 1a01 ed00 |0002: const-string v1, "bsm returning void value." // string@00ed +001db4: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +001dba: 0e00 |0007: return-void + catches : (none) + positions : + 0x0000 line=380 + 0x0007 line=381 + locals : + 0x0000 - 0x0008 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0008 reg=3 name Ljava/lang/String; + 0x0000 - 0x0008 reg=4 type Ljava/lang/invoke/MethodType; + + #9 : (in LTestBadBootstrapArguments;) + name : 'bsmZBCS' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ZBCS)Ljava/lang/invoke/CallSite;' access : 0x000a (PRIVATE STATIC) code - registers : 8 - ins : 2 - outs : 2 - insns size : 80 16-bit code units -000d88: |[000d88] invokecustom.InvokeCustom.checkStaticFieldTest9:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V -000d98: 1405 1032 5476 |0000: const v5, #float 1.07596e+33 // #76543210 -000d9e: fa10 4000 0600 0200 |0003: invoke-polymorphic {v6}, Ljava/lang/invoke/MethodHandle;.invokeExact:([Ljava/lang/Object;)Ljava/lang/Object;, ()I // method@0040, proto@0002 -000da6: 0a00 |0007: move-result v0 -000da8: fa20 4000 5700 2500 |0008: invoke-polymorphic {v7, v5}, Ljava/lang/invoke/MethodHandle;.invokeExact:([Ljava/lang/Object;)Ljava/lang/Object;, (I)V // method@0040, proto@0025 -000db0: fa10 4000 0600 0200 |000c: invoke-polymorphic {v6}, Ljava/lang/invoke/MethodHandle;.invokeExact:([Ljava/lang/Object;)Ljava/lang/Object;, ()I // method@0040, proto@0002 -000db8: 0a01 |0010: move-result v1 -000dba: 6202 0200 |0011: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000dbe: 2203 1000 |0013: new-instance v3, Ljava/lang/StringBuilder; // type@0010 -000dc2: 7010 3000 0300 |0015: invoke-direct {v3}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -000dc8: 1a04 6a00 |0018: const-string v4, "checkStaticFieldTest9: old " // string@006a -000dcc: 6e20 3600 4300 |001a: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000dd2: 0c03 |001d: move-result-object v3 -000dd4: 6e20 3300 0300 |001e: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0033 -000dda: 0c00 |0021: move-result-object v0 -000ddc: 1a03 0700 |0022: const-string v3, " new " // string@0007 -000de0: 6e20 3600 3000 |0024: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000de6: 0c00 |0027: move-result-object v0 -000de8: 6e20 3300 1000 |0028: invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0033 -000dee: 0c00 |002b: move-result-object v0 -000df0: 1a03 0600 |002c: const-string v3, " expected " // string@0006 -000df4: 6e20 3600 3000 |002e: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000dfa: 0c00 |0031: move-result-object v0 -000dfc: 6e20 3300 5000 |0032: invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0033 -000e02: 0c00 |0035: move-result-object v0 -000e04: 1a03 0100 |0036: const-string v3, " " // string@0001 -000e08: 6e20 3600 3000 |0038: invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -000e0e: 0c00 |003b: move-result-object v0 -000e10: 6e10 3700 0000 |003c: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -000e16: 0c00 |003f: move-result-object v0 -000e18: 6e20 2300 0200 |0040: invoke-virtual {v2, v0}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@0023 -000e1e: 6202 0200 |0043: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000e22: 3351 0800 |0045: if-ne v1, v5, 004d // +0008 -000e26: 1a00 4400 |0047: const-string v0, "OK" // string@0044 -000e2a: 6e20 2900 0200 |0049: invoke-virtual {v2, v0}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -000e30: 0e00 |004c: return-void -000e32: 1a00 1100 |004d: const-string v0, "ERROR" // string@0011 -000e36: 28fa |004f: goto 0049 // -0006 - catches : (none) - positions : - 0x0003 line=107 - 0x0008 line=108 - 0x000c line=109 - 0x0011 line=110 - 0x0043 line=112 - 0x004c line=113 - 0x004d line=112 - locals : - 0x0000 - 0x0050 reg=6 (null) Ljava/lang/invoke/MethodHandle; - 0x0000 - 0x0050 reg=7 (null) Ljava/lang/invoke/MethodHandle; - - #9 : (in Linvokecustom/InvokeCustom;) - name : 'lambda$lambdaTest$0' - type : '(Ljava/lang/String;)Z' - access : 0x100a (PRIVATE STATIC SYNTHETIC) + ins : 7 + outs : 0 + insns size : 5 16-bit code units +001d48: |[001d48] TestBadBootstrapArguments.bsmZBCS:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ZBCS)Ljava/lang/invoke/CallSite; +001d58: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001d5e: 1200 |0003: const/4 v0, #int 0 // #0 +001d60: 1100 |0004: return-object v0 + catches : (none) + positions : + 0x0000 line=227 + 0x0003 line=228 + locals : + 0x0000 - 0x0005 reg=1 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0005 reg=2 methodName Ljava/lang/String; + 0x0000 - 0x0005 reg=3 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x0005 reg=4 extraArg0 Z + 0x0000 - 0x0005 reg=5 extraArg1 B + 0x0000 - 0x0005 reg=6 extraArg2 C + 0x0000 - 0x0005 reg=7 extraArg3 S + + #10 : (in LTestBadBootstrapArguments;) + name : 'extraArguments' + type : '()V' + access : 0x000a (PRIVATE STATIC) code - - registers : 3 - ins : 1 + registers : 2 + ins : 0 outs : 2 - insns size : 11 16-bit code units -000e38: |[000e38] invokecustom.InvokeCustom.lambda$lambdaTest$0:(Ljava/lang/String;)Z -000e48: 1a00 4500 |0000: const-string v0, "One" // string@0045 -000e4c: 6e10 2f00 0200 |0002: invoke-virtual {v2}, Ljava/lang/String;.trim:()Ljava/lang/String; // method@002f -000e52: 0c01 |0005: move-result-object v1 -000e54: 6e20 2e00 1000 |0006: invoke-virtual {v0, v1}, Ljava/lang/String;.equals:(Ljava/lang/Object;)Z // method@002e -000e5a: 0a00 |0009: move-result v0 -000e5c: 0f00 |000a: return v0 + insns size : 8 16-bit code units +001dbc: |[001dbc] TestBadBootstrapArguments.extraArguments:()V +001dcc: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001dd0: 1a01 2001 |0002: const-string v1, "extraArguments" // string@0120 +001dd4: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +001dda: 0e00 |0007: return-void catches : (none) positions : - 0x0000 line=192 + 0x0000 line=158 + 0x0007 line=159 locals : - 0x0000 - 0x000b reg=2 (null) Ljava/lang/String; - #10 : (in Linvokecustom/InvokeCustom;) - name : 'lambdaTest' + #11 : (in LTestBadBootstrapArguments;) + name : 'happy' type : '()V' - access : 0x0009 (PUBLIC STATIC) + access : 0x000a (PRIVATE STATIC) code - - registers : 3 + registers : 2 ins : 0 outs : 2 - insns size : 71 16-bit code units -000e60: |[000e60] invokecustom.InvokeCustom.lambdaTest:()V -000e70: 1230 |0000: const/4 v0, #int 3 // #3 -000e72: 2300 2500 |0001: new-array v0, v0, [Ljava/lang/String; // type@0025 -000e76: 1201 |0003: const/4 v1, #int 0 // #0 -000e78: 1a02 4900 |0004: const-string v2, "Three" // string@0049 -000e7c: 4d02 0001 |0006: aput-object v2, v0, v1 -000e80: 1211 |0008: const/4 v1, #int 1 // #1 -000e82: 1a02 4500 |0009: const-string v2, "One" // string@0045 -000e86: 4d02 0001 |000b: aput-object v2, v0, v1 -000e8a: 1221 |000d: const/4 v1, #int 2 // #2 -000e8c: 1a02 1600 |000e: const-string v2, "FortyTwo" // string@0016 -000e90: 4d02 0001 |0010: aput-object v2, v0, v1 -000e94: 7110 4700 0000 |0012: invoke-static {v0}, Ljava/util/Arrays;.asList:([Ljava/lang/Object;)Ljava/util/List; // method@0047 -000e9a: 0c01 |0015: move-result-object v1 -000e9c: 7210 4800 0100 |0016: invoke-interface {v1}, Ljava/util/List;.stream:()Ljava/util/stream/Stream; // method@0048 -000ea2: 0c00 |0019: move-result-object v0 -000ea4: fc00 0000 0000 |001a: invoke-custom {}, call_site@0000 -000eaa: 0c02 |001d: move-result-object v2 -000eac: 7220 4a00 2000 |001e: invoke-interface {v0, v2}, Ljava/util/stream/Stream;.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream; // method@004a -000eb2: 0c00 |0021: move-result-object v0 -000eb4: fc00 0100 0000 |0022: invoke-custom {}, call_site@0001 -000eba: 0c02 |0025: move-result-object v2 -000ebc: 7220 4d00 2000 |0026: invoke-interface {v0, v2}, Ljava/util/stream/Stream;.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream; // method@004d -000ec2: 0c00 |0029: move-result-object v0 -000ec4: 7210 4b00 0000 |002a: invoke-interface {v0}, Ljava/util/stream/Stream;.findAny:()Ljava/util/Optional; // method@004b -000eca: 0c00 |002d: move-result-object v0 -000ecc: 1a02 0000 |002e: const-string v2, "" // string@0000 -000ed0: 6e20 4900 2000 |0030: invoke-virtual {v0, v2}, Ljava/util/Optional;.orElse:(Ljava/lang/Object;)Ljava/lang/Object; // method@0049 -000ed6: 0c00 |0033: move-result-object v0 -000ed8: 1f00 0f00 |0034: check-cast v0, Ljava/lang/String; // type@000f -000edc: 7210 4800 0100 |0036: invoke-interface {v1}, Ljava/util/List;.stream:()Ljava/util/stream/Stream; // method@0048 -000ee2: 0c00 |0039: move-result-object v0 -000ee4: 6201 0200 |003a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000ee8: 6e10 2c00 0100 |003c: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@002c -000eee: fc10 0200 0100 |003f: invoke-custom {v1}, call_site@0002 -000ef4: 0c01 |0042: move-result-object v1 -000ef6: 7220 4c00 1000 |0043: invoke-interface {v0, v1}, Ljava/util/stream/Stream;.forEach:(Ljava/util/function/Consumer;)V // method@004c -000efc: 0e00 |0046: return-void - catches : (none) - positions : - 0x0000 line=191 - 0x0016 line=192 - 0x0026 line=193 - 0x0036 line=194 - 0x0046 line=195 - locals : - - #11 : (in Linvokecustom/InvokeCustom;) - name : 'main' - type : '([Ljava/lang/String;)V' - access : 0x0009 (PUBLIC STATIC) + insns size : 8 16-bit code units +001ddc: |[001ddc] TestBadBootstrapArguments.happy:()V +001dec: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001df0: 1a01 3d01 |0002: const-string v1, "happy" // string@013d +001df4: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +001dfa: 0e00 |0007: return-void + catches : (none) + positions : + 0x0000 line=74 + 0x0007 line=75 + locals : + + #12 : (in LTestBadBootstrapArguments;) + name : 'integerReturnType' + type : '()V' + access : 0x000a (PRIVATE STATIC) code - - registers : 1 - ins : 1 + registers : 0 + ins : 0 outs : 0 - insns size : 28 16-bit code units -000f00: |[000f00] invokecustom.InvokeCustom.main:([Ljava/lang/String;)V -000f10: 7100 1700 0000 |0000: invoke-static {}, Linvokecustom/InvokeCustom;.test1:()V // method@0017 -000f16: 7100 1800 0000 |0003: invoke-static {}, Linvokecustom/InvokeCustom;.test2:()V // method@0018 -000f1c: 7100 1900 0000 |0006: invoke-static {}, Linvokecustom/InvokeCustom;.test3:()V // method@0019 -000f22: 7100 1a00 0000 |0009: invoke-static {}, Linvokecustom/InvokeCustom;.test4:()V // method@001a -000f28: 7100 1b00 0000 |000c: invoke-static {}, Linvokecustom/InvokeCustom;.test5:()V // method@001b -000f2e: 7100 1c00 0000 |000f: invoke-static {}, Linvokecustom/InvokeCustom;.test6:()V // method@001c -000f34: 7100 1d00 0000 |0012: invoke-static {}, Linvokecustom/InvokeCustom;.test7:()V // method@001d -000f3a: 7100 1e00 0000 |0015: invoke-static {}, Linvokecustom/InvokeCustom;.test8:()V // method@001e -000f40: 7100 1f00 0000 |0018: invoke-static {}, Linvokecustom/InvokeCustom;.test9:()V // method@001f -000f46: 0e00 |001b: return-void + insns size : 4 16-bit code units +001dfc: |[001dfc] TestBadBootstrapArguments.integerReturnType:()V +001e0c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001e12: 0e00 |0003: return-void catches : (none) positions : + 0x0000 line=444 + 0x0003 line=445 locals : - #12 : (in Linvokecustom/InvokeCustom;) - name : 'targetMethodTest1' + #13 : (in LTestBadBootstrapArguments;) + name : 'invokeBoxingArguments' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001e14: |[001e14] TestBadBootstrapArguments.invokeBoxingArguments:()V +001e24: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001e2a: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=344 + 0x0003 line=345 + locals : + + #14 : (in LTestBadBootstrapArguments;) + name : 'invokeExtraArguments' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001e2c: |[001e2c] TestBadBootstrapArguments.invokeExtraArguments:()V +001e3c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001e42: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=154 + 0x0003 line=155 + locals : + + #15 : (in LTestBadBootstrapArguments;) + name : 'invokeHappy' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001e44: |[001e44] TestBadBootstrapArguments.invokeHappy:()V +001e54: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001e5a: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=70 + 0x0003 line=71 + locals : + + #16 : (in LTestBadBootstrapArguments;) + name : 'invokeIntegerReturnType' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001e5c: |[001e5c] TestBadBootstrapArguments.invokeIntegerReturnType:()V +001e6c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001e72: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=440 + 0x0003 line=441 + locals : + + #17 : (in LTestBadBootstrapArguments;) + name : 'invokeMissingParameterTypes' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001e74: |[001e74] TestBadBootstrapArguments.invokeMissingParameterTypes:()V +001e84: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001e8a: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=124 + 0x0003 line=125 + locals : + + #18 : (in LTestBadBootstrapArguments;) + name : 'invokeNarrowArguments' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001e8c: |[001e8c] TestBadBootstrapArguments.invokeNarrowArguments:()V +001e9c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001ea2: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=256 + 0x0003 line=257 + locals : + + #19 : (in LTestBadBootstrapArguments;) + name : 'invokeObjectReturnType' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001ea4: |[001ea4] TestBadBootstrapArguments.invokeObjectReturnType:()V +001eb4: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001eba: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=417 + 0x0003 line=418 + locals : + + #20 : (in LTestBadBootstrapArguments;) + name : 'invokeViaCustomCallSiteClass' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001ebc: |[001ebc] TestBadBootstrapArguments.invokeViaCustomCallSiteClass:()V +001ecc: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001ed2: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=469 + 0x0003 line=470 + locals : + + #21 : (in LTestBadBootstrapArguments;) + name : 'invokeVoidReturnType' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001ed4: |[001ed4] TestBadBootstrapArguments.invokeVoidReturnType:()V +001ee4: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001eea: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=394 + 0x0003 line=395 + locals : + + #22 : (in LTestBadBootstrapArguments;) + name : 'invokeWideningArguments' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001eec: |[001eec] TestBadBootstrapArguments.invokeWideningArguments:()V +001efc: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001f02: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=300 + 0x0003 line=301 + locals : + + #23 : (in LTestBadBootstrapArguments;) + name : 'invokeWideningBoxingArguments' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001f04: |[001f04] TestBadBootstrapArguments.invokeWideningBoxingArguments:()V +001f14: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001f1a: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=372 + 0x0003 line=373 + locals : + + #24 : (in LTestBadBootstrapArguments;) + name : 'invokeWrongArguments' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001f1c: |[001f1c] TestBadBootstrapArguments.invokeWrongArguments:()V +001f2c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001f32: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=182 + 0x0003 line=183 + locals : + + #25 : (in LTestBadBootstrapArguments;) + name : 'invokeWrongArgumentsAgain' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001f34: |[001f34] TestBadBootstrapArguments.invokeWrongArgumentsAgain:()V +001f44: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001f4a: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=210 + 0x0003 line=211 + locals : + + #26 : (in LTestBadBootstrapArguments;) + name : 'invokeWrongParameterTypes' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001f4c: |[001f4c] TestBadBootstrapArguments.invokeWrongParameterTypes:()V +001f5c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001f62: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=98 + 0x0003 line=99 + locals : + + #27 : (in LTestBadBootstrapArguments;) + name : 'missingParameterTypes' type : '()V' access : 0x000a (PRIVATE STATIC) code - @@ -681,71 +1684,55 @@ Class #1 - ins : 0 outs : 2 insns size : 8 16-bit code units -000f48: |[000f48] invokecustom.InvokeCustom.targetMethodTest1:()V -000f58: 6200 0200 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000f5c: 1a01 1700 |0002: const-string v1, "Hello World!" // string@0017 -000f60: 6e20 2900 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -000f66: 0e00 |0007: return-void +001f64: |[001f64] TestBadBootstrapArguments.missingParameterTypes:()V +001f74: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001f78: 1a01 8c01 |0002: const-string v1, "missingParameterTypes" // string@018c +001f7c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +001f82: 0e00 |0007: return-void catches : (none) positions : - 0x0000 line=45 - 0x0007 line=46 + 0x0000 line=128 + 0x0007 line=129 locals : - #13 : (in Linvokecustom/InvokeCustom;) - name : 'targetMethodTest2' - type : '(ZBCSIFJDLjava/lang/String;)V' + #28 : (in LTestBadBootstrapArguments;) + name : 'narrowArguments' + type : '()V' access : 0x000a (PRIVATE STATIC) code - - registers : 13 - ins : 11 - outs : 3 - insns size : 46 16-bit code units -000f68: |[000f68] invokecustom.InvokeCustom.targetMethodTest2:(ZBCSIFJDLjava/lang/String;)V -000f78: 6200 0200 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000f7c: 6e20 2a00 2000 |0002: invoke-virtual {v0, v2}, Ljava/io/PrintStream;.println:(Z)V // method@002a -000f82: 6200 0200 |0005: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000f86: 6e20 2700 3000 |0007: invoke-virtual {v0, v3}, Ljava/io/PrintStream;.println:(I)V // method@0027 -000f8c: 6200 0200 |000a: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000f90: 6e20 2400 4000 |000c: invoke-virtual {v0, v4}, Ljava/io/PrintStream;.println:(C)V // method@0024 -000f96: 6200 0200 |000f: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000f9a: 6e20 2700 5000 |0011: invoke-virtual {v0, v5}, Ljava/io/PrintStream;.println:(I)V // method@0027 -000fa0: 6200 0200 |0014: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000fa4: 6e20 2700 6000 |0016: invoke-virtual {v0, v6}, Ljava/io/PrintStream;.println:(I)V // method@0027 -000faa: 6200 0200 |0019: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000fae: 6e20 2600 7000 |001b: invoke-virtual {v0, v7}, Ljava/io/PrintStream;.println:(F)V // method@0026 -000fb4: 6200 0200 |001e: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000fb8: 6e30 2800 8009 |0020: invoke-virtual {v0, v8, v9}, Ljava/io/PrintStream;.println:(J)V // method@0028 -000fbe: 6200 0200 |0023: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000fc2: 6e30 2500 a00b |0025: invoke-virtual {v0, v10, v11}, Ljava/io/PrintStream;.println:(D)V // method@0025 -000fc8: 6200 0200 |0028: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000fcc: 6e20 2900 c000 |002a: invoke-virtual {v0, v12}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -000fd2: 0e00 |002d: return-void - catches : (none) - positions : - 0x0000 line=50 - 0x0005 line=51 - 0x000a line=52 - 0x000f line=53 - 0x0014 line=54 - 0x0019 line=55 - 0x001e line=56 - 0x0023 line=57 - 0x0028 line=58 - 0x002d line=59 + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001f84: |[001f84] TestBadBootstrapArguments.narrowArguments:()V +001f94: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001f9a: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=260 + 0x0003 line=261 locals : - 0x0000 - 0x002e reg=2 (null) Z - 0x0000 - 0x002e reg=3 (null) B - 0x0000 - 0x002e reg=4 (null) C - 0x0000 - 0x002e reg=5 (null) S - 0x0000 - 0x002e reg=6 (null) I - 0x0000 - 0x002e reg=7 (null) F - 0x0000 - 0x002e reg=8 (null) J - 0x0000 - 0x002e reg=10 (null) D - 0x0000 - 0x002e reg=12 (null) Ljava/lang/String; - #14 : (in Linvokecustom/InvokeCustom;) - name : 'targetMethodTest3' + #29 : (in LTestBadBootstrapArguments;) + name : 'objectReturnType' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +001f9c: |[001f9c] TestBadBootstrapArguments.objectReturnType:()V +001fac: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +001fb2: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=421 + 0x0003 line=422 + locals : + + #30 : (in LTestBadBootstrapArguments;) + name : 'sayHello' type : '()V' access : 0x000a (PRIVATE STATIC) code - @@ -753,237 +1740,459 @@ Class #1 - ins : 0 outs : 2 insns size : 8 16-bit code units -000fd4: |[000fd4] invokecustom.InvokeCustom.targetMethodTest3:()V -000fe4: 6200 0200 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -000fe8: 1a01 8800 |0002: const-string v1, "targetMethodTest3 from InvokeCustom" // string@0088 -000fec: 6e20 2900 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -000ff2: 0e00 |0007: return-void +001fb4: |[001fb4] TestBadBootstrapArguments.sayHello:()V +001fc4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001fc8: 1a01 2d00 |0002: const-string v1, "Hello!" // string@002d +001fcc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +001fd2: 0e00 |0007: return-void catches : (none) positions : - 0x0000 line=62 - 0x0007 line=63 + 0x0000 line=473 + 0x0007 line=474 locals : - #15 : (in Linvokecustom/InvokeCustom;) - name : 'targetMethodTest5' - type : '(III)I' - access : 0x0009 (PUBLIC STATIC) + #31 : (in LTestBadBootstrapArguments;) + name : 'test' + type : '()V' + access : 0x0008 (STATIC) code - - registers : 7 - ins : 3 + registers : 3 + ins : 0 outs : 2 - insns size : 83 16-bit code units -000ff4: |[000ff4] invokecustom.InvokeCustom.targetMethodTest5:(III)I -001004: 9000 0405 |0000: add-int v0, v4, v5 -001008: 6201 0200 |0002: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -00100c: 2202 1000 |0004: new-instance v2, Ljava/lang/StringBuilder; // type@0010 -001010: 7010 3000 0200 |0006: invoke-direct {v2}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -001016: 1a03 8d00 |0009: const-string v3, "targetMethodTest5 " // string@008d -00101a: 6e20 3600 3200 |000b: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -001020: 0c02 |000e: move-result-object v2 -001022: 6e20 3300 4200 |000f: invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0033 -001028: 0c02 |0012: move-result-object v2 -00102a: 1a03 0400 |0013: const-string v3, " + " // string@0004 -00102e: 6e20 3600 3200 |0015: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -001034: 0c02 |0018: move-result-object v2 -001036: 6e20 3300 5200 |0019: invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0033 -00103c: 0c02 |001c: move-result-object v2 -00103e: 1a03 0500 |001d: const-string v3, " = " // string@0005 -001042: 6e20 3600 3200 |001f: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -001048: 0c02 |0022: move-result-object v2 -00104a: 6e20 3300 0200 |0023: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0033 -001050: 0c02 |0026: move-result-object v2 -001052: 6e10 3700 0200 |0027: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -001058: 0c02 |002a: move-result-object v2 -00105a: 6e20 2900 2100 |002b: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -001060: 3260 2400 |002e: if-eq v0, v6, 0052 // +0024 -001064: 6201 0200 |0030: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -001068: 2202 1000 |0032: new-instance v2, Ljava/lang/StringBuilder; // type@0010 -00106c: 7010 3000 0200 |0034: invoke-direct {v2}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -001072: 1a03 1400 |0037: const-string v3, "Failed " // string@0014 -001076: 6e20 3600 3200 |0039: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -00107c: 0c02 |003c: move-result-object v2 -00107e: 6e20 3300 0200 |003d: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0033 -001084: 0c02 |0040: move-result-object v2 -001086: 1a03 0200 |0041: const-string v3, " != " // string@0002 -00108a: 6e20 3600 3200 |0043: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -001090: 0c02 |0046: move-result-object v2 -001092: 6e20 3300 6200 |0047: invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0033 -001098: 0c02 |004a: move-result-object v2 -00109a: 6e10 3700 0200 |004b: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -0010a0: 0c02 |004e: move-result-object v2 -0010a2: 6e20 2900 2100 |004f: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -0010a8: 0f00 |0052: return v0 - catches : (none) - positions : - 0x0000 line=72 - 0x0002 line=73 - 0x002e line=74 - 0x0030 line=75 - 0x0052 line=77 - locals : - 0x0000 - 0x0053 reg=4 (null) I - 0x0000 - 0x0053 reg=5 (null) I - 0x0000 - 0x0053 reg=6 (null) I - - #16 : (in Linvokecustom/InvokeCustom;) - name : 'targetMethodTest6' - type : '(JJJ)J' - access : 0x0009 (PUBLIC STATIC) + insns size : 529 16-bit code units +001fd4: |[001fd4] TestBadBootstrapArguments.test:()V +001fe4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +001fe8: 1a01 8f00 |0002: const-string v1, "TestBadBootstrapArguments" // string@008f +001fec: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +001ff2: fc00 0000 0000 |0007: invoke-custom {}, call_site@0000 +001ff8: fc00 0100 0000 |000a: invoke-custom {}, call_site@0001 +001ffe: 7100 0b00 0000 |000d: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +002004: 2812 |0010: goto 0022 // +0012 +002006: 0d00 |0011: move-exception v0 +002008: 6201 1300 |0012: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00200c: 1a02 6101 |0014: const-string v2, "invokeWrongParameterTypes => " // string@0161 +002010: 6e20 b000 2100 |0016: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002016: 6201 1300 |0019: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00201a: 6e10 c000 0000 |001b: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +002020: 0c02 |001e: move-result-object v2 +002022: 6e20 b200 2100 |001f: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +002028: fc00 0200 0000 |0022: invoke-custom {}, call_site@0002 +00202e: 7100 0b00 0000 |0025: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +002034: 2812 |0028: goto 003a // +0012 +002036: 0d00 |0029: move-exception v0 +002038: 6201 1300 |002a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00203c: 1a02 5101 |002c: const-string v2, "invokeMissingParameterTypes => " // string@0151 +002040: 6e20 b000 2100 |002e: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002046: 6201 1300 |0031: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00204a: 6e10 c000 0000 |0033: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +002050: 0c02 |0036: move-result-object v2 +002052: 6e20 b200 2100 |0037: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +002058: fc00 0300 0000 |003a: invoke-custom {}, call_site@0003 +00205e: 7100 0b00 0000 |003d: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +002064: 2833 |0040: goto 0073 // +0033 +002066: 0d00 |0041: move-exception v0 +002068: 1c01 3a00 |0042: const-class v1, Ljava/lang/invoke/WrongMethodTypeException; // type@003a +00206c: 6e10 b600 0000 |0044: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +002072: 0c02 |0047: move-result-object v2 +002074: 6e10 c000 0200 |0048: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +00207a: 0c02 |004b: move-result-object v2 +00207c: 7120 0a00 2100 |004c: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a +002082: 6201 1300 |004f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002086: 1a02 4c01 |0051: const-string v2, "invokeExtraArguments => " // string@014c +00208a: 6e20 b000 2100 |0053: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002090: 6201 1300 |0056: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002094: 6e10 c000 0000 |0058: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +00209a: 0c02 |005b: move-result-object v2 +00209c: 6e20 af00 2100 |005c: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +0020a2: 6201 1300 |005f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0020a6: 1a02 0200 |0061: const-string v2, " => " // string@0002 +0020aa: 6e20 b000 2100 |0063: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +0020b0: 6201 1300 |0066: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0020b4: 6e10 b600 0000 |0068: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +0020ba: 0c02 |006b: move-result-object v2 +0020bc: 6e10 c000 0200 |006c: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +0020c2: 0c02 |006f: move-result-object v2 +0020c4: 6e20 b200 2100 |0070: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +0020ca: fc00 0400 0000 |0073: invoke-custom {}, call_site@0004 +0020d0: 7100 0b00 0000 |0076: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +0020d6: 2833 |0079: goto 00ac // +0033 +0020d8: 0d00 |007a: move-exception v0 +0020da: 1c01 2200 |007b: const-class v1, Ljava/lang/ClassCastException; // type@0022 +0020de: 6e10 b600 0000 |007d: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +0020e4: 0c02 |0080: move-result-object v2 +0020e6: 6e10 c000 0200 |0081: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +0020ec: 0c02 |0084: move-result-object v2 +0020ee: 7120 0a00 2100 |0085: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a +0020f4: 6201 1300 |0088: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0020f8: 1a02 5d01 |008a: const-string v2, "invokeWrongArguments => " // string@015d +0020fc: 6e20 b000 2100 |008c: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002102: 6201 1300 |008f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002106: 6e10 c000 0000 |0091: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +00210c: 0c02 |0094: move-result-object v2 +00210e: 6e20 af00 2100 |0095: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +002114: 6201 1300 |0098: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002118: 1a02 0200 |009a: const-string v2, " => " // string@0002 +00211c: 6e20 b000 2100 |009c: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002122: 6201 1300 |009f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002126: 6e10 b600 0000 |00a1: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +00212c: 0c02 |00a4: move-result-object v2 +00212e: 6e10 c000 0200 |00a5: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +002134: 0c02 |00a8: move-result-object v2 +002136: 6e20 b200 2100 |00a9: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +00213c: fc00 0500 0000 |00ac: invoke-custom {}, call_site@0005 +002142: 7100 0b00 0000 |00af: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +002148: 2833 |00b2: goto 00e5 // +0033 +00214a: 0d00 |00b3: move-exception v0 +00214c: 1c01 2200 |00b4: const-class v1, Ljava/lang/ClassCastException; // type@0022 +002150: 6e10 b600 0000 |00b6: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +002156: 0c02 |00b9: move-result-object v2 +002158: 6e10 c000 0200 |00ba: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +00215e: 0c02 |00bd: move-result-object v2 +002160: 7120 0a00 2100 |00be: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a +002166: 6201 1300 |00c1: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00216a: 1a02 5d01 |00c3: const-string v2, "invokeWrongArguments => " // string@015d +00216e: 6e20 b000 2100 |00c5: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002174: 6201 1300 |00c8: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002178: 6e10 c000 0000 |00ca: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +00217e: 0c02 |00cd: move-result-object v2 +002180: 6e20 af00 2100 |00ce: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +002186: 6201 1300 |00d1: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00218a: 1a02 0200 |00d3: const-string v2, " => " // string@0002 +00218e: 6e20 b000 2100 |00d5: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002194: 6201 1300 |00d8: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002198: 6e10 b600 0000 |00da: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +00219e: 0c02 |00dd: move-result-object v2 +0021a0: 6e10 c000 0200 |00de: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +0021a6: 0c02 |00e1: move-result-object v2 +0021a8: 6e20 b200 2100 |00e2: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +0021ae: fc00 0600 0000 |00e5: invoke-custom {}, call_site@0006 +0021b4: 7100 0b00 0000 |00e8: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +0021ba: 2833 |00eb: goto 011e // +0033 +0021bc: 0d00 |00ec: move-exception v0 +0021be: 1c01 2200 |00ed: const-class v1, Ljava/lang/ClassCastException; // type@0022 +0021c2: 6e10 b600 0000 |00ef: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +0021c8: 0c02 |00f2: move-result-object v2 +0021ca: 6e10 c000 0200 |00f3: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +0021d0: 0c02 |00f6: move-result-object v2 +0021d2: 7120 0a00 2100 |00f7: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a +0021d8: 6201 1300 |00fa: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0021dc: 1a02 5f01 |00fc: const-string v2, "invokeWrongArgumentsAgain => " // string@015f +0021e0: 6e20 b000 2100 |00fe: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +0021e6: 6201 1300 |0101: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0021ea: 6e10 c000 0000 |0103: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +0021f0: 0c02 |0106: move-result-object v2 +0021f2: 6e20 af00 2100 |0107: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +0021f8: 6201 1300 |010a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0021fc: 1a02 0200 |010c: const-string v2, " => " // string@0002 +002200: 6e20 b000 2100 |010e: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002206: 6201 1300 |0111: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00220a: 6e10 b600 0000 |0113: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +002210: 0c02 |0116: move-result-object v2 +002212: 6e10 c000 0200 |0117: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +002218: 0c02 |011a: move-result-object v2 +00221a: 6e20 b200 2100 |011b: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +002220: fc00 0700 0000 |011e: invoke-custom {}, call_site@0007 +002226: 7100 0b00 0000 |0121: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +00222c: 2833 |0124: goto 0157 // +0033 +00222e: 0d00 |0125: move-exception v0 +002230: 1c01 2200 |0126: const-class v1, Ljava/lang/ClassCastException; // type@0022 +002234: 6e10 b600 0000 |0128: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +00223a: 0c02 |012b: move-result-object v2 +00223c: 6e10 c000 0200 |012c: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +002242: 0c02 |012f: move-result-object v2 +002244: 7120 0a00 2100 |0130: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a +00224a: 6201 1300 |0133: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00224e: 1a02 5301 |0135: const-string v2, "invokeNarrowArguments => " // string@0153 +002252: 6e20 b000 2100 |0137: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002258: 6201 1300 |013a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00225c: 6e10 c000 0000 |013c: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +002262: 0c02 |013f: move-result-object v2 +002264: 6e20 af00 2100 |0140: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +00226a: 6201 1300 |0143: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00226e: 1a02 0200 |0145: const-string v2, " => " // string@0002 +002272: 6e20 b000 2100 |0147: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002278: 6201 1300 |014a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00227c: 6e10 b600 0000 |014c: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +002282: 0c02 |014f: move-result-object v2 +002284: 6e10 c000 0200 |0150: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +00228a: 0c02 |0153: move-result-object v2 +00228c: 6e20 b200 2100 |0154: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +002292: fc00 0800 0000 |0157: invoke-custom {}, call_site@0008 +002298: fc00 0900 0000 |015a: invoke-custom {}, call_site@0009 +00229e: fc00 0a00 0000 |015d: invoke-custom {}, call_site@000a +0022a4: 7100 0b00 0000 |0160: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +0022aa: 2826 |0163: goto 0189 // +0026 +0022ac: 0d00 |0164: move-exception v0 +0022ae: 6201 1300 |0165: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0022b2: 1a02 5b01 |0167: const-string v2, "invokeWideningBoxingArguments => " // string@015b +0022b6: 6e20 b000 2100 |0169: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +0022bc: 6201 1300 |016c: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0022c0: 6e10 c000 0000 |016e: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +0022c6: 0c02 |0171: move-result-object v2 +0022c8: 6e20 af00 2100 |0172: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +0022ce: 6201 1300 |0175: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0022d2: 1a02 0200 |0177: const-string v2, " => " // string@0002 +0022d6: 6e20 b000 2100 |0179: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +0022dc: 6201 1300 |017c: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0022e0: 6e10 b600 0000 |017e: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +0022e6: 0c02 |0181: move-result-object v2 +0022e8: 6e10 c000 0200 |0182: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +0022ee: 0c02 |0185: move-result-object v2 +0022f0: 6e20 b200 2100 |0186: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +0022f6: fc00 0b00 0000 |0189: invoke-custom {}, call_site@000b +0022fc: 7100 0b00 0000 |018c: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +002302: 2826 |018f: goto 01b5 // +0026 +002304: 0d00 |0190: move-exception v0 +002306: 6201 1300 |0191: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00230a: 1a02 5801 |0193: const-string v2, "invokeVoidReturnType() => " // string@0158 +00230e: 6e20 b000 2100 |0195: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002314: 6201 1300 |0198: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002318: 6e10 c000 0000 |019a: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +00231e: 0c02 |019d: move-result-object v2 +002320: 6e20 af00 2100 |019e: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +002326: 6201 1300 |01a1: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00232a: 1a02 0200 |01a3: const-string v2, " => " // string@0002 +00232e: 6e20 b000 2100 |01a5: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002334: 6201 1300 |01a8: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002338: 6e10 b600 0000 |01aa: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +00233e: 0c02 |01ad: move-result-object v2 +002340: 6e10 c000 0200 |01ae: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +002346: 0c02 |01b1: move-result-object v2 +002348: 6e20 b200 2100 |01b2: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +00234e: fc00 0c00 0000 |01b5: invoke-custom {}, call_site@000c +002354: 7100 0b00 0000 |01b8: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +00235a: 2826 |01bb: goto 01e1 // +0026 +00235c: 0d00 |01bc: move-exception v0 +00235e: 6201 1300 |01bd: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002362: 1a02 5501 |01bf: const-string v2, "invokeObjectReturnType() => " // string@0155 +002366: 6e20 b000 2100 |01c1: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +00236c: 6201 1300 |01c4: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002370: 6e10 c000 0000 |01c6: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +002376: 0c02 |01c9: move-result-object v2 +002378: 6e20 af00 2100 |01ca: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +00237e: 6201 1300 |01cd: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002382: 1a02 0200 |01cf: const-string v2, " => " // string@0002 +002386: 6e20 b000 2100 |01d1: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +00238c: 6201 1300 |01d4: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002390: 6e10 b600 0000 |01d6: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +002396: 0c02 |01d9: move-result-object v2 +002398: 6e10 c000 0200 |01da: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +00239e: 0c02 |01dd: move-result-object v2 +0023a0: 6e20 b200 2100 |01de: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +0023a6: fc00 0d00 0000 |01e1: invoke-custom {}, call_site@000d +0023ac: 7100 0b00 0000 |01e4: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +0023b2: 2826 |01e7: goto 020d // +0026 +0023b4: 0d00 |01e8: move-exception v0 +0023b6: 6201 1300 |01e9: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0023ba: 1a02 4f01 |01eb: const-string v2, "invokeIntegerReturnType() => " // string@014f +0023be: 6e20 b000 2100 |01ed: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +0023c4: 6201 1300 |01f0: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0023c8: 6e10 c000 0000 |01f2: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +0023ce: 0c02 |01f5: move-result-object v2 +0023d0: 6e20 af00 2100 |01f6: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +0023d6: 6201 1300 |01f9: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0023da: 1a02 0200 |01fb: const-string v2, " => " // string@0002 +0023de: 6e20 b000 2100 |01fd: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +0023e4: 6201 1300 |0200: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0023e8: 6e10 b600 0000 |0202: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +0023ee: 0c02 |0205: move-result-object v2 +0023f0: 6e10 c000 0200 |0206: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +0023f6: 0c02 |0209: move-result-object v2 +0023f8: 6e20 b200 2100 |020a: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +0023fe: fc00 0e00 0000 |020d: invoke-custom {}, call_site@000e +002404: 0e00 |0210: return-void + catches : 11 + 0x000a - 0x0010 + Ljava/lang/NoSuchMethodError; -> 0x0011 + 0x0022 - 0x0028 + Ljava/lang/NoSuchMethodError; -> 0x0029 + 0x003a - 0x0040 + Ljava/lang/BootstrapMethodError; -> 0x0041 + 0x0073 - 0x0079 + Ljava/lang/BootstrapMethodError; -> 0x007a + 0x00ac - 0x00b2 + Ljava/lang/BootstrapMethodError; -> 0x00b3 + 0x00e5 - 0x00eb + Ljava/lang/BootstrapMethodError; -> 0x00ec + 0x011e - 0x0124 + Ljava/lang/BootstrapMethodError; -> 0x0125 + 0x015d - 0x0163 + Ljava/lang/BootstrapMethodError; -> 0x0164 + 0x0189 - 0x018f + Ljava/lang/BootstrapMethodError; -> 0x0190 + 0x01b5 - 0x01bb + Ljava/lang/BootstrapMethodError; -> 0x01bc + 0x01e1 - 0x01e7 + Ljava/lang/BootstrapMethodError; -> 0x01e8 + positions : + 0x0000 line=477 + 0x0007 line=478 + 0x000a line=480 + 0x000d line=481 + 0x0010 line=485 + 0x0011 line=482 + 0x0012 line=483 + 0x0019 line=484 + 0x0022 line=487 + 0x0025 line=488 + 0x0028 line=492 + 0x0029 line=489 + 0x002a line=490 + 0x0031 line=491 + 0x003a line=494 + 0x003d line=495 + 0x0040 line=502 + 0x0041 line=496 + 0x0042 line=497 + 0x004f line=498 + 0x0056 line=499 + 0x005f line=500 + 0x0066 line=501 + 0x0073 line=504 + 0x0076 line=505 + 0x0079 line=512 + 0x007a line=506 + 0x007b line=507 + 0x0088 line=508 + 0x008f line=509 + 0x0098 line=510 + 0x009f line=511 + 0x00ac line=514 + 0x00af line=515 + 0x00b2 line=522 + 0x00b3 line=516 + 0x00b4 line=517 + 0x00c1 line=518 + 0x00c8 line=519 + 0x00d1 line=520 + 0x00d8 line=521 + 0x00e5 line=524 + 0x00e8 line=525 + 0x00eb line=532 + 0x00ec line=526 + 0x00ed line=527 + 0x00fa line=528 + 0x0101 line=529 + 0x010a line=530 + 0x0111 line=531 + 0x011e line=534 + 0x0121 line=535 + 0x0124 line=542 + 0x0125 line=536 + 0x0126 line=537 + 0x0133 line=538 + 0x013a line=539 + 0x0143 line=540 + 0x014a line=541 + 0x0157 line=543 + 0x015a line=544 + 0x015d line=546 + 0x0160 line=547 + 0x0163 line=553 + 0x0164 line=548 + 0x0165 line=549 + 0x016c line=550 + 0x0175 line=551 + 0x017c line=552 + 0x0189 line=555 + 0x018c line=556 + 0x018f line=562 + 0x0190 line=557 + 0x0191 line=558 + 0x0198 line=559 + 0x01a1 line=560 + 0x01a8 line=561 + 0x01b5 line=564 + 0x01b8 line=565 + 0x01bb line=571 + 0x01bc line=566 + 0x01bd line=567 + 0x01c4 line=568 + 0x01cd line=569 + 0x01d4 line=570 + 0x01e1 line=573 + 0x01e4 line=574 + 0x01e7 line=580 + 0x01e8 line=575 + 0x01e9 line=576 + 0x01f0 line=577 + 0x01f9 line=578 + 0x0200 line=579 + 0x020d line=581 + 0x0210 line=582 + locals : + 0x0012 - 0x0022 reg=0 expected Ljava/lang/NoSuchMethodError; + 0x002a - 0x003a reg=0 expected Ljava/lang/NoSuchMethodError; + 0x0042 - 0x0073 reg=0 expected Ljava/lang/BootstrapMethodError; + 0x007b - 0x00ac reg=0 expected Ljava/lang/BootstrapMethodError; + 0x00b4 - 0x00e5 reg=0 expected Ljava/lang/BootstrapMethodError; + 0x00ed - 0x011e reg=0 expected Ljava/lang/BootstrapMethodError; + 0x0126 - 0x0157 reg=0 expected Ljava/lang/BootstrapMethodError; + 0x0165 - 0x0189 reg=0 expected Ljava/lang/BootstrapMethodError; + 0x0191 - 0x01b5 reg=0 expected Ljava/lang/BootstrapMethodError; + 0x01bd - 0x01e1 reg=0 expected Ljava/lang/BootstrapMethodError; + 0x01e9 - 0x020d reg=0 expected Ljava/lang/BootstrapMethodError; + + #32 : (in LTestBadBootstrapArguments;) + name : 'voidReturnType' + type : '()V' + access : 0x000a (PRIVATE STATIC) code - - registers : 12 - ins : 6 - outs : 3 - insns size : 85 16-bit code units -0010ac: |[0010ac] invokecustom.InvokeCustom.targetMethodTest6:(JJJ)J -0010bc: 9b00 0608 |0000: add-long v0, v6, v8 -0010c0: 6202 0200 |0002: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -0010c4: 2203 1000 |0004: new-instance v3, Ljava/lang/StringBuilder; // type@0010 -0010c8: 7010 3000 0300 |0006: invoke-direct {v3}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -0010ce: 1a04 9000 |0009: const-string v4, "targetMethodTest6 " // string@0090 -0010d2: 6e20 3600 4300 |000b: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -0010d8: 0c03 |000e: move-result-object v3 -0010da: 6e30 3400 6307 |000f: invoke-virtual {v3, v6, v7}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@0034 -0010e0: 0c03 |0012: move-result-object v3 -0010e2: 1a04 0400 |0013: const-string v4, " + " // string@0004 -0010e6: 6e20 3600 4300 |0015: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -0010ec: 0c03 |0018: move-result-object v3 -0010ee: 6e30 3400 8309 |0019: invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@0034 -0010f4: 0c03 |001c: move-result-object v3 -0010f6: 1a04 0500 |001d: const-string v4, " = " // string@0005 -0010fa: 6e20 3600 4300 |001f: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -001100: 0c03 |0022: move-result-object v3 -001102: 6e30 3400 0301 |0023: invoke-virtual {v3, v0, v1}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@0034 -001108: 0c03 |0026: move-result-object v3 -00110a: 6e10 3700 0300 |0027: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -001110: 0c03 |002a: move-result-object v3 -001112: 6e20 2900 3200 |002b: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -001118: 3102 000a |002e: cmp-long v2, v0, v10 -00111c: 3802 2400 |0030: if-eqz v2, 0054 // +0024 -001120: 6202 0200 |0032: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -001124: 2203 1000 |0034: new-instance v3, Ljava/lang/StringBuilder; // type@0010 -001128: 7010 3000 0300 |0036: invoke-direct {v3}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -00112e: 1a04 1400 |0039: const-string v4, "Failed " // string@0014 -001132: 6e20 3600 4300 |003b: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -001138: 0c03 |003e: move-result-object v3 -00113a: 6e30 3400 0301 |003f: invoke-virtual {v3, v0, v1}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@0034 -001140: 0c03 |0042: move-result-object v3 -001142: 1a04 0200 |0043: const-string v4, " != " // string@0002 -001146: 6e20 3600 4300 |0045: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -00114c: 0c03 |0048: move-result-object v3 -00114e: 6e30 3400 a30b |0049: invoke-virtual {v3, v10, v11}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@0034 -001154: 0c03 |004c: move-result-object v3 -001156: 6e10 3700 0300 |004d: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -00115c: 0c03 |0050: move-result-object v3 -00115e: 6e20 2900 3200 |0051: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -001164: 1000 |0054: return-wide v0 - catches : (none) - positions : - 0x0000 line=81 - 0x0002 line=82 - 0x002e line=83 - 0x0032 line=84 - 0x0054 line=86 - locals : - 0x0000 - 0x0055 reg=6 (null) J - 0x0000 - 0x0055 reg=8 (null) J - 0x0000 - 0x0055 reg=10 (null) J - - #17 : (in Linvokecustom/InvokeCustom;) - name : 'targetMethodTest7' - type : '(FFD)D' - access : 0x0009 (PUBLIC STATIC) + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +00248c: |[00248c] TestBadBootstrapArguments.voidReturnType:()V +00249c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b +0024a2: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=398 + 0x0003 line=399 + locals : + + #33 : (in LTestBadBootstrapArguments;) + name : 'wideningArguments' + type : '()V' + access : 0x000a (PRIVATE STATIC) code - - registers : 10 - ins : 4 - outs : 3 - insns size : 86 16-bit code units -001168: |[001168] invokecustom.InvokeCustom.targetMethodTest7:(FFD)D -001178: a800 0607 |0000: mul-float v0, v6, v7 -00117c: 8900 |0002: float-to-double v0, v0 -00117e: 6202 0200 |0003: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -001182: 2203 1000 |0005: new-instance v3, Ljava/lang/StringBuilder; // type@0010 -001186: 7010 3000 0300 |0007: invoke-direct {v3}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -00118c: 1a04 9300 |000a: const-string v4, "targetMethodTest7 " // string@0093 -001190: 6e20 3600 4300 |000c: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -001196: 0c03 |000f: move-result-object v3 -001198: 6e20 3200 6300 |0010: invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;.append:(F)Ljava/lang/StringBuilder; // method@0032 -00119e: 0c03 |0013: move-result-object v3 -0011a0: 1a04 0300 |0014: const-string v4, " * " // string@0003 -0011a4: 6e20 3600 4300 |0016: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -0011aa: 0c03 |0019: move-result-object v3 -0011ac: 6e20 3200 7300 |001a: invoke-virtual {v3, v7}, Ljava/lang/StringBuilder;.append:(F)Ljava/lang/StringBuilder; // method@0032 -0011b2: 0c03 |001d: move-result-object v3 -0011b4: 1a04 0500 |001e: const-string v4, " = " // string@0005 -0011b8: 6e20 3600 4300 |0020: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -0011be: 0c03 |0023: move-result-object v3 -0011c0: 6e30 3100 0301 |0024: invoke-virtual {v3, v0, v1}, Ljava/lang/StringBuilder;.append:(D)Ljava/lang/StringBuilder; // method@0031 -0011c6: 0c03 |0027: move-result-object v3 -0011c8: 6e10 3700 0300 |0028: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -0011ce: 0c03 |002b: move-result-object v3 -0011d0: 6e20 2900 3200 |002c: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -0011d6: 2f02 0008 |002f: cmpl-double v2, v0, v8 -0011da: 3802 2400 |0031: if-eqz v2, 0055 // +0024 -0011de: 6202 0200 |0033: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -0011e2: 2203 1000 |0035: new-instance v3, Ljava/lang/StringBuilder; // type@0010 -0011e6: 7010 3000 0300 |0037: invoke-direct {v3}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -0011ec: 1a04 1400 |003a: const-string v4, "Failed " // string@0014 -0011f0: 6e20 3600 4300 |003c: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -0011f6: 0c03 |003f: move-result-object v3 -0011f8: 6e30 3100 0301 |0040: invoke-virtual {v3, v0, v1}, Ljava/lang/StringBuilder;.append:(D)Ljava/lang/StringBuilder; // method@0031 -0011fe: 0c03 |0043: move-result-object v3 -001200: 1a04 0200 |0044: const-string v4, " != " // string@0002 -001204: 6e20 3600 4300 |0046: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -00120a: 0c03 |0049: move-result-object v3 -00120c: 6e30 3100 8309 |004a: invoke-virtual {v3, v8, v9}, Ljava/lang/StringBuilder;.append:(D)Ljava/lang/StringBuilder; // method@0031 -001212: 0c03 |004d: move-result-object v3 -001214: 6e10 3700 0300 |004e: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -00121a: 0c03 |0051: move-result-object v3 -00121c: 6e20 2900 3200 |0052: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -001222: 1000 |0055: return-wide v0 - catches : (none) - positions : - 0x0000 line=90 - 0x0003 line=91 - 0x002f line=92 - 0x0033 line=93 - 0x0055 line=95 - locals : - 0x0000 - 0x0056 reg=6 (null) F - 0x0000 - 0x0056 reg=7 (null) F - 0x0000 - 0x0056 reg=8 (null) D - - #18 : (in Linvokecustom/InvokeCustom;) - name : 'targetMethodTest8' - type : '(Ljava/lang/String;)V' - access : 0x0009 (PUBLIC STATIC) + registers : 2 + ins : 0 + outs : 2 + insns size : 8 16-bit code units +0024a4: |[0024a4] TestBadBootstrapArguments.wideningArguments:()V +0024b4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0024b8: 1a01 d101 |0002: const-string v1, "wideningArguments" // string@01d1 +0024bc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +0024c2: 0e00 |0007: return-void + catches : (none) + positions : + 0x0000 line=304 + 0x0007 line=305 + locals : + + #34 : (in LTestBadBootstrapArguments;) + name : 'wideningBoxingArguments' + type : '()V' + access : 0x000a (PRIVATE STATIC) code - - registers : 4 - ins : 1 + registers : 2 + ins : 0 outs : 2 - insns size : 25 16-bit code units -001224: |[001224] invokecustom.InvokeCustom.targetMethodTest8:(Ljava/lang/String;)V -001234: 6200 0200 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -001238: 2201 1000 |0002: new-instance v1, Ljava/lang/StringBuilder; // type@0010 -00123c: 7010 3000 0100 |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -001242: 1a02 9500 |0007: const-string v2, "targetMethodTest8 " // string@0095 -001246: 6e20 3600 2100 |0009: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -00124c: 0c01 |000c: move-result-object v1 -00124e: 6e20 3600 3100 |000d: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -001254: 0c01 |0010: move-result-object v1 -001256: 6e10 3700 0100 |0011: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -00125c: 0c01 |0014: move-result-object v1 -00125e: 6e20 2900 1000 |0015: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -001264: 0e00 |0018: return-void + insns size : 8 16-bit code units +0024c4: |[0024c4] TestBadBootstrapArguments.wideningBoxingArguments:()V +0024d4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0024d8: 1a01 d201 |0002: const-string v1, "wideningBoxingArguments" // string@01d2 +0024dc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +0024e2: 0e00 |0007: return-void catches : (none) positions : - 0x0000 line=99 - 0x0018 line=100 + 0x0000 line=376 + 0x0007 line=377 locals : - 0x0000 - 0x0019 reg=3 (null) Ljava/lang/String; - #19 : (in Linvokecustom/InvokeCustom;) - name : 'targetMethodTest9' + #35 : (in LTestBadBootstrapArguments;) + name : 'wrongArguments' type : '()V' access : 0x000a (PRIVATE STATIC) code - @@ -991,435 +2200,3526 @@ Class #1 - ins : 0 outs : 2 insns size : 8 16-bit code units -001268: |[001268] invokecustom.InvokeCustom.targetMethodTest9:()V -001278: 6200 0200 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -00127c: 1a01 9700 |0002: const-string v1, "targetMethodTest9()" // string@0097 -001280: 6e20 2900 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -001286: 0e00 |0007: return-void +0024e4: |[0024e4] TestBadBootstrapArguments.wrongArguments:()V +0024f4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0024f8: 1a01 d401 |0002: const-string v1, "wrongArguments" // string@01d4 +0024fc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +002502: 0e00 |0007: return-void catches : (none) positions : - 0x0000 line=133 - 0x0007 line=134 + 0x0000 line=186 + 0x0007 line=187 locals : - #20 : (in Linvokecustom/InvokeCustom;) - name : 'test1' + #36 : (in LTestBadBootstrapArguments;) + name : 'wrongArgumentsAgain' type : '()V' - access : 0x0009 (PUBLIC STATIC) + access : 0x000a (PRIVATE STATIC) code - - registers : 0 + registers : 2 ins : 0 - outs : 0 - insns size : 4 16-bit code units -001288: |[001288] invokecustom.InvokeCustom.test1:()V -001298: fc00 0300 0000 |0000: invoke-custom {}, call_site@0003 -00129e: 0e00 |0003: return-void + outs : 2 + insns size : 8 16-bit code units +002504: |[002504] TestBadBootstrapArguments.wrongArgumentsAgain:()V +002514: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002518: 1a01 d501 |0002: const-string v1, "wrongArgumentsAgain" // string@01d5 +00251c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +002522: 0e00 |0007: return-void catches : (none) positions : + 0x0000 line=214 + 0x0007 line=215 locals : - #21 : (in Linvokecustom/InvokeCustom;) - name : 'test2' + #37 : (in LTestBadBootstrapArguments;) + name : 'wrongParameterTypes' type : '()V' - access : 0x0009 (PUBLIC STATIC) + access : 0x000a (PRIVATE STATIC) code - - registers : 11 + registers : 2 ins : 0 - outs : 11 - insns size : 27 16-bit code units -0012a0: |[0012a0] invokecustom.InvokeCustom.test2:()V -0012b0: 1210 |0000: const/4 v0, #int 1 // #1 -0012b2: 1301 7f00 |0001: const/16 v1, #int 127 // #7f -0012b6: 1302 6300 |0003: const/16 v2, #int 99 // #63 -0012ba: 1303 0004 |0005: const/16 v3, #int 1024 // #400 -0012be: 1404 40e2 0100 |0007: const v4, #float 1.72999e-40 // #0001e240 -0012c4: 1405 9a99 993f |000a: const v5, #float 1.2 // #3f99999a -0012ca: 1706 15cd 5b07 |000d: const-wide/32 v6, #float 1.6536e-34 // #075bcd15 -0012d0: 1808 b6fa f8b0 4819 0c40 |0010: const-wide v8, #double 3.51235 // #400c1948b0f8fab6 -0012da: 1a0a 4800 |0015: const-string v10, "String" // string@0048 -0012de: fd0b 0400 0000 |0017: invoke-custom/range {v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10}, call_site@0004 -0012e4: 0e00 |001a: return-void + outs : 2 + insns size : 8 16-bit code units +002524: |[002524] TestBadBootstrapArguments.wrongParameterTypes:()V +002534: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002538: 1a01 d601 |0002: const-string v1, "wrongParameterTypes" // string@01d6 +00253c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +002542: 0e00 |0007: return-void catches : (none) positions : + 0x0000 line=102 + 0x0007 line=103 locals : - #22 : (in Linvokecustom/InvokeCustom;) - name : 'test3' + Virtual methods - + source_file_idx : 144 (TestBadBootstrapArguments.java) + +Class #7 header: +class_idx : 10 +access_flags : 0 (0x0000) +superclass_idx : 9 +interfaces_off : 0 (0x000000) +source_file_idx : 147 +annotations_off : 30988 (0x00790c) +class_data_off : 29220 (0x007224) +static_fields_size : 1 +instance_fields_size: 0 +direct_methods_size : 7 +virtual_methods_size: 0 + +Class #7 annotations: +Annotations on method #67 'bsm' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #71 'testDynamic' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestDynamicBootstrapArguments; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Ljava/lang/String; J } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; stringValue={ "A" } Lannotations/Constant; longValue={ 100000000 } } fieldOrMethodName="target" parameterTypes={ I Ljava/lang/String; D } returnType=I + +Class #7 - + Class descriptor : 'LTestDynamicBootstrapArguments;' + Access flags : 0x0000 () + Superclass : 'LTestBase;' + Interfaces - + Static fields - + #0 : (in LTestDynamicBootstrapArguments;) + name : 'bsmCalls' + type : 'I' + access : 0x000a (PRIVATE STATIC) + Instance fields - + Direct methods - + #0 : (in LTestDynamicBootstrapArguments;) + name : '<clinit>' type : '()V' - access : 0x0009 (PUBLIC STATIC) + access : 0x10008 (STATIC CONSTRUCTOR) code - - registers : 0 + registers : 1 ins : 0 outs : 0 insns size : 4 16-bit code units -0012e8: |[0012e8] invokecustom.InvokeCustom.test3:()V -0012f8: fc00 0b00 0000 |0000: invoke-custom {}, call_site@000b -0012fe: 0e00 |0003: return-void +0029c8: |[0029c8] TestDynamicBootstrapArguments.<clinit>:()V +0029d8: 1200 |0000: const/4 v0, #int 0 // #0 +0029da: 6700 0000 |0001: sput v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000 +0029de: 0e00 |0003: return-void catches : (none) positions : + 0x0000 line=27 locals : - #23 : (in Linvokecustom/InvokeCustom;) - name : 'test4' + #1 : (in LTestDynamicBootstrapArguments;) + name : '<init>' type : '()V' - access : 0x0009 (PUBLIC STATIC) + access : 0x10000 (CONSTRUCTOR) code - registers : 1 - ins : 0 + ins : 1 outs : 1 - insns size : 9 16-bit code units -001300: |[001300] invokecustom.InvokeCustom.test4:()V -001310: 2200 0700 |0000: new-instance v0, Linvokecustom/InvokeCustom; // type@0007 -001314: 7010 0100 0000 |0002: invoke-direct {v0}, Linvokecustom/InvokeCustom;.<init>:()V // method@0001 -00131a: fc10 0c00 0000 |0005: invoke-custom {v0}, call_site@000c -001320: 0e00 |0008: return-void + insns size : 4 16-bit code units +0029e0: |[0029e0] TestDynamicBootstrapArguments.<init>:()V +0029f0: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032 +0029f6: 0e00 |0003: return-void catches : (none) positions : + 0x0000 line=26 locals : + 0x0000 - 0x0004 reg=0 this LTestDynamicBootstrapArguments; - #24 : (in Linvokecustom/InvokeCustom;) - name : 'test5' + #2 : (in LTestDynamicBootstrapArguments;) + name : 'bsm' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;J)Ljava/lang/invoke/CallSite;' + access : 0x0008 (STATIC) + code - + registers : 11 + ins : 6 + outs : 4 + insns size : 43 16-bit code units +002960: |[002960] TestDynamicBootstrapArguments.bsm:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;J)Ljava/lang/invoke/CallSite; +002970: 6000 0000 |0000: sget v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000 +002974: d800 0001 |0002: add-int/lit8 v0, v0, #int 1 // #01 +002978: 6700 0000 |0004: sput v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000 +00297c: 1c00 0a00 |0006: const-class v0, LTestDynamicBootstrapArguments; // type@000a +002980: 2201 2d00 |0008: new-instance v1, Ljava/lang/StringBuilder; // type@002d +002984: 7010 c100 0100 |000a: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +00298a: 6e20 c800 6100 |000d: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +002990: 6e20 c800 8100 |0010: invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +002996: 6e30 c600 910a |0013: invoke-virtual {v1, v9, v10}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@00c6 +00299c: 6e10 ca00 0100 |0016: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +0029a2: 0c01 |0019: move-result-object v1 +0029a4: 6e40 d800 0571 |001a: invoke-virtual {v5, v0, v1, v7}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +0029aa: 0c02 |001d: move-result-object v2 +0029ac: 6203 1300 |001e: sget-object v3, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0029b0: 1a04 ea00 |0020: const-string v4, "bsm" // string@00ea +0029b4: 6e20 b300 4300 |0022: invoke-virtual {v3, v4}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +0029ba: 2203 3400 |0025: new-instance v3, Ljava/lang/invoke/ConstantCallSite; // type@0034 +0029be: 7020 d200 2300 |0027: invoke-direct {v3, v2}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +0029c4: 1103 |002a: return-object v3 + catches : (none) + positions : + 0x0000 line=36 + 0x0006 line=37 + 0x0008 line=38 + 0x001a line=39 + 0x001e line=40 + 0x0025 line=41 + locals : + 0x0008 - 0x002b reg=0 definingClass Ljava/lang/Class; Ljava/lang/Class<*>; + 0x001a - 0x002b reg=1 methodName Ljava/lang/String; + 0x001e - 0x002b reg=2 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x002b reg=5 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x002b reg=6 name Ljava/lang/String; + 0x0000 - 0x002b reg=7 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x002b reg=8 otherNameComponent Ljava/lang/String; + 0x0000 - 0x002b reg=9 nameSuffix J + + #3 : (in LTestDynamicBootstrapArguments;) + name : 'targetA100000000' + type : '(ILjava/lang/String;Ljava/lang/Double;)I' + access : 0x000a (PRIVATE STATIC) + code - + registers : 5 + ins : 3 + outs : 2 + insns size : 30 16-bit code units +0028f8: |[0028f8] TestDynamicBootstrapArguments.targetA100000000:(ILjava/lang/String;Ljava/lang/Double;)I +002908: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00290c: 6e20 ad00 2000 |0002: invoke-virtual {v0, v2}, Ljava/io/PrintStream;.print:(I)V // method@00ad +002912: 6200 1300 |0005: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002916: 1a01 0c00 |0007: const-string v1, ", " // string@000c +00291a: 6e20 b000 1000 |0009: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002920: 6200 1300 |000c: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002924: 6e20 b000 3000 |000e: invoke-virtual {v0, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +00292a: 6200 1300 |0011: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00292e: 1a01 0c00 |0013: const-string v1, ", " // string@000c +002932: 6e20 b000 1000 |0015: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002938: 6200 1300 |0018: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00293c: 6e20 b200 4000 |001a: invoke-virtual {v0, v4}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +002942: 0f02 |001d: return v2 + catches : (none) + positions : + 0x0000 line=71 + 0x0005 line=72 + 0x000c line=73 + 0x0011 line=74 + 0x0018 line=75 + 0x001d line=76 + locals : + 0x0000 - 0x001e reg=2 i I + 0x0000 - 0x001e reg=3 s Ljava/lang/String; + 0x0000 - 0x001e reg=4 d Ljava/lang/Double; + + #4 : (in LTestDynamicBootstrapArguments;) + name : 'test' type : '()V' - access : 0x0009 (PUBLIC STATIC) + access : 0x0008 (STATIC) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 25 16-bit code units +0029f8: |[0029f8] TestDynamicBootstrapArguments.test:()V +002a08: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002a0c: 1a01 9200 |0002: const-string v1, "TestDynamicArguments" // string@0092 +002a10: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +002a16: 7100 4600 0000 |0007: invoke-static {}, LTestDynamicBootstrapArguments;.testCallSites:()V // method@0046 +002a1c: 6000 0000 |000a: sget v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000 +002a20: 1231 |000c: const/4 v1, #int 3 // #3 +002a22: 7120 4100 0100 |000d: invoke-static {v1, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041 +002a28: 7100 4600 0000 |0010: invoke-static {}, LTestDynamicBootstrapArguments;.testCallSites:()V // method@0046 +002a2e: 6000 0000 |0013: sget v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000 +002a32: 7120 4100 0100 |0015: invoke-static {v1, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041 +002a38: 0e00 |0018: return-void + catches : (none) + positions : + 0x0000 line=86 + 0x0007 line=87 + 0x000a line=88 + 0x0010 line=89 + 0x0013 line=90 + 0x0018 line=91 + locals : + + #5 : (in LTestDynamicBootstrapArguments;) + name : 'testCallSites' + type : '()V' + access : 0x0008 (STATIC) + code - + registers : 3 + ins : 0 + outs : 3 + insns size : 55 16-bit code units +002a3c: |[002a3c] TestDynamicBootstrapArguments.testCallSites:()V +002a4c: 1a00 8b00 |0000: const-string v0, "One" // string@008b +002a50: 1801 182d 4454 fb21 0940 |0002: const-wide v1, #double 3.14159 // #400921fb54442d18 +002a5a: 7120 b900 2100 |0007: invoke-static {v1, v2}, Ljava/lang/Double;.valueOf:(D)Ljava/lang/Double; // method@00b9 +002a60: 0c01 |000a: move-result-object v1 +002a62: 1202 |000b: const/4 v2, #int 0 // #0 +002a64: fc30 0f00 0201 |000c: invoke-custom {v2, v0, v1}, call_site@000f +002a6a: 0a00 |000f: move-result v0 +002a6c: 7120 4100 0200 |0010: invoke-static {v2, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041 +002a72: 1a00 a200 |0013: const-string v0, "Two" // string@00a2 +002a76: 1801 6957 148b 0abf 0540 |0015: const-wide v1, #double 2.71828 // #4005bf0a8b145769 +002a80: 7120 b900 2100 |001a: invoke-static {v1, v2}, Ljava/lang/Double;.valueOf:(D)Ljava/lang/Double; // method@00b9 +002a86: 0c01 |001d: move-result-object v1 +002a88: 1212 |001e: const/4 v2, #int 1 // #1 +002a8a: fc30 1000 0201 |001f: invoke-custom {v2, v0, v1}, call_site@0010 +002a90: 0a00 |0022: move-result v0 +002a92: 7120 4100 0200 |0023: invoke-static {v2, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041 +002a98: 1a00 9f00 |0026: const-string v0, "Three" // string@009f +002a9c: 1601 0000 |0028: const-wide/16 v1, #int 0 // #0 +002aa0: 7120 b900 2100 |002a: invoke-static {v1, v2}, Ljava/lang/Double;.valueOf:(D)Ljava/lang/Double; // method@00b9 +002aa6: 0c01 |002d: move-result-object v1 +002aa8: 1222 |002e: const/4 v2, #int 2 // #2 +002aaa: fc30 1100 0201 |002f: invoke-custom {v2, v0, v1}, call_site@0011 +002ab0: 0a00 |0032: move-result v0 +002ab2: 7120 4100 0200 |0033: invoke-static {v2, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041 +002ab8: 0e00 |0036: return-void + catches : (none) + positions : + 0x0000 line=80 + 0x0013 line=81 + 0x0026 line=82 + 0x0036 line=83 + locals : + + #6 : (in LTestDynamicBootstrapArguments;) + name : 'testDynamic' + type : '(ILjava/lang/String;Ljava/lang/Double;)I' + access : 0x000a (PRIVATE STATIC) code - registers : 4 + ins : 3 + outs : 0 + insns size : 5 16-bit code units +002944: |[002944] TestDynamicBootstrapArguments.testDynamic:(ILjava/lang/String;Ljava/lang/Double;)I +002954: 7100 4200 0000 |0000: invoke-static {}, LTestDynamicBootstrapArguments;.assertNotReached:()V // method@0042 +00295a: 1200 |0003: const/4 v0, #int 0 // #0 +00295c: 0f00 |0004: return v0 + catches : (none) + positions : + 0x0000 line=66 + 0x0003 line=67 + locals : + 0x0000 - 0x0005 reg=1 i I + 0x0000 - 0x0005 reg=2 s Ljava/lang/String; + 0x0000 - 0x0005 reg=3 d Ljava/lang/Double; + + Virtual methods - + source_file_idx : 147 (TestDynamicBootstrapArguments.java) + +Class #8 header: +class_idx : 12 +access_flags : 0 (0x0000) +superclass_idx : 9 +interfaces_off : 0 (0x000000) +source_file_idx : 148 +annotations_off : 31020 (0x00792c) +class_data_off : 29258 (0x00724a) +static_fields_size : 1 +instance_fields_size: 1 +direct_methods_size : 18 +virtual_methods_size: 1 + +Class #8 annotations: +Annotations on class + VISIBILITY_SYSTEM Ldalvik/annotation/MemberClasses; value={ LTestInvocationKinds$Widget; } +Annotations on method #78 'getInstanceField' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupInstanceFieldGetter" } fieldOrMethodName="instance_field" parameterTypes={ LTestInvocationKinds; } returnType=D +Annotations on method #80 'getStaticField' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupStaticFieldGetter" } fieldOrMethodName="static_field" parameterTypes={ } returnType=I +Annotations on method #81 'lookupConstructor' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #82 'lookupInstanceFieldGetter' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #83 'lookupInstanceFieldSetter' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #84 'lookupStaticFieldGetter' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #85 'lookupStaticFieldSetter' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #86 'lookupVirtual' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #87 'makeWidget' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupConstructor" } fieldOrMethodName="unused" parameterTypes={ I } returnType=LTestInvocationKinds$Widget; +Annotations on method #88 'maxIntegerValue' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupVirtual" } fieldOrMethodName="getMaxIntegerValue" parameterTypes={ LTestInvocationKinds; I I } returnType=I +Annotations on method #89 'setInstanceField' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupInstanceFieldSetter" } fieldOrMethodName="instance_field" parameterTypes={ LTestInvocationKinds; D } returnType=V +Annotations on method #90 'setStaticField' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupStaticFieldSetter" } fieldOrMethodName="static_field" parameterTypes={ I } returnType=V + +Class #8 - + Class descriptor : 'LTestInvocationKinds;' + Access flags : 0x0000 () + Superclass : 'LTestBase;' + Interfaces - + Static fields - + #0 : (in LTestInvocationKinds;) + name : 'static_field' + type : 'I' + access : 0x000a (PRIVATE STATIC) + Instance fields - + #0 : (in LTestInvocationKinds;) + name : 'instance_field' + type : 'D' + access : 0x0002 (PRIVATE) + Direct methods - + #0 : (in LTestInvocationKinds;) + name : '<init>' + type : '()V' + access : 0x10000 (CONSTRUCTOR) + code - + registers : 1 + ins : 1 + outs : 1 + insns size : 4 16-bit code units +002ca4: |[002ca4] TestInvocationKinds.<init>:()V +002cb4: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032 +002cba: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=25 + locals : + 0x0000 - 0x0004 reg=0 this LTestInvocationKinds; + + #1 : (in LTestInvocationKinds;) + name : 'getInstanceField' + type : '(LTestInvocationKinds;)D' + access : 0x000a (PRIVATE STATIC) + code - + registers : 3 + ins : 1 + outs : 0 + insns size : 6 16-bit code units +002af0: |[002af0] TestInvocationKinds.getInstanceField:(LTestInvocationKinds;)D +002b00: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d +002b06: 1900 f87f |0003: const-wide/high16 v0, #long 9221120237041090560 // #7ff8 +002b0a: 1000 |0005: return-wide v0 + catches : (none) + positions : + 0x0000 line=117 + 0x0003 line=118 + locals : + 0x0000 - 0x0006 reg=2 instance LTestInvocationKinds; + + #2 : (in LTestInvocationKinds;) + name : 'getStaticField' + type : '()I' + access : 0x000a (PRIVATE STATIC) + code - + registers : 1 ins : 0 + outs : 0 + insns size : 5 16-bit code units +002b28: |[002b28] TestInvocationKinds.getStaticField:()I +002b38: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d +002b3e: 1200 |0003: const/4 v0, #int 0 // #0 +002b40: 0f00 |0004: return v0 + catches : (none) + positions : + 0x0000 line=71 + 0x0003 line=72 + locals : + + #3 : (in LTestInvocationKinds;) + name : 'lookupConstructor' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' + access : 0x000a (PRIVATE STATIC) + code - + registers : 7 + ins : 3 outs : 3 - insns size : 35 16-bit code units -001324: |[001324] invokecustom.InvokeCustom.test5:()V -001334: 1300 e803 |0000: const/16 v0, #int 1000 // #3e8 -001338: 1301 65fc |0002: const/16 v1, #int -923 // #fc65 -00133c: 1302 4d00 |0004: const/16 v2, #int 77 // #4d -001340: fc30 0500 1002 |0006: invoke-custom {v0, v1, v2}, call_site@0005 -001346: 0a00 |0009: move-result v0 -001348: 6201 0200 |000a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -00134c: 2202 1000 |000c: new-instance v2, Ljava/lang/StringBuilder; // type@0010 -001350: 7010 3000 0200 |000e: invoke-direct {v2}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -001356: 1a03 8e00 |0011: const-string v3, "targetMethodTest5 returned: " // string@008e -00135a: 6e20 3600 3200 |0013: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -001360: 0c02 |0016: move-result-object v2 -001362: 6e20 3300 0200 |0017: invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@0033 -001368: 0c00 |001a: move-result-object v0 -00136a: 6e10 3700 0000 |001b: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -001370: 0c00 |001e: move-result-object v0 -001372: 6e20 2900 0100 |001f: invoke-virtual {v1, v0}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -001378: 0e00 |0022: return-void - catches : (none) - positions : - locals : - - #25 : (in Linvokecustom/InvokeCustom;) - name : 'test6' + insns size : 20 16-bit code units +002b60: |[002b60] TestInvocationKinds.lookupConstructor:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; +002b70: 6e10 e500 0600 |0000: invoke-virtual {v6}, Ljava/lang/invoke/MethodType;.returnType:()Ljava/lang/Class; // method@00e5 +002b76: 0c00 |0003: move-result-object v0 +002b78: 6201 1400 |0004: sget-object v1, Ljava/lang/Void;.TYPE:Ljava/lang/Class; // field@0014 +002b7c: 6e20 df00 1600 |0006: invoke-virtual {v6, v1}, Ljava/lang/invoke/MethodType;.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType; // method@00df +002b82: 0c01 |0009: move-result-object v1 +002b84: 6e30 d500 0401 |000a: invoke-virtual {v4, v0, v1}, Ljava/lang/invoke/MethodHandles$Lookup;.findConstructor:(Ljava/lang/Class;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d5 +002b8a: 0c02 |000d: move-result-object v2 +002b8c: 2203 3400 |000e: new-instance v3, Ljava/lang/invoke/ConstantCallSite; // type@0034 +002b90: 7020 d200 2300 |0010: invoke-direct {v3, v2}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +002b96: 1103 |0013: return-object v3 + catches : (none) + positions : + 0x0000 line=183 + 0x0004 line=184 + 0x000a line=185 + 0x000e line=186 + locals : + 0x0004 - 0x0014 reg=0 cls Ljava/lang/Class; Ljava/lang/Class<*>; + 0x000a - 0x0014 reg=1 constructorMethodType Ljava/lang/invoke/MethodType; + 0x000e - 0x0014 reg=2 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0014 reg=4 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0014 reg=5 name Ljava/lang/String; + 0x0000 - 0x0014 reg=6 methodType Ljava/lang/invoke/MethodType; + + #4 : (in LTestInvocationKinds;) + name : 'lookupInstanceFieldGetter' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' + access : 0x0008 (STATIC) + code - + registers : 5 + ins : 3 + outs : 4 + insns size : 20 16-bit code units +002b98: |[002b98] TestInvocationKinds.lookupInstanceFieldGetter:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; +002ba8: 0000 |0000: nop // spacer +002baa: 1200 |0001: const/4 v0, #int 0 // #0 +002bac: 6e20 e400 0400 |0002: invoke-virtual {v4, v0}, Ljava/lang/invoke/MethodType;.parameterType:(I)Ljava/lang/Class; // method@00e4 +002bb2: 0c00 |0005: move-result-object v0 +002bb4: 6e10 e500 0400 |0006: invoke-virtual {v4}, Ljava/lang/invoke/MethodType;.returnType:()Ljava/lang/Class; // method@00e5 +002bba: 0c01 |0009: move-result-object v1 +002bbc: 6e40 d600 0213 |000a: invoke-virtual {v2, v0, v3, v1}, Ljava/lang/invoke/MethodHandles$Lookup;.findGetter:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle; // method@00d6 +002bc2: 0c00 |000d: move-result-object v0 +002bc4: 2201 3400 |000e: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +002bc8: 7020 d200 0100 |0010: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +002bce: 1101 |0013: return-object v1 + catches : (none) + positions : + 0x0000 line=101 + 0x0001 line=102 + 0x000e line=103 + locals : + 0x000e - 0x0014 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0014 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0014 reg=3 name Ljava/lang/String; + 0x0000 - 0x0014 reg=4 methodType Ljava/lang/invoke/MethodType; + + #5 : (in LTestInvocationKinds;) + name : 'lookupInstanceFieldSetter' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' + access : 0x0008 (STATIC) + code - + registers : 5 + ins : 3 + outs : 4 + insns size : 21 16-bit code units +002bd0: |[002bd0] TestInvocationKinds.lookupInstanceFieldSetter:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; +002be0: 0000 |0000: nop // spacer +002be2: 1200 |0001: const/4 v0, #int 0 // #0 +002be4: 6e20 e400 0400 |0002: invoke-virtual {v4, v0}, Ljava/lang/invoke/MethodType;.parameterType:(I)Ljava/lang/Class; // method@00e4 +002bea: 0c00 |0005: move-result-object v0 +002bec: 1211 |0006: const/4 v1, #int 1 // #1 +002bee: 6e20 e400 1400 |0007: invoke-virtual {v4, v1}, Ljava/lang/invoke/MethodType;.parameterType:(I)Ljava/lang/Class; // method@00e4 +002bf4: 0c01 |000a: move-result-object v1 +002bf6: 6e40 d700 0213 |000b: invoke-virtual {v2, v0, v3, v1}, Ljava/lang/invoke/MethodHandles$Lookup;.findSetter:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle; // method@00d7 +002bfc: 0c00 |000e: move-result-object v0 +002bfe: 2201 3400 |000f: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +002c02: 7020 d200 0100 |0011: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +002c08: 1101 |0014: return-object v1 + catches : (none) + positions : + 0x0000 line=78 + 0x0001 line=79 + 0x000f line=80 + locals : + 0x000f - 0x0015 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0015 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0015 reg=3 name Ljava/lang/String; + 0x0000 - 0x0015 reg=4 methodType Ljava/lang/invoke/MethodType; + + #6 : (in LTestInvocationKinds;) + name : 'lookupStaticFieldGetter' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' + access : 0x0008 (STATIC) + code - + registers : 5 + ins : 3 + outs : 4 + insns size : 16 16-bit code units +002c0c: |[002c0c] TestInvocationKinds.lookupStaticFieldGetter:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; +002c1c: 1c00 0c00 |0000: const-class v0, LTestInvocationKinds; // type@000c +002c20: 6e10 e500 0400 |0002: invoke-virtual {v4}, Ljava/lang/invoke/MethodType;.returnType:()Ljava/lang/Class; // method@00e5 +002c26: 0c01 |0005: move-result-object v1 +002c28: 6e40 d900 0213 |0006: invoke-virtual {v2, v0, v3, v1}, Ljava/lang/invoke/MethodHandles$Lookup;.findStaticGetter:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle; // method@00d9 +002c2e: 0c00 |0009: move-result-object v0 +002c30: 2201 3400 |000a: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +002c34: 7020 d200 0100 |000c: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +002c3a: 1101 |000f: return-object v1 + catches : (none) + positions : + 0x0000 line=32 + 0x0002 line=33 + 0x000a line=34 + locals : + 0x000a - 0x0010 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0010 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0010 reg=3 name Ljava/lang/String; + 0x0000 - 0x0010 reg=4 methodType Ljava/lang/invoke/MethodType; + + #7 : (in LTestInvocationKinds;) + name : 'lookupStaticFieldSetter' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' + access : 0x0008 (STATIC) + code - + registers : 5 + ins : 3 + outs : 4 + insns size : 17 16-bit code units +002c3c: |[002c3c] TestInvocationKinds.lookupStaticFieldSetter:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; +002c4c: 1c00 0c00 |0000: const-class v0, LTestInvocationKinds; // type@000c +002c50: 1201 |0002: const/4 v1, #int 0 // #0 +002c52: 6e20 e400 1400 |0003: invoke-virtual {v4, v1}, Ljava/lang/invoke/MethodType;.parameterType:(I)Ljava/lang/Class; // method@00e4 +002c58: 0c01 |0006: move-result-object v1 +002c5a: 6e40 da00 0213 |0007: invoke-virtual {v2, v0, v3, v1}, Ljava/lang/invoke/MethodHandles$Lookup;.findStaticSetter:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle; // method@00da +002c60: 0c00 |000a: move-result-object v0 +002c62: 2201 3400 |000b: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +002c66: 7020 d200 0100 |000d: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +002c6c: 1101 |0010: return-object v1 + catches : (none) + positions : + 0x0000 line=54 + 0x0002 line=56 + 0x0007 line=55 + 0x000b line=57 + locals : + 0x000b - 0x0011 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0011 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0011 reg=3 name Ljava/lang/String; + 0x0000 - 0x0011 reg=4 methodType Ljava/lang/invoke/MethodType; + + #8 : (in LTestInvocationKinds;) + name : 'lookupVirtual' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' + access : 0x000a (PRIVATE STATIC) + code - + registers : 6 + ins : 3 + outs : 4 + insns size : 18 16-bit code units +002c70: |[002c70] TestInvocationKinds.lookupVirtual:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; +002c80: 1200 |0000: const/4 v0, #int 0 // #0 +002c82: 1211 |0001: const/4 v1, #int 1 // #1 +002c84: 6e30 e000 0501 |0002: invoke-virtual {v5, v0, v1}, Ljava/lang/invoke/MethodType;.dropParameterTypes:(II)Ljava/lang/invoke/MethodType; // method@00e0 +002c8a: 0c00 |0005: move-result-object v0 +002c8c: 1c01 0c00 |0006: const-class v1, LTestInvocationKinds; // type@000c +002c90: 6e40 db00 1304 |0008: invoke-virtual {v3, v1, v4, v0}, Ljava/lang/invoke/MethodHandles$Lookup;.findVirtual:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00db +002c96: 0c01 |000b: move-result-object v1 +002c98: 2202 3400 |000c: new-instance v2, Ljava/lang/invoke/ConstantCallSite; // type@0034 +002c9c: 7020 d200 1200 |000e: invoke-direct {v2, v1}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +002ca2: 1102 |0011: return-object v2 + catches : (none) + positions : + 0x0000 line=146 + 0x0006 line=147 + 0x000c line=148 + locals : + 0x0006 - 0x0012 reg=0 mt Ljava/lang/invoke/MethodType; + 0x000c - 0x0012 reg=1 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0012 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0012 reg=4 name Ljava/lang/String; + 0x0000 - 0x0012 reg=5 methodType Ljava/lang/invoke/MethodType; + + #9 : (in LTestInvocationKinds;) + name : 'makeWidget' + type : '(I)LTestInvocationKinds$Widget;' + access : 0x000a (PRIVATE STATIC) + code - + registers : 2 + ins : 1 + outs : 0 + insns size : 5 16-bit code units +002ad4: |[002ad4] TestInvocationKinds.makeWidget:(I)LTestInvocationKinds$Widget; +002ae4: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d +002aea: 1200 |0003: const/4 v0, #int 0 // #0 +002aec: 1100 |0004: return-object v0 + catches : (none) + positions : + 0x0000 line=200 + 0x0003 line=201 + locals : + 0x0000 - 0x0005 reg=1 v I + + #10 : (in LTestInvocationKinds;) + name : 'maxIntegerValue' + type : '(LTestInvocationKinds;II)I' + access : 0x000a (PRIVATE STATIC) + code - + registers : 4 + ins : 3 + outs : 0 + insns size : 5 16-bit code units +002b44: |[002b44] TestInvocationKinds.maxIntegerValue:(LTestInvocationKinds;II)I +002b54: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d +002b5a: 1200 |0003: const/4 v0, #int 0 // #0 +002b5c: 0f00 |0004: return v0 + catches : (none) + positions : + 0x0000 line=159 + 0x0003 line=160 + locals : + 0x0000 - 0x0005 reg=1 receiver LTestInvocationKinds; + 0x0000 - 0x0005 reg=2 x I + 0x0000 - 0x0005 reg=3 y I + + #11 : (in LTestInvocationKinds;) + name : 'setInstanceField' + type : '(LTestInvocationKinds;D)V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 5 + ins : 3 + outs : 0 + insns size : 8 16-bit code units +002cbc: |[002cbc] TestInvocationKinds.setInstanceField:(LTestInvocationKinds;D)V +002ccc: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d +002cd2: 1900 f87f |0003: const-wide/high16 v0, #long 9221120237041090560 // #7ff8 +002cd6: 5a20 0200 |0005: iput-wide v0, v2, LTestInvocationKinds;.instance_field:D // field@0002 +002cda: 0e00 |0007: return-void + catches : (none) + positions : + 0x0000 line=94 + 0x0003 line=95 + 0x0007 line=96 + locals : + 0x0000 - 0x0008 reg=2 instance LTestInvocationKinds; + 0x0000 - 0x0008 reg=3 value D + + #12 : (in LTestInvocationKinds;) + name : 'setStaticField' + type : '(I)V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 1 + ins : 1 + outs : 0 + insns size : 4 16-bit code units +002cdc: |[002cdc] TestInvocationKinds.setStaticField:(I)V +002cec: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d +002cf2: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=48 + 0x0003 line=49 + locals : + 0x0000 - 0x0004 reg=0 value I + + #13 : (in LTestInvocationKinds;) + name : 'test' type : '()V' access : 0x0009 (PUBLIC STATIC) code - - registers : 6 + registers : 2 ins : 0 - outs : 6 - insns size : 44 16-bit code units -00137c: |[00137c] invokecustom.InvokeCustom.test6:()V -00138c: 1800 7777 7777 7707 0000 |0000: const-wide v0, #double 4.05612e-311 // #0000077777777777 -001396: 1802 efee eeee eefe ffff |0005: const-wide v2, #double -nan // #fffffeeeeeeeeeef -0013a0: 1804 6666 6666 6606 0000 |000a: const-wide v4, #double 3.47668e-311 // #0000066666666666 -0013aa: fd06 0600 0000 |000f: invoke-custom/range {v0, v1, v2, v3, v4, v5}, call_site@0006 -0013b0: 0b00 |0012: move-result-wide v0 -0013b2: 6202 0200 |0013: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -0013b6: 2203 1000 |0015: new-instance v3, Ljava/lang/StringBuilder; // type@0010 -0013ba: 7010 3000 0300 |0017: invoke-direct {v3}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -0013c0: 1a04 9100 |001a: const-string v4, "targetMethodTest6 returned: " // string@0091 -0013c4: 6e20 3600 4300 |001c: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -0013ca: 0c03 |001f: move-result-object v3 -0013cc: 6e30 3400 0301 |0020: invoke-virtual {v3, v0, v1}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@0034 -0013d2: 0c00 |0023: move-result-object v0 -0013d4: 6e10 3700 0000 |0024: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -0013da: 0c00 |0027: move-result-object v0 -0013dc: 6e20 2900 0200 |0028: invoke-virtual {v2, v0}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -0013e2: 0e00 |002b: return-void - catches : (none) - positions : - locals : - - #26 : (in Linvokecustom/InvokeCustom;) - name : 'test7' + outs : 2 + insns size : 24 16-bit code units +002cf4: |[002cf4] TestInvocationKinds.test:()V +002d04: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002d08: 1c01 0c00 |0002: const-class v1, LTestInvocationKinds; // type@000c +002d0c: 6e10 b700 0100 |0004: invoke-virtual {v1}, Ljava/lang/Class;.getName:()Ljava/lang/String; // method@00b7 +002d12: 0c01 |0007: move-result-object v1 +002d14: 6e20 b300 1000 |0008: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +002d1a: 7100 5f00 0000 |000b: invoke-static {}, LTestInvocationKinds;.testStaticFieldAccessors:()V // method@005f +002d20: 7100 5d00 0000 |000e: invoke-static {}, LTestInvocationKinds;.testInstanceFieldAccessors:()V // method@005d +002d26: 7100 5e00 0000 |0011: invoke-static {}, LTestInvocationKinds;.testInvokeVirtual:()V // method@005e +002d2c: 7100 5c00 0000 |0014: invoke-static {}, LTestInvocationKinds;.testConstructor:()V // method@005c +002d32: 0e00 |0017: return-void + catches : (none) + positions : + 0x0000 line=212 + 0x000b line=213 + 0x000e line=214 + 0x0011 line=215 + 0x0014 line=216 + 0x0017 line=217 + locals : + + #14 : (in LTestInvocationKinds;) + name : 'testConstructor' type : '()V' - access : 0x0009 (PUBLIC STATIC) + access : 0x0008 (STATIC) + code - + registers : 3 + ins : 0 + outs : 2 + insns size : 31 16-bit code units +002d34: |[002d34] TestInvocationKinds.testConstructor:()V +002d44: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002d48: 1a01 b601 |0002: const-string v1, "testConstructor => " // string@01b6 +002d4c: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002d52: 1230 |0007: const/4 v0, #int 3 // #3 +002d54: fc10 1200 0000 |0008: invoke-custom {v0}, call_site@0012 +002d5a: 0c00 |000b: move-result-object v0 +002d5c: 1c01 0b00 |000c: const-class v1, LTestInvocationKinds$Widget; // type@000b +002d60: 6e10 c000 0000 |000e: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +002d66: 0c02 |0011: move-result-object v2 +002d68: 7120 4c00 2100 |0012: invoke-static {v1, v2}, LTestInvocationKinds;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@004c +002d6e: 6201 1300 |0015: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002d72: 6e10 c000 0000 |0017: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +002d78: 0c02 |001a: move-result-object v2 +002d7a: 6e20 b200 2100 |001b: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +002d80: 0e00 |001e: return-void + catches : (none) + positions : + 0x0000 line=205 + 0x0007 line=206 + 0x000c line=207 + 0x0015 line=208 + 0x001e line=209 + locals : + 0x000c - 0x001f reg=0 receiver LTestInvocationKinds$Widget; + + #15 : (in LTestInvocationKinds;) + name : 'testInstanceFieldAccessors' + type : '()V' + access : 0x000a (PRIVATE STATIC) code - registers : 5 ins : 0 outs : 4 - insns size : 40 16-bit code units -0013e4: |[0013e4] invokecustom.InvokeCustom.test7:()V -0013f4: 1400 0040 003f |0000: const v0, #float 0.500977 // #3f004000 -0013fa: 1401 0040 00bf |0003: const v1, #float -0.500977 // #bf004000 -001400: 1802 0000 0000 0410 d0bf |0006: const-wide v2, #double -0.250978 // #bfd0100400000000 -00140a: fc40 0700 1032 |000b: invoke-custom {v0, v1, v2, v3}, call_site@0007 -001410: 0b00 |000e: move-result-wide v0 -001412: 6202 0200 |000f: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -001416: 2203 1000 |0011: new-instance v3, Ljava/lang/StringBuilder; // type@0010 -00141a: 7010 3000 0300 |0013: invoke-direct {v3}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -001420: 1a04 9100 |0016: const-string v4, "targetMethodTest6 returned: " // string@0091 -001424: 6e20 3600 4300 |0018: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -00142a: 0c03 |001b: move-result-object v3 -00142c: 6e30 3100 0301 |001c: invoke-virtual {v3, v0, v1}, Ljava/lang/StringBuilder;.append:(D)Ljava/lang/StringBuilder; // method@0031 -001432: 0c00 |001f: move-result-object v0 -001434: 6e10 3700 0000 |0020: invoke-virtual {v0}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -00143a: 0c00 |0023: move-result-object v0 -00143c: 6e20 2900 0200 |0024: invoke-virtual {v2, v0}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -001442: 0e00 |0027: return-void - catches : (none) - positions : - locals : - - #27 : (in Linvokecustom/InvokeCustom;) - name : 'test8' + insns size : 44 16-bit code units +002d84: |[002d84] TestInvocationKinds.testInstanceFieldAccessors:()V +002d94: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002d98: 1a01 b801 |0002: const-string v1, "testInstanceFieldAccessors" // string@01b8 +002d9c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +002da2: 2200 0c00 |0007: new-instance v0, LTestInvocationKinds; // type@000c +002da6: 7010 4900 0000 |0009: invoke-direct {v0}, LTestInvocationKinds;.<init>:()V // method@0049 +002dac: 1601 0100 |000c: const-wide/16 v1, #int 1 // #1 +002db0: 5a01 0200 |000e: iput-wide v1, v0, LTestInvocationKinds;.instance_field:D // field@0002 +002db4: 1801 182d 4454 fb21 0940 |0010: const-wide v1, #double 3.14159 // #400921fb54442d18 +002dbe: fc30 1300 1002 |0015: invoke-custom {v0, v1, v2}, call_site@0013 +002dc4: 5303 0200 |0018: iget-wide v3, v0, LTestInvocationKinds;.instance_field:D // field@0002 +002dc8: 7140 4a00 2143 |001a: invoke-static {v1, v2, v3, v4}, LTestInvocationKinds;.assertEquals:(DD)V // method@004a +002dce: 1801 6957 148b 0abf 0540 |001d: const-wide v1, #double 2.71828 // #4005bf0a8b145769 +002dd8: 5a01 0200 |0022: iput-wide v1, v0, LTestInvocationKinds;.instance_field:D // field@0002 +002ddc: fc10 1400 0000 |0024: invoke-custom {v0}, call_site@0014 +002de2: 0b03 |0027: move-result-wide v3 +002de4: 7140 4a00 2143 |0028: invoke-static {v1, v2, v3, v4}, LTestInvocationKinds;.assertEquals:(DD)V // method@004a +002dea: 0e00 |002b: return-void + catches : (none) + positions : + 0x0000 line=133 + 0x0007 line=134 + 0x000c line=135 + 0x0010 line=136 + 0x0018 line=137 + 0x001d line=138 + 0x0024 line=139 + 0x002b line=140 + locals : + 0x000c - 0x002c reg=0 instance LTestInvocationKinds; + + #16 : (in LTestInvocationKinds;) + name : 'testInvokeVirtual' type : '()V' - access : 0x0009 (PUBLIC STATIC) + access : 0x0008 (STATIC) + code - + registers : 3 + ins : 0 + outs : 3 + insns size : 25 16-bit code units +002dec: |[002dec] TestInvocationKinds.testInvokeVirtual:()V +002dfc: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002e00: 1a01 ba01 |0002: const-string v1, "testInvokeVirtual => max(77, -3) = " // string@01ba +002e04: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +002e0a: 2200 0c00 |0007: new-instance v0, LTestInvocationKinds; // type@000c +002e0e: 7010 4900 0000 |0009: invoke-direct {v0}, LTestInvocationKinds;.<init>:()V // method@0049 +002e14: 1301 4d00 |000c: const/16 v1, #int 77 // #4d +002e18: 12d2 |000e: const/4 v2, #int -3 // #fd +002e1a: fc30 1500 1002 |000f: invoke-custom {v0, v1, v2}, call_site@0015 +002e20: 0a01 |0012: move-result v1 +002e22: 6202 1300 |0013: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002e26: 6e20 b100 1200 |0015: invoke-virtual {v2, v1}, Ljava/io/PrintStream;.println:(I)V // method@00b1 +002e2c: 0e00 |0018: return-void + catches : (none) + positions : + 0x0000 line=168 + 0x0007 line=169 + 0x000c line=170 + 0x0013 line=171 + 0x0018 line=172 + locals : + 0x000c - 0x0019 reg=0 receiver LTestInvocationKinds; + 0x0013 - 0x0019 reg=1 result I + + #17 : (in LTestInvocationKinds;) + name : 'testStaticFieldAccessors' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 47 16-bit code units +002e30: |[002e30] TestInvocationKinds.testStaticFieldAccessors:()V +002e40: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +002e44: 1a01 bb01 |0002: const-string v1, "testStaticFieldAccessors" // string@01bb +002e48: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +002e4e: 1230 |0007: const/4 v0, #int 3 // #3 +002e50: fc10 1600 0000 |0008: invoke-custom {v0}, call_site@0016 +002e56: 6001 0300 |000b: sget v1, LTestInvocationKinds;.static_field:I // field@0003 +002e5a: 7120 4b00 0100 |000d: invoke-static {v1, v0}, LTestInvocationKinds;.assertEquals:(II)V // method@004b +002e60: 1240 |0010: const/4 v0, #int 4 // #4 +002e62: fc10 1700 0000 |0011: invoke-custom {v0}, call_site@0017 +002e68: 6001 0300 |0014: sget v1, LTestInvocationKinds;.static_field:I // field@0003 +002e6c: 7120 4b00 0100 |0016: invoke-static {v1, v0}, LTestInvocationKinds;.assertEquals:(II)V // method@004b +002e72: 6000 0300 |0019: sget v0, LTestInvocationKinds;.static_field:I // field@0003 +002e76: fc00 1800 0000 |001b: invoke-custom {}, call_site@0018 +002e7c: 0a01 |001e: move-result v1 +002e7e: 7120 4b00 1000 |001f: invoke-static {v0, v1}, LTestInvocationKinds;.assertEquals:(II)V // method@004b +002e84: 1400 ffff ff7f |0022: const v0, #float nan // #7fffffff +002e8a: 6700 0300 |0025: sput v0, LTestInvocationKinds;.static_field:I // field@0003 +002e8e: fc00 1900 0000 |0027: invoke-custom {}, call_site@0019 +002e94: 0a01 |002a: move-result v1 +002e96: 7120 4b00 1000 |002b: invoke-static {v0, v1}, LTestInvocationKinds;.assertEquals:(II)V // method@004b +002e9c: 0e00 |002e: return-void + catches : (none) + positions : + 0x0000 line=122 + 0x0007 line=123 + 0x000b line=124 + 0x0010 line=125 + 0x0014 line=126 + 0x0019 line=127 + 0x0022 line=128 + 0x0027 line=129 + 0x002e line=130 + locals : + + Virtual methods - + #0 : (in LTestInvocationKinds;) + name : 'getMaxIntegerValue' + type : '(II)I' + access : 0x0001 (PUBLIC) + code - + registers : 4 + ins : 3 + outs : 0 + insns size : 6 16-bit code units +002b0c: |[002b0c] TestInvocationKinds.getMaxIntegerValue:(II)I +002b1c: 3732 0400 |0000: if-le v2, v3, 0004 // +0004 +002b20: 0120 |0002: move v0, v2 +002b22: 2802 |0003: goto 0005 // +0002 +002b24: 0130 |0004: move v0, v3 +002b26: 0f00 |0005: return v0 + catches : (none) + positions : + 0x0000 line=164 + locals : + 0x0000 - 0x0006 reg=1 this LTestInvocationKinds; + 0x0000 - 0x0006 reg=2 x I + 0x0000 - 0x0006 reg=3 y I + + source_file_idx : 148 (TestInvocationKinds.java) + +Class #9 header: +class_idx : 14 +access_flags : 1 (0x0001) +superclass_idx : 9 +interfaces_off : 18256 (0x004750) +source_file_idx : 149 +annotations_off : 31132 (0x00799c) +class_data_off : 29344 (0x0072a0) +static_fields_size : 7 +instance_fields_size: 0 +direct_methods_size : 8 +virtual_methods_size: 1 + +Class #9 annotations: +Annotations on field #10 'threadIndex' + VISIBILITY_SYSTEM Ldalvik/annotation/Signature; value={ "Ljava/lang/ThreadLocal<" "Ljava/lang/Integer;" ">;" } +Annotations on method #106 'linkerMethod' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #109 'setCalled' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvokeCustomWithConcurrentThreads; name="linkerMethod" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; } } fieldOrMethodName="setCalled" parameterTypes={ I } returnType=I +Annotations on method #110 'test' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } + +Class #9 - + Class descriptor : 'LTestInvokeCustomWithConcurrentThreads;' + Access flags : 0x0001 (PUBLIC) + Superclass : 'LTestBase;' + Interfaces - + #0 : 'Ljava/lang/Runnable;' + Static fields - + #0 : (in LTestInvokeCustomWithConcurrentThreads;) + name : 'NUMBER_OF_THREADS' + type : 'I' + access : 0x001a (PRIVATE STATIC FINAL) + value : 16 + #1 : (in LTestInvokeCustomWithConcurrentThreads;) + name : 'barrier' + type : 'Ljava/util/concurrent/CyclicBarrier;' + access : 0x001a (PRIVATE STATIC FINAL) + #2 : (in LTestInvokeCustomWithConcurrentThreads;) + name : 'called' + type : '[Ljava/util/concurrent/atomic/AtomicInteger;' + access : 0x001a (PRIVATE STATIC FINAL) + #3 : (in LTestInvokeCustomWithConcurrentThreads;) + name : 'instantiated' + type : '[Ljava/lang/invoke/CallSite;' + access : 0x001a (PRIVATE STATIC FINAL) + #4 : (in LTestInvokeCustomWithConcurrentThreads;) + name : 'nextIndex' + type : 'Ljava/util/concurrent/atomic/AtomicInteger;' + access : 0x001a (PRIVATE STATIC FINAL) + #5 : (in LTestInvokeCustomWithConcurrentThreads;) + name : 'targetted' + type : '[Ljava/util/concurrent/atomic/AtomicInteger;' + access : 0x001a (PRIVATE STATIC FINAL) + #6 : (in LTestInvokeCustomWithConcurrentThreads;) + name : 'threadIndex' + type : 'Ljava/lang/ThreadLocal;' + access : 0x001a (PRIVATE STATIC FINAL) + Instance fields - + Direct methods - + #0 : (in LTestInvokeCustomWithConcurrentThreads;) + name : '<clinit>' + type : '()V' + access : 0x10008 (STATIC CONSTRUCTOR) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 37 16-bit code units +003064: |[003064] TestInvokeCustomWithConcurrentThreads.<clinit>:()V +003074: 2200 3e00 |0000: new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger; // type@003e +003078: 1201 |0002: const/4 v1, #int 0 // #0 +00307a: 7020 ef00 1000 |0003: invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicInteger;.<init>:(I)V // method@00ef +003080: 6900 0800 |0006: sput-object v0, LTestInvokeCustomWithConcurrentThreads;.nextIndex:Ljava/util/concurrent/atomic/AtomicInteger; // field@0008 +003084: 2200 0d00 |0008: new-instance v0, LTestInvokeCustomWithConcurrentThreads$1; // type@000d +003088: 7010 6000 0000 |000a: invoke-direct {v0}, LTestInvokeCustomWithConcurrentThreads$1;.<init>:()V // method@0060 +00308e: 6900 0a00 |000d: sput-object v0, LTestInvokeCustomWithConcurrentThreads;.threadIndex:Ljava/lang/ThreadLocal; // field@000a +003092: 1300 1000 |000f: const/16 v0, #int 16 // #10 +003096: 2301 4b00 |0011: new-array v1, v0, [Ljava/lang/invoke/CallSite; // type@004b +00309a: 6901 0700 |0013: sput-object v1, LTestInvokeCustomWithConcurrentThreads;.instantiated:[Ljava/lang/invoke/CallSite; // field@0007 +00309e: 2301 4c00 |0015: new-array v1, v0, [Ljava/util/concurrent/atomic/AtomicInteger; // type@004c +0030a2: 6901 0600 |0017: sput-object v1, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006 +0030a6: 2301 4c00 |0019: new-array v1, v0, [Ljava/util/concurrent/atomic/AtomicInteger; // type@004c +0030aa: 6901 0900 |001b: sput-object v1, LTestInvokeCustomWithConcurrentThreads;.targetted:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0009 +0030ae: 2201 3d00 |001d: new-instance v1, Ljava/util/concurrent/CyclicBarrier; // type@003d +0030b2: 7020 ed00 0100 |001f: invoke-direct {v1, v0}, Ljava/util/concurrent/CyclicBarrier;.<init>:(I)V // method@00ed +0030b8: 6901 0500 |0022: sput-object v1, LTestInvokeCustomWithConcurrentThreads;.barrier:Ljava/util/concurrent/CyclicBarrier; // field@0005 +0030bc: 0e00 |0024: return-void + catches : (none) + positions : + 0x0000 line=30 + 0x0008 line=32 + 0x000f line=41 + 0x0015 line=44 + 0x0019 line=47 + 0x001d line=50 + locals : + + #1 : (in LTestInvokeCustomWithConcurrentThreads;) + name : '<init>' + type : '()V' + access : 0x10002 (PRIVATE CONSTRUCTOR) + code - + registers : 1 + ins : 1 + outs : 1 + insns size : 4 16-bit code units +0030c0: |[0030c0] TestInvokeCustomWithConcurrentThreads.<init>:()V +0030d0: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032 +0030d6: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=52 + locals : + 0x0000 - 0x0004 reg=0 this LTestInvokeCustomWithConcurrentThreads; + + #2 : (in LTestInvokeCustomWithConcurrentThreads;) + name : 'access$000' + type : '()Ljava/util/concurrent/atomic/AtomicInteger;' + access : 0x1008 (STATIC SYNTHETIC) + code - + registers : 1 + ins : 0 + outs : 0 + insns size : 3 16-bit code units +00304c: |[00304c] TestInvokeCustomWithConcurrentThreads.access$000:()Ljava/util/concurrent/atomic/AtomicInteger; +00305c: 6200 0800 |0000: sget-object v0, LTestInvokeCustomWithConcurrentThreads;.nextIndex:Ljava/util/concurrent/atomic/AtomicInteger; // field@0008 +003060: 1100 |0002: return-object v0 + catches : (none) + positions : + 0x0000 line=27 + locals : + + #3 : (in LTestInvokeCustomWithConcurrentThreads;) + name : 'getThreadIndex' + type : '()I' + access : 0x000a (PRIVATE STATIC) code - registers : 1 ins : 0 outs : 1 - insns size : 16 16-bit code units -001444: |[001444] invokecustom.InvokeCustom.test8:()V -001454: 1a00 1500 |0000: const-string v0, "First invokedynamic invocation" // string@0015 -001458: fc10 0800 0000 |0002: invoke-custom {v0}, call_site@0008 -00145e: 1a00 4700 |0005: const-string v0, "Second invokedynamic invocation" // string@0047 -001462: fc10 0900 0000 |0007: invoke-custom {v0}, call_site@0009 -001468: 1a00 1000 |000a: const-string v0, "Dupe first invokedynamic invocation" // string@0010 -00146c: fc10 0a00 0000 |000c: invoke-custom {v0}, call_site@000a -001472: 0e00 |000f: return-void + insns size : 13 16-bit code units +002f00: |[002f00] TestInvokeCustomWithConcurrentThreads.getThreadIndex:()I +002f10: 6200 0a00 |0000: sget-object v0, LTestInvokeCustomWithConcurrentThreads;.threadIndex:Ljava/lang/ThreadLocal; // field@000a +002f14: 6e10 d000 0000 |0002: invoke-virtual {v0}, Ljava/lang/ThreadLocal;.get:()Ljava/lang/Object; // method@00d0 +002f1a: 0c00 |0005: move-result-object v0 +002f1c: 1f00 2700 |0006: check-cast v0, Ljava/lang/Integer; // type@0027 +002f20: 6e10 bc00 0000 |0008: invoke-virtual {v0}, Ljava/lang/Integer;.intValue:()I // method@00bc +002f26: 0a00 |000b: move-result v0 +002f28: 0f00 |000c: return v0 + catches : (none) + positions : + 0x0000 line=55 + locals : + + #4 : (in LTestInvokeCustomWithConcurrentThreads;) + name : 'linkerMethod' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' + access : 0x000a (PRIVATE STATIC) + code - + registers : 8 + ins : 3 + outs : 4 + insns size : 97 16-bit code units +002f78: |[002f78] TestInvokeCustomWithConcurrentThreads.linkerMethod:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; +002f88: 1c00 0e00 |0000: const-class v0, LTestInvokeCustomWithConcurrentThreads; // type@000e +002f8c: 6e40 d800 0576 |0002: invoke-virtual {v5, v0, v6, v7}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +002f92: 0c00 |0005: move-result-object v0 +002f94: 6e10 d400 0000 |0006: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandle;.type:()Ljava/lang/invoke/MethodType; // method@00d4 +002f9a: 0c01 |0009: move-result-object v1 +002f9c: 7120 6700 1700 |000a: invoke-static {v7, v1}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0067 +002fa2: 6e10 d400 0000 |000d: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandle;.type:()Ljava/lang/invoke/MethodType; // method@00d4 +002fa8: 0c01 |0010: move-result-object v1 +002faa: 6e10 e300 0100 |0011: invoke-virtual {v1}, Ljava/lang/invoke/MethodType;.parameterCount:()I // method@00e3 +002fb0: 0a01 |0014: move-result v1 +002fb2: 1212 |0015: const/4 v2, #int 1 // #1 +002fb4: 7120 6600 2100 |0016: invoke-static {v1, v2}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(II)V // method@0066 +002fba: 2321 4800 |0019: new-array v1, v2, [Ljava/lang/Object; // type@0048 +002fbe: 7100 6900 0000 |001b: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.getThreadIndex:()I // method@0069 +002fc4: 0a03 |001e: move-result v3 +002fc6: 7110 bd00 0300 |001f: invoke-static {v3}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd +002fcc: 0c03 |0022: move-result-object v3 +002fce: 1204 |0023: const/4 v4, #int 0 // #0 +002fd0: 4d03 0104 |0024: aput-object v3, v1, v4 +002fd4: 7130 de00 4001 |0026: invoke-static {v0, v4, v1}, Ljava/lang/invoke/MethodHandles;.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle; // method@00de +002fda: 0c00 |0029: move-result-object v0 +002fdc: 2321 4600 |002a: new-array v1, v2, [Ljava/lang/Class; // type@0046 +002fe0: 6203 1200 |002c: sget-object v3, Ljava/lang/Integer;.TYPE:Ljava/lang/Class; // field@0012 +002fe4: 4d03 0104 |002e: aput-object v3, v1, v4 +002fe8: 7130 dd00 4001 |0030: invoke-static {v0, v4, v1}, Ljava/lang/invoke/MethodHandles;.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle; // method@00dd +002fee: 0c00 |0033: move-result-object v0 +002ff0: 6e10 d400 0000 |0034: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandle;.type:()Ljava/lang/invoke/MethodType; // method@00d4 +002ff6: 0c01 |0037: move-result-object v1 +002ff8: 6e10 e300 0100 |0038: invoke-virtual {v1}, Ljava/lang/invoke/MethodType;.parameterCount:()I // method@00e3 +002ffe: 0a01 |003b: move-result v1 +003000: 7120 6600 2100 |003c: invoke-static {v1, v2}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(II)V // method@0066 +003006: 6e10 d400 0000 |003f: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandle;.type:()Ljava/lang/invoke/MethodType; // method@00d4 +00300c: 0c01 |0042: move-result-object v1 +00300e: 7120 6700 1700 |0043: invoke-static {v7, v1}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0067 +003014: 6201 0500 |0046: sget-object v1, LTestInvokeCustomWithConcurrentThreads;.barrier:Ljava/util/concurrent/CyclicBarrier; // field@0005 +003018: 6e10 ee00 0100 |0048: invoke-virtual {v1}, Ljava/util/concurrent/CyclicBarrier;.await:()I // method@00ee +00301e: 6201 0700 |004b: sget-object v1, LTestInvokeCustomWithConcurrentThreads;.instantiated:[Ljava/lang/invoke/CallSite; // field@0007 +003022: 7100 6900 0000 |004d: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.getThreadIndex:()I // method@0069 +003028: 0a02 |0050: move-result v2 +00302a: 2203 3400 |0051: new-instance v3, Ljava/lang/invoke/ConstantCallSite; // type@0034 +00302e: 7020 d200 0300 |0053: invoke-direct {v3, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +003034: 4d03 0102 |0056: aput-object v3, v1, v2 +003038: 6201 0700 |0058: sget-object v1, LTestInvokeCustomWithConcurrentThreads;.instantiated:[Ljava/lang/invoke/CallSite; // field@0007 +00303c: 7100 6900 0000 |005a: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.getThreadIndex:()I // method@0069 +003042: 0a02 |005d: move-result v2 +003044: 4601 0102 |005e: aget-object v1, v1, v2 +003048: 1101 |0060: return-object v1 catches : (none) positions : + 0x0000 line=87 + 0x0002 line=88 + 0x0006 line=89 + 0x000d line=90 + 0x0019 line=91 + 0x002a line=92 + 0x0034 line=93 + 0x003f line=94 + 0x0046 line=99 + 0x004b line=101 + 0x0058 line=102 locals : + 0x0006 - 0x0061 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0061 reg=5 caller Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0061 reg=6 name Ljava/lang/String; + 0x0000 - 0x0061 reg=7 methodType Ljava/lang/invoke/MethodType; - #28 : (in Linvokecustom/InvokeCustom;) - name : 'test9' + #5 : (in LTestInvokeCustomWithConcurrentThreads;) + name : 'notUsed' + type : '(I)I' + access : 0x0009 (PUBLIC STATIC) + code - + registers : 1 + ins : 1 + outs : 0 + insns size : 1 16-bit code units +002f2c: |[002f2c] TestInvokeCustomWithConcurrentThreads.notUsed:(I)I +002f3c: 0f00 |0000: return v0 + catches : (none) + positions : + 0x0000 line=59 + locals : + 0x0000 - 0x0001 reg=0 x I + + #6 : (in LTestInvokeCustomWithConcurrentThreads;) + name : 'setCalled' + type : '(I)I' + access : 0x000a (PRIVATE STATIC) + code - + registers : 3 + ins : 1 + outs : 2 + insns size : 20 16-bit code units +002f40: |[002f40] TestInvokeCustomWithConcurrentThreads.setCalled:(I)I +002f50: 6200 0600 |0000: sget-object v0, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006 +002f54: 4600 0002 |0002: aget-object v0, v0, v2 +002f58: 6e10 f100 0000 |0004: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.getAndIncrement:()I // method@00f1 +002f5e: 6200 0900 |0007: sget-object v0, LTestInvokeCustomWithConcurrentThreads;.targetted:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0009 +002f62: 7100 6900 0000 |0009: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.getThreadIndex:()I // method@0069 +002f68: 0a01 |000c: move-result v1 +002f6a: 4600 0001 |000d: aget-object v0, v0, v1 +002f6e: 6e20 f200 2000 |000f: invoke-virtual {v0, v2}, Ljava/util/concurrent/atomic/AtomicInteger;.set:(I)V // method@00f2 +002f74: 1200 |0012: const/4 v0, #int 0 // #0 +002f76: 0f00 |0013: return v0 + catches : (none) + positions : + 0x0000 line=79 + 0x0007 line=80 + 0x0012 line=81 + locals : + 0x0000 - 0x0014 reg=2 index I + + #7 : (in LTestInvokeCustomWithConcurrentThreads;) + name : 'test' type : '()V' access : 0x0009 (PUBLIC STATIC) code - - registers : 0 + registers : 12 ins : 0 - outs : 0 - insns size : 4 16-bit code units -001474: |[001474] invokecustom.InvokeCustom.test9:()V -001484: fc00 0d00 0000 |0000: invoke-custom {}, call_site@000d -00148a: 0e00 |0003: return-void + outs : 3 + insns size : 229 16-bit code units +0030fc: |[0030fc] TestInvokeCustomWithConcurrentThreads.test:()V +00310c: 1200 |0000: const/4 v0, #int 0 // #0 +00310e: 0101 |0001: move v1, v0 +003110: 1302 1000 |0002: const/16 v2, #int 16 // #10 +003114: 3521 1700 |0004: if-ge v1, v2, 001b // +0017 +003118: 6202 0600 |0006: sget-object v2, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006 +00311c: 2203 3e00 |0008: new-instance v3, Ljava/util/concurrent/atomic/AtomicInteger; // type@003e +003120: 7020 ef00 0300 |000a: invoke-direct {v3, v0}, Ljava/util/concurrent/atomic/AtomicInteger;.<init>:(I)V // method@00ef +003126: 4d03 0201 |000d: aput-object v3, v2, v1 +00312a: 6202 0900 |000f: sget-object v2, LTestInvokeCustomWithConcurrentThreads;.targetted:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0009 +00312e: 2203 3e00 |0011: new-instance v3, Ljava/util/concurrent/atomic/AtomicInteger; // type@003e +003132: 7020 ef00 0300 |0013: invoke-direct {v3, v0}, Ljava/util/concurrent/atomic/AtomicInteger;.<init>:(I)V // method@00ef +003138: 4d03 0201 |0016: aput-object v3, v2, v1 +00313c: d801 0101 |0018: add-int/lit8 v1, v1, #int 1 // #01 +003140: 28e8 |001a: goto 0002 // -0018 +003142: 2321 4a00 |001b: new-array v1, v2, [Ljava/lang/Thread; // type@004a +003146: 0103 |001d: move v3, v0 +003148: 3523 1600 |001e: if-ge v3, v2, 0034 // +0016 +00314c: 2204 2f00 |0020: new-instance v4, Ljava/lang/Thread; // type@002f +003150: 2205 0e00 |0022: new-instance v5, LTestInvokeCustomWithConcurrentThreads; // type@000e +003154: 7010 6400 0500 |0024: invoke-direct {v5}, LTestInvokeCustomWithConcurrentThreads;.<init>:()V // method@0064 +00315a: 7020 cb00 5400 |0027: invoke-direct {v4, v5}, Ljava/lang/Thread;.<init>:(Ljava/lang/Runnable;)V // method@00cb +003160: 4d04 0103 |002a: aput-object v4, v1, v3 +003164: 4604 0103 |002c: aget-object v4, v1, v3 +003168: 6e10 ce00 0400 |002e: invoke-virtual {v4}, Ljava/lang/Thread;.start:()V // method@00ce +00316e: d803 0301 |0031: add-int/lit8 v3, v3, #int 1 // #01 +003172: 28eb |0033: goto 001e // -0015 +003174: 0103 |0034: move v3, v0 +003176: 3523 0a00 |0035: if-ge v3, v2, 003f // +000a +00317a: 4604 0103 |0037: aget-object v4, v1, v3 +00317e: 6e10 cd00 0400 |0039: invoke-virtual {v4}, Ljava/lang/Thread;.join:()V // method@00cd +003184: d803 0301 |003c: add-int/lit8 v3, v3, #int 1 // #01 +003188: 28f7 |003e: goto 0035 // -0009 +00318a: 1203 |003f: const/4 v3, #int 0 // #0 +00318c: 1204 |0040: const/4 v4, #int 0 // #0 +00318e: 0145 |0041: move v5, v4 +003190: 0134 |0042: move v4, v3 +003192: 0103 |0043: move v3, v0 +003194: 3523 2200 |0044: if-ge v3, v2, 0066 // +0022 +003198: 6206 0700 |0046: sget-object v6, LTestInvokeCustomWithConcurrentThreads;.instantiated:[Ljava/lang/invoke/CallSite; // field@0007 +00319c: 4606 0603 |0048: aget-object v6, v6, v3 +0031a0: 1207 |004a: const/4 v7, #int 0 // #0 +0031a2: 7120 6800 7600 |004b: invoke-static {v6, v7}, LTestInvokeCustomWithConcurrentThreads;.assertNotEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0068 +0031a8: 6206 0600 |004e: sget-object v6, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006 +0031ac: 4606 0603 |0050: aget-object v6, v6, v3 +0031b0: 6e10 f000 0600 |0052: invoke-virtual {v6}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@00f0 +0031b6: 0a06 |0055: move-result v6 +0031b8: 3806 0d00 |0056: if-eqz v6, 0063 // +000d +0031bc: d804 0401 |0058: add-int/lit8 v4, v4, #int 1 // #01 +0031c0: 6206 0600 |005a: sget-object v6, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006 +0031c4: 4606 0603 |005c: aget-object v6, v6, v3 +0031c8: 6e10 f000 0600 |005e: invoke-virtual {v6}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@00f0 +0031ce: 0a06 |0061: move-result v6 +0031d0: b065 |0062: add-int/2addr v5, v6 +0031d2: d803 0301 |0063: add-int/lit8 v3, v3, #int 1 // #01 +0031d6: 28df |0065: goto 0044 // -0021 +0031d8: 6203 1300 |0066: sget-object v3, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0031dc: 2206 2d00 |0068: new-instance v6, Ljava/lang/StringBuilder; // type@002d +0031e0: 7010 c100 0600 |006a: invoke-direct {v6}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +0031e6: 1a07 b800 |006d: const-string v7, "Winners " // string@00b8 +0031ea: 6e20 c800 7600 |006f: invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +0031f0: 6e20 c500 4600 |0072: invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 +0031f6: 1a07 0500 |0075: const-string v7, " Votes " // string@0005 +0031fa: 6e20 c800 7600 |0077: invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +003200: 6e20 c500 5600 |007a: invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 +003206: 6e10 ca00 0600 |007d: invoke-virtual {v6}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +00320c: 0c06 |0080: move-result-object v6 +00320e: 6e20 b300 6300 |0081: invoke-virtual {v3, v6}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003214: 1223 |0084: const/4 v3, #int 2 // #2 +003216: 1216 |0085: const/4 v6, #int 1 // #1 +003218: 3264 2c00 |0086: if-eq v4, v6, 00b2 // +002c +00321c: 6207 1300 |0088: sget-object v7, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003220: 1a08 9e00 |008a: const-string v8, "Threads did not the same call-sites:" // string@009e +003224: 6e20 b300 8700 |008c: invoke-virtual {v7, v8}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +00322a: 0107 |008f: move v7, v0 +00322c: 3527 2200 |0090: if-ge v7, v2, 00b2 // +0022 +003230: 6208 1300 |0092: sget-object v8, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003234: 1a09 0400 |0094: const-string v9, " Thread % 2d invoked call site instance #%02d +" // string@0004 +003238: 233a 4800 |0096: new-array v10, v3, [Ljava/lang/Object; // type@0048 +00323c: 7110 bd00 0700 |0098: invoke-static {v7}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd +003242: 0c0b |009b: move-result-object v11 +003244: 4d0b 0a00 |009c: aput-object v11, v10, v0 +003248: 620b 0900 |009e: sget-object v11, LTestInvokeCustomWithConcurrentThreads;.targetted:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0009 +00324c: 460b 0b07 |00a0: aget-object v11, v11, v7 +003250: 6e10 f000 0b00 |00a2: invoke-virtual {v11}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@00f0 +003256: 0a0b |00a5: move-result v11 +003258: 7110 bd00 0b00 |00a6: invoke-static {v11}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd +00325e: 0c0b |00a9: move-result-object v11 +003260: 4d0b 0a06 |00aa: aput-object v11, v10, v6 +003264: 6e30 ab00 980a |00ac: invoke-virtual {v8, v9, v10}, Ljava/io/PrintStream;.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; // method@00ab +00326a: d807 0701 |00af: add-int/lit8 v7, v7, #int 1 // #01 +00326e: 28df |00b1: goto 0090 // -0021 +003270: 3225 2c00 |00b2: if-eq v5, v2, 00de // +002c +003274: 6207 1300 |00b4: sget-object v7, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003278: 1a08 2000 |00b6: const-string v8, "Call-sites invocations :" // string@0020 +00327c: 6e20 b300 8700 |00b8: invoke-virtual {v7, v8}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003282: 0107 |00bb: move v7, v0 +003284: 3527 2200 |00bc: if-ge v7, v2, 00de // +0022 +003288: 6208 1300 |00be: sget-object v8, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00328c: 1a09 0300 |00c0: const-string v9, " Call site instance #%02d was invoked % 2d times +" // string@0003 +003290: 233a 4800 |00c2: new-array v10, v3, [Ljava/lang/Object; // type@0048 +003294: 7110 bd00 0700 |00c4: invoke-static {v7}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd +00329a: 0c0b |00c7: move-result-object v11 +00329c: 4d0b 0a00 |00c8: aput-object v11, v10, v0 +0032a0: 620b 0600 |00ca: sget-object v11, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006 +0032a4: 460b 0b07 |00cc: aget-object v11, v11, v7 +0032a8: 6e10 f000 0b00 |00ce: invoke-virtual {v11}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@00f0 +0032ae: 0a0b |00d1: move-result v11 +0032b0: 7110 bd00 0b00 |00d2: invoke-static {v11}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd +0032b6: 0c0b |00d5: move-result-object v11 +0032b8: 4d0b 0a06 |00d6: aput-object v11, v10, v6 +0032bc: 6e30 ab00 980a |00d8: invoke-virtual {v8, v9, v10}, Ljava/io/PrintStream;.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; // method@00ab +0032c2: d807 0701 |00db: add-int/lit8 v7, v7, #int 1 // #01 +0032c6: 28df |00dd: goto 00bc // -0021 +0032c8: 7120 6600 6400 |00de: invoke-static {v4, v6}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(II)V // method@0066 +0032ce: 7120 6600 2500 |00e1: invoke-static {v5, v2}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(II)V // method@0066 +0032d4: 0e00 |00e4: return-void catches : (none) positions : + 0x0000 line=107 + 0x0006 line=108 + 0x000f line=109 + 0x0018 line=107 + 0x001b line=113 + 0x001d line=114 + 0x0020 line=115 + 0x002c line=116 + 0x0031 line=114 + 0x0034 line=120 + 0x0037 line=121 + 0x003c line=120 + 0x003f line=125 + 0x0040 line=126 + 0x0041 line=127 + 0x0046 line=128 + 0x004e line=129 + 0x0058 line=130 + 0x005a line=131 + 0x0063 line=127 + 0x0066 line=135 + 0x0084 line=139 + 0x0088 line=140 + 0x008f line=141 + 0x0092 line=142 + 0x0098 line=143 + 0x00ac line=142 + 0x00af line=141 + 0x00b2 line=149 + 0x00b4 line=150 + 0x00bb line=151 + 0x00be line=152 + 0x00c4 line=153 + 0x00d8 line=152 + 0x00db line=151 + 0x00de line=157 + 0x00e1 line=158 + 0x00e4 line=159 locals : + 0x0002 - 0x001b reg=1 i I + 0x001e - 0x0034 reg=3 i I + 0x0035 - 0x003f reg=3 i I + 0x0040 - 0x0044 reg=3 winners I + 0x0041 - 0x0044 reg=4 votes I + 0x0044 - 0x0066 reg=3 i I + 0x0090 - 0x00b2 reg=7 i I + 0x00bc - 0x00de reg=7 i I + 0x001d - 0x00e5 reg=1 threads [Ljava/lang/Thread; + 0x0044 - 0x00e5 reg=4 winners I + 0x0044 - 0x00e5 reg=5 votes I Virtual methods - - #0 : (in Linvokecustom/InvokeCustom;) - name : 'helperMethodTest9' + #0 : (in LTestInvokeCustomWithConcurrentThreads;) + name : 'run' type : '()V' access : 0x0001 (PUBLIC) code - - registers : 4 + registers : 2 ins : 1 + outs : 1 + insns size : 9 16-bit code units +0030d8: |[0030d8] TestInvokeCustomWithConcurrentThreads.run:()V +0030e8: 12f0 |0000: const/4 v0, #int -1 // #ff +0030ea: fc10 1a00 0000 |0001: invoke-custom {v0}, call_site@001a +0030f0: 0a00 |0004: move-result v0 +0030f2: 7110 6b00 0000 |0005: invoke-static {v0}, LTestInvokeCustomWithConcurrentThreads;.notUsed:(I)I // method@006b +0030f8: 0e00 |0008: return-void + catches : (none) + positions : + 0x0000 line=63 + 0x0005 line=64 + 0x0008 line=65 + locals : + 0x0005 - 0x0009 reg=0 x I + 0x0000 - 0x0009 reg=1 this LTestInvokeCustomWithConcurrentThreads; + + source_file_idx : 149 (TestInvokeCustomWithConcurrentThreads.java) + +Class #10 header: +class_idx : 15 +access_flags : 1 (0x0001) +superclass_idx : 9 +interfaces_off : 0 (0x000000) +source_file_idx : 151 +annotations_off : 31180 (0x0079cc) +class_data_off : 29403 (0x0072db) +static_fields_size : 5 +instance_fields_size: 0 +direct_methods_size : 6 +virtual_methods_size: 0 + +Class #10 annotations: +Annotations on method #114 'add' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestLinkerMethodMinimalArguments; name="linkerMethod" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; } } fieldOrMethodName="_add" parameterTypes={ I I } returnType=I +Annotations on method #118 'linkerMethod' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #119 'test' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } + +Class #10 - + Class descriptor : 'LTestLinkerMethodMinimalArguments;' + Access flags : 0x0001 (PUBLIC) + Superclass : 'LTestBase;' + Interfaces - + Static fields - + #0 : (in LTestLinkerMethodMinimalArguments;) + name : 'FAILURE_TYPE_LINKER_METHOD_RETURNS_NULL' + type : 'I' + access : 0x0018 (STATIC FINAL) + value : 1 + #1 : (in LTestLinkerMethodMinimalArguments;) + name : 'FAILURE_TYPE_LINKER_METHOD_THROWS' + type : 'I' + access : 0x0018 (STATIC FINAL) + value : 2 + #2 : (in LTestLinkerMethodMinimalArguments;) + name : 'FAILURE_TYPE_NONE' + type : 'I' + access : 0x0018 (STATIC FINAL) + value : 0 + #3 : (in LTestLinkerMethodMinimalArguments;) + name : 'FAILURE_TYPE_TARGET_METHOD_THROWS' + type : 'I' + access : 0x0018 (STATIC FINAL) + value : 3 + #4 : (in LTestLinkerMethodMinimalArguments;) + name : 'forceFailureType' + type : 'I' + access : 0x000a (PRIVATE STATIC) + Instance fields - + Direct methods - + #0 : (in LTestLinkerMethodMinimalArguments;) + name : '<clinit>' + type : '()V' + access : 0x10008 (STATIC CONSTRUCTOR) + code - + registers : 1 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +003404: |[003404] TestLinkerMethodMinimalArguments.<clinit>:()V +003414: 1200 |0000: const/4 v0, #int 0 // #0 +003416: 6700 0f00 |0001: sput v0, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f +00341a: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=26 + locals : + + #1 : (in LTestLinkerMethodMinimalArguments;) + name : '<init>' + type : '()V' + access : 0x10001 (PUBLIC CONSTRUCTOR) + code - + registers : 1 + ins : 1 + outs : 1 + insns size : 4 16-bit code units +00341c: |[00341c] TestLinkerMethodMinimalArguments.<init>:()V +00342c: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032 +003432: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=25 + locals : + 0x0000 - 0x0004 reg=0 this LTestLinkerMethodMinimalArguments; + + #2 : (in LTestLinkerMethodMinimalArguments;) + name : '_add' + type : '(II)I' + access : 0x0008 (STATIC) + code - + registers : 4 + ins : 2 outs : 2 - insns size : 27 16-bit code units -00148c: |[00148c] invokecustom.InvokeCustom.helperMethodTest9:()V -00149c: 6200 0200 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -0014a0: 2201 1000 |0002: new-instance v1, Ljava/lang/StringBuilder; // type@0010 -0014a4: 7010 3000 0100 |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@0030 -0014aa: 1a02 7300 |0007: const-string v2, "helperMethodTest9 in " // string@0073 -0014ae: 6e20 3600 2100 |0009: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@0036 -0014b4: 0c01 |000c: move-result-object v1 -0014b6: 1c02 0700 |000d: const-class v2, Linvokecustom/InvokeCustom; // type@0007 -0014ba: 6e20 3500 2100 |000f: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@0035 -0014c0: 0c01 |0012: move-result-object v1 -0014c2: 6e10 3700 0100 |0013: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@0037 -0014c8: 0c01 |0016: move-result-object v1 -0014ca: 6e20 2900 1000 |0017: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -0014d0: 0e00 |001a: return-void - catches : (none) - positions : - 0x0000 line=129 - 0x001a line=130 - locals : - 0x0000 - 0x001b reg=3 this Linvokecustom/InvokeCustom; - - #1 : (in Linvokecustom/InvokeCustom;) - name : 'run' + insns size : 23 16-bit code units +0032d8: |[0032d8] TestLinkerMethodMinimalArguments._add:(II)I +0032e8: 6000 0f00 |0000: sget v0, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f +0032ec: 1231 |0002: const/4 v1, #int 3 // #3 +0032ee: 3210 0500 |0003: if-eq v0, v1, 0008 // +0005 +0032f2: 9000 0203 |0005: add-int v0, v2, v3 +0032f6: 0f00 |0007: return v0 +0032f8: 6200 1300 |0008: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0032fc: 1a01 a000 |000a: const-string v1, "Throwing ArithmeticException in add()" // string@00a0 +003300: 6e20 b300 1000 |000c: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003306: 2200 1d00 |000f: new-instance v0, Ljava/lang/ArithmeticException; // type@001d +00330a: 1a01 cc00 |0011: const-string v1, "add" // string@00cc +00330e: 7020 b400 1000 |0013: invoke-direct {v0, v1}, Ljava/lang/ArithmeticException;.<init>:(Ljava/lang/String;)V // method@00b4 +003314: 2700 |0016: throw v0 + catches : (none) + positions : + 0x0000 line=51 + 0x0005 line=55 + 0x0008 line=52 + 0x000f line=53 + locals : + 0x0000 - 0x0017 reg=2 a I + 0x0000 - 0x0017 reg=3 b I + + #3 : (in LTestLinkerMethodMinimalArguments;) + name : 'add' + type : '(II)I' + access : 0x000a (PRIVATE STATIC) + code - + registers : 3 + ins : 2 + outs : 0 + insns size : 5 16-bit code units +003318: |[003318] TestLinkerMethodMinimalArguments.add:(II)I +003328: 7100 7400 0000 |0000: invoke-static {}, LTestLinkerMethodMinimalArguments;.assertNotReached:()V // method@0074 +00332e: 12f0 |0003: const/4 v0, #int -1 // #ff +003330: 0f00 |0004: return v0 + catches : (none) + positions : + 0x0000 line=45 + 0x0003 line=46 + locals : + 0x0000 - 0x0005 reg=1 a I + 0x0000 - 0x0005 reg=2 b I + + #4 : (in LTestLinkerMethodMinimalArguments;) + name : 'linkerMethod' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;' + access : 0x000a (PRIVATE STATIC) + code - + registers : 7 + ins : 3 + outs : 4 + insns size : 96 16-bit code units +003334: |[003334] TestLinkerMethodMinimalArguments.linkerMethod:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; +003344: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003348: 2201 2d00 |0002: new-instance v1, Ljava/lang/StringBuilder; // type@002d +00334c: 7010 c100 0100 |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +003352: 1a02 6701 |0007: const-string v2, "linkerMethod failure type " // string@0167 +003356: 6e20 c800 2100 |0009: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +00335c: 6002 0f00 |000c: sget v2, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f +003360: 6e20 c500 2100 |000e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 +003366: 6e10 ca00 0100 |0011: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +00336c: 0c01 |0014: move-result-object v1 +00336e: 6e20 b300 1000 |0015: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003374: 1c00 0f00 |0018: const-class v0, LTestLinkerMethodMinimalArguments; // type@000f +003378: 6e40 d800 0465 |001a: invoke-virtual {v4, v0, v5, v6}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +00337e: 0c00 |001d: move-result-object v0 +003380: 6001 0f00 |001e: sget v1, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f +003384: 2b01 3800 0000 |0020: packed-switch v1, 00000058 // +00000038 +00338a: 2201 3400 |0023: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +00338e: 7020 d200 0100 |0025: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +003394: 1101 |0028: return-object v1 +003396: 6201 1300 |0029: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00339a: 1a02 a100 |002b: const-string v2, "Throwing InstantiationException in linkerMethod()" // string@00a1 +00339e: 6e20 b300 2100 |002d: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +0033a4: 2201 2600 |0030: new-instance v1, Ljava/lang/InstantiationException; // type@0026 +0033a8: 1a02 6601 |0032: const-string v2, "linkerMethod" // string@0166 +0033ac: 7020 bb00 2100 |0034: invoke-direct {v1, v2}, Ljava/lang/InstantiationException;.<init>:(Ljava/lang/String;)V // method@00bb +0033b2: 2701 |0037: throw v1 +0033b4: 6201 1300 |0038: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +0033b8: 2202 2d00 |003a: new-instance v2, Ljava/lang/StringBuilder; // type@002d +0033bc: 7010 c100 0200 |003c: invoke-direct {v2}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +0033c2: 1a03 8c00 |003f: const-string v3, "Returning null instead of CallSite for " // string@008c +0033c6: 6e20 c800 3200 |0041: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +0033cc: 6e20 c800 5200 |0044: invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +0033d2: 1a03 0000 |0047: const-string v3, " " // string@0000 +0033d6: 6e20 c800 3200 |0049: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +0033dc: 6e20 c700 6200 |004c: invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7 +0033e2: 6e10 ca00 0200 |004f: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +0033e8: 0c02 |0052: move-result-object v2 +0033ea: 6e20 b300 2100 |0053: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +0033f0: 1201 |0056: const/4 v1, #int 0 // #0 +0033f2: 1101 |0057: return-object v1 +0033f4: 0001 0200 0100 0000 1800 0000 0900 ... |0058: packed-switch-data (8 units) + catches : (none) + positions : + 0x0000 line=61 + 0x0018 line=62 + 0x001a line=63 + 0x001e line=64 + 0x0023 line=73 + 0x0029 line=70 + 0x0030 line=71 + 0x0038 line=66 + 0x0056 line=68 + locals : + 0x001e - 0x0060 reg=0 mh_add Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0060 reg=4 caller Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0060 reg=5 name Ljava/lang/String; + 0x0000 - 0x0060 reg=6 methodType Ljava/lang/invoke/MethodType; + + #5 : (in LTestLinkerMethodMinimalArguments;) + name : 'test' + type : '(III)V' + access : 0x0009 (PUBLIC STATIC) + code - + registers : 6 + ins : 3 + outs : 2 + insns size : 68 16-bit code units +003434: |[003434] TestLinkerMethodMinimalArguments.test:(III)V +003444: 1200 |0000: const/4 v0, #int 0 // #0 +003446: 1211 |0001: const/4 v1, #int 1 // #1 +003448: 3a03 0400 |0002: if-ltz v3, 0006 // +0004 +00344c: 0112 |0004: move v2, v1 +00344e: 2802 |0005: goto 0007 // +0002 +003450: 0102 |0006: move v2, v0 +003452: 7110 7500 0200 |0007: invoke-static {v2}, LTestLinkerMethodMinimalArguments;.assertTrue:(Z)V // method@0075 +003458: 1232 |000a: const/4 v2, #int 3 // #3 +00345a: 3623 0400 |000b: if-gt v3, v2, 000f // +0004 +00345e: 0110 |000d: move v0, v1 +003460: 0000 |000e: nop // spacer +003462: 7110 7500 0000 |000f: invoke-static {v0}, LTestLinkerMethodMinimalArguments;.assertTrue:(Z)V // method@0075 +003468: 6703 0f00 |0012: sput v3, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f +00346c: 9000 0405 |0014: add-int v0, v4, v5 +003470: fc20 1b00 5400 |0016: invoke-custom {v4, v5}, call_site@001b +003476: 0a01 |0019: move-result v1 +003478: 7120 7300 1000 |001a: invoke-static {v0, v1}, LTestLinkerMethodMinimalArguments;.assertEquals:(II)V // method@0073 +00347e: 6200 1300 |001d: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003482: 2201 2d00 |001f: new-instance v1, Ljava/lang/StringBuilder; // type@002d +003486: 7010 c100 0100 |0021: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +00348c: 1a02 2a00 |0024: const-string v2, "Failure Type + " // string@002a +003490: 6e20 c800 2100 |0026: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +003496: 6e20 c500 3100 |0029: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 +00349c: 1a02 0100 |002c: const-string v2, " (" // string@0001 +0034a0: 6e20 c800 2100 |002e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +0034a6: 6e20 c500 4100 |0031: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 +0034ac: 6e20 c500 5100 |0034: invoke-virtual {v1, v5}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5 +0034b2: 1a02 0700 |0037: const-string v2, ")" // string@0007 +0034b6: 6e20 c800 2100 |0039: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +0034bc: 6e10 ca00 0100 |003c: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +0034c2: 0c01 |003f: move-result-object v1 +0034c4: 6e20 b300 1000 |0040: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +0034ca: 0e00 |0043: return-void + catches : (none) + positions : + 0x0000 line=78 + 0x000a line=79 + 0x0012 line=80 + 0x0014 line=81 + 0x001d line=82 + 0x0043 line=83 + locals : + 0x0000 - 0x0044 reg=3 failureType I + 0x0000 - 0x0044 reg=4 x I + 0x0000 - 0x0044 reg=5 y I + + Virtual methods - + source_file_idx : 151 (TestLinkerMethodMinimalArguments.java) + +Class #11 header: +class_idx : 16 +access_flags : 1 (0x0001) +superclass_idx : 9 +interfaces_off : 0 (0x000000) +source_file_idx : 153 +annotations_off : 31220 (0x0079f4) +class_data_off : 29445 (0x007305) +static_fields_size : 1 +instance_fields_size: 0 +direct_methods_size : 6 +virtual_methods_size: 1 + +Class #11 annotations: +Annotations on method #124 'add' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestLinkerMethodMultipleArgumentTypes; name="linkerMethod" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I I I I I F D Ljava/lang/String; Ljava/lang/Class; J } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ -1 } Lannotations/Constant; intValue={ 1 } Lannotations/Constant; intValue={ 97 } Lannotations/Constant; intValue={ 1024 } Lannotations/Constant; intValue={ 1 } Lannotations/Constant; floatValue={ 11.1 } Lannotations/Constant; doubleValue={ 2.2 } Lannotations/Constant; stringValue={ "Hello" } Lannotations/Constant; classValue={ LTestLinkerMethodMultipleArgumentTypes; } Lannotations/Constant; longValue={ 123456789 } } fieldOrMethodName="_add" parameterTypes={ I I } returnType=I +Annotations on method #131 'linkerMethod' + VISIBILITY_SYSTEM Ldalvik/annotation/Signature; value={ "(" "Ljava/lang/invoke/MethodHandles$Lookup;" "Ljava/lang/String;" "Ljava/lang/invoke/MethodType;" "IIIIIFD" "Ljava/lang/String;" "Ljava/lang/Class<" "*>;J)" "Ljava/lang/invoke/CallSite;" } + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #132 'test' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } + +Class #11 - + Class descriptor : 'LTestLinkerMethodMultipleArgumentTypes;' + Access flags : 0x0001 (PUBLIC) + Superclass : 'LTestBase;' + Interfaces - + Static fields - + #0 : (in LTestLinkerMethodMultipleArgumentTypes;) + name : 'bootstrapRunCount' + type : 'I' + access : 0x000a (PRIVATE STATIC) + Instance fields - + Direct methods - + #0 : (in LTestLinkerMethodMultipleArgumentTypes;) + name : '<clinit>' + type : '()V' + access : 0x10008 (STATIC CONSTRUCTOR) + code - + registers : 1 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +003618: |[003618] TestLinkerMethodMultipleArgumentTypes.<clinit>:()V +003628: 1200 |0000: const/4 v0, #int 0 // #0 +00362a: 6700 1000 |0001: sput v0, LTestLinkerMethodMultipleArgumentTypes;.bootstrapRunCount:I // field@0010 +00362e: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=28 + locals : + + #1 : (in LTestLinkerMethodMultipleArgumentTypes;) + name : '<init>' type : '()V' + access : 0x10001 (PUBLIC CONSTRUCTOR) + code - + registers : 1 + ins : 1 + outs : 1 + insns size : 4 16-bit code units +003630: |[003630] TestLinkerMethodMultipleArgumentTypes.<init>:()V +003640: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032 +003646: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=26 + locals : + 0x0000 - 0x0004 reg=0 this LTestLinkerMethodMultipleArgumentTypes; + + #2 : (in LTestLinkerMethodMultipleArgumentTypes;) + name : '_add' + type : '(II)I' + access : 0x000a (PRIVATE STATIC) + code - + registers : 3 + ins : 2 + outs : 0 + insns size : 3 16-bit code units +0034e4: |[0034e4] TestLinkerMethodMultipleArgumentTypes._add:(II)I +0034f4: 9000 0102 |0000: add-int v0, v1, v2 +0034f8: 0f00 |0002: return v0 + catches : (none) + positions : + 0x0000 line=74 + locals : + 0x0000 - 0x0003 reg=1 a I + 0x0000 - 0x0003 reg=2 b I + + #3 : (in LTestLinkerMethodMultipleArgumentTypes;) + name : 'add' + type : '(II)I' + access : 0x000a (PRIVATE STATIC) + code - + registers : 3 + ins : 2 + outs : 0 + insns size : 5 16-bit code units +0034fc: |[0034fc] TestLinkerMethodMultipleArgumentTypes.add:(II)I +00350c: 7100 8200 0000 |0000: invoke-static {}, LTestLinkerMethodMultipleArgumentTypes;.assertNotReached:()V // method@0082 +003512: 12f0 |0003: const/4 v0, #int -1 // #ff +003514: 0f00 |0004: return v0 + catches : (none) + positions : + 0x0000 line=68 + 0x0003 line=69 + locals : + 0x0000 - 0x0005 reg=1 a I + 0x0000 - 0x0005 reg=2 b I + + #4 : (in LTestLinkerMethodMultipleArgumentTypes;) + name : 'linkerMethod' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IIIIIFDLjava/lang/String;Ljava/lang/Class;J)Ljava/lang/invoke/CallSite;' + access : 0x000a (PRIVATE STATIC) + code - + registers : 31 + ins : 15 + outs : 4 + insns size : 119 16-bit code units +003518: |[003518] TestLinkerMethodMultipleArgumentTypes.linkerMethod:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IIIIIFDLjava/lang/String;Ljava/lang/Class;J)Ljava/lang/invoke/CallSite; +003528: 0800 1100 |0000: move-object/from16 v0, v17 +00352c: 0801 1200 |0002: move-object/from16 v1, v18 +003530: 6202 1300 |0004: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003534: 2203 2d00 |0006: new-instance v3, Ljava/lang/StringBuilder; // type@002d +003538: 7010 c100 0300 |0008: invoke-direct {v3}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1 +00353e: 1a04 6100 |000b: const-string v4, "Linking " // string@0061 +003542: 6e20 c800 4300 |000d: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +003548: 6e20 c800 0300 |0010: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +00354e: 1a04 0000 |0013: const-string v4, " " // string@0000 +003552: 6e20 c800 4300 |0015: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8 +003558: 6e20 c700 1300 |0018: invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7 +00355e: 6e10 ca00 0300 |001b: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca +003564: 0c03 |001e: move-result-object v3 +003566: 6e20 b300 3200 |001f: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +00356c: 12f2 |0022: const/4 v2, #int -1 // #ff +00356e: 0203 1300 |0023: move/from16 v3, v19 +003572: 7120 7f00 3200 |0025: invoke-static {v2, v3}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f +003578: 1212 |0028: const/4 v2, #int 1 // #1 +00357a: 0204 1400 |0029: move/from16 v4, v20 +00357e: 7120 7f00 4200 |002b: invoke-static {v2, v4}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f +003584: 1305 6100 |002e: const/16 v5, #int 97 // #61 +003588: 0206 1500 |0030: move/from16 v6, v21 +00358c: 7120 7f00 6500 |0032: invoke-static {v5, v6}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f +003592: 1305 0004 |0035: const/16 v5, #int 1024 // #400 +003596: 0207 1600 |0037: move/from16 v7, v22 +00359a: 7120 7f00 7500 |0039: invoke-static {v5, v7}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f +0035a0: 0205 1700 |003c: move/from16 v5, v23 +0035a4: 7120 7f00 5200 |003e: invoke-static {v2, v5}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f +0035aa: 1402 9a99 3141 |0041: const v2, #float 11.1 // #4131999a +0035b0: 0208 1800 |0044: move/from16 v8, v24 +0035b4: 7120 7e00 8200 |0046: invoke-static {v2, v8}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(FF)V // method@007e +0035ba: 1809 9a99 9999 9999 0140 |0049: const-wide v9, #double 2.2 // #400199999999999a +0035c4: 050b 1900 |004e: move-wide/from16 v11, v25 +0035c8: 7140 7d00 a9cb |0050: invoke-static {v9, v10, v11, v12}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(DD)V // method@007d +0035ce: 1a02 2c00 |0053: const-string v2, "Hello" // string@002c +0035d2: 0809 1b00 |0055: move-object/from16 v9, v27 +0035d6: 7120 8100 9200 |0057: invoke-static {v2, v9}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0081 +0035dc: 1c02 1000 |005a: const-class v2, LTestLinkerMethodMultipleArgumentTypes; // type@0010 +0035e0: 080a 1c00 |005c: move-object/from16 v10, v28 +0035e4: 7120 8100 a200 |005e: invoke-static {v2, v10}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0081 +0035ea: 170d 15cd 5b07 |0061: const-wide/32 v13, #float 1.6536e-34 // #075bcd15 +0035f0: 0502 1d00 |0064: move-wide/from16 v2, v29 +0035f4: 7140 8000 ed32 |0066: invoke-static {v13, v14, v2, v3}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(JJ)V // method@0080 +0035fa: 1c0d 1000 |0069: const-class v13, LTestLinkerMethodMultipleArgumentTypes; // type@0010 +0035fe: 080e 1000 |006b: move-object/from16 v14, v16 +003602: 6e40 d800 de10 |006d: invoke-virtual {v14, v13, v0, v1}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +003608: 0c0d |0070: move-result-object v13 +00360a: 220f 3400 |0071: new-instance v15, Ljava/lang/invoke/ConstantCallSite; // type@0034 +00360e: 7020 d200 df00 |0073: invoke-direct {v15, v13}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +003614: 110f |0076: return-object v15 + catches : (none) + positions : + 0x0000 line=93 + 0x0022 line=94 + 0x0028 line=95 + 0x002e line=96 + 0x0035 line=97 + 0x003c line=98 + 0x0041 line=99 + 0x0049 line=100 + 0x0053 line=101 + 0x005a line=102 + 0x0061 line=103 + 0x0069 line=104 + 0x006b line=105 + 0x0071 line=106 + locals : + 0x0000 - 0x0000 reg=28 (null) Ljava/lang/Class; + 0x0071 - 0x0077 reg=13 mh_add Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0077 reg=16 caller Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0077 reg=17 name Ljava/lang/String; + 0x0000 - 0x0077 reg=18 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x0077 reg=19 v1 I + 0x0000 - 0x0077 reg=20 v2 I + 0x0000 - 0x0077 reg=21 v3 I + 0x0000 - 0x0077 reg=22 v4 I + 0x0000 - 0x0077 reg=23 v5 I + 0x0000 - 0x0077 reg=24 v6 F + 0x0000 - 0x0077 reg=25 v7 D + 0x0000 - 0x0077 reg=27 v8 Ljava/lang/String; + 0x0000 - 0x0077 reg=28 v9 Ljava/lang/Class; Ljava/lang/Class<*>; + 0x0000 - 0x0077 reg=29 v10 J + + #5 : (in LTestLinkerMethodMultipleArgumentTypes;) + name : 'test' + type : '(II)V' + access : 0x0009 (PUBLIC STATIC) + code - + registers : 4 + ins : 2 + outs : 2 + insns size : 17 16-bit code units +003648: |[003648] TestLinkerMethodMultipleArgumentTypes.test:(II)V +003658: 9000 0203 |0000: add-int v0, v2, v3 +00365c: fc20 1c00 3200 |0002: invoke-custom {v2, v3}, call_site@001c +003662: 0a01 |0005: move-result v1 +003664: 7120 7f00 1000 |0006: invoke-static {v0, v1}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f +00366a: 6200 1300 |0009: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +00366e: 9001 0203 |000b: add-int v1, v2, v3 +003672: 6e20 b100 1000 |000d: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(I)V // method@00b1 +003678: 0e00 |0010: return-void + catches : (none) + positions : + 0x0000 line=114 + 0x0009 line=115 + 0x0010 line=116 + locals : + 0x0000 - 0x0011 reg=2 x I + 0x0000 - 0x0011 reg=3 y I + + Virtual methods - + #0 : (in LTestLinkerMethodMultipleArgumentTypes;) + name : 'GetBootstrapRunCount' + type : '()I' access : 0x0001 (PUBLIC) code - + registers : 2 + ins : 1 + outs : 0 + insns size : 3 16-bit code units +0034cc: |[0034cc] TestLinkerMethodMultipleArgumentTypes.GetBootstrapRunCount:()I +0034dc: 6000 1000 |0000: sget v0, LTestLinkerMethodMultipleArgumentTypes;.bootstrapRunCount:I // field@0010 +0034e0: 0f00 |0002: return v0 + catches : (none) + positions : + 0x0000 line=110 + locals : + 0x0000 - 0x0003 reg=1 this LTestLinkerMethodMultipleArgumentTypes; + + source_file_idx : 153 (TestLinkerMethodMultipleArgumentTypes.java) + +Class #12 header: +class_idx : 17 +access_flags : 0 (0x0000) +superclass_idx : 9 +interfaces_off : 0 (0x000000) +source_file_idx : 154 +annotations_off : 31260 (0x007a1c) +class_data_off : 29483 (0x00732b) +static_fields_size : 0 +instance_fields_size: 0 +direct_methods_size : 6 +virtual_methods_size: 0 + +Class #12 annotations: +Annotations on method #136 'addf' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LUnrelatedBSM; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Ljava/lang/Class; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; classValue={ LTestLinkerUnrelatedBSM; } } fieldOrMethodName="_addf" parameterTypes={ F F } returnType=F +Annotations on method #139 'subf' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LUnrelatedBSM; name="bsm" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Ljava/lang/Class; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; classValue={ LTestLinkerUnrelatedBSM; } } fieldOrMethodName="_subf" parameterTypes={ F F } returnType=F + +Class #12 - + Class descriptor : 'LTestLinkerUnrelatedBSM;' + Access flags : 0x0000 () + Superclass : 'LTestBase;' + Interfaces - + Static fields - + Instance fields - + Direct methods - + #0 : (in LTestLinkerUnrelatedBSM;) + name : '<init>' + type : '()V' + access : 0x10000 (CONSTRUCTOR) + code - + registers : 1 + ins : 1 + outs : 1 + insns size : 4 16-bit code units +0036e4: |[0036e4] TestLinkerUnrelatedBSM.<init>:()V +0036f4: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032 +0036fa: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=23 + locals : + 0x0000 - 0x0004 reg=0 this LTestLinkerUnrelatedBSM; + + #1 : (in LTestLinkerUnrelatedBSM;) + name : '_addf' + type : '(FF)F' + access : 0x0009 (PUBLIC STATIC) + code - + registers : 3 + ins : 2 + outs : 0 + insns size : 3 16-bit code units +00367c: |[00367c] TestLinkerUnrelatedBSM._addf:(FF)F +00368c: a600 0102 |0000: add-float v0, v1, v2 +003690: 0f00 |0002: return v0 + catches : (none) + positions : + 0x0000 line=47 + locals : + 0x0000 - 0x0003 reg=1 a F + 0x0000 - 0x0003 reg=2 b F + + #2 : (in LTestLinkerUnrelatedBSM;) + name : '_subf' + type : '(FF)F' + access : 0x000a (PRIVATE STATIC) + code - + registers : 3 + ins : 2 + outs : 0 + insns size : 3 16-bit code units +003694: |[003694] TestLinkerUnrelatedBSM._subf:(FF)F +0036a4: a700 0102 |0000: sub-float v0, v1, v2 +0036a8: 0f00 |0002: return v0 + catches : (none) + positions : + 0x0000 line=73 + locals : + 0x0000 - 0x0003 reg=1 a F + 0x0000 - 0x0003 reg=2 b F + + #3 : (in LTestLinkerUnrelatedBSM;) + name : 'addf' + type : '(FF)F' + access : 0x000a (PRIVATE STATIC) + code - registers : 3 + ins : 2 + outs : 0 + insns size : 5 16-bit code units +0036ac: |[0036ac] TestLinkerUnrelatedBSM.addf:(FF)F +0036bc: 7100 8a00 0000 |0000: invoke-static {}, LTestLinkerUnrelatedBSM;.assertNotReached:()V // method@008a +0036c2: 1210 |0003: const/4 v0, #int 1 // #1 +0036c4: 0f00 |0004: return v0 + catches : (none) + positions : + 0x0000 line=42 + 0x0003 line=43 + locals : + 0x0000 - 0x0005 reg=1 a F + 0x0000 - 0x0005 reg=2 b F + + #4 : (in LTestLinkerUnrelatedBSM;) + name : 'subf' + type : '(FF)F' + access : 0x000a (PRIVATE STATIC) + code - + registers : 3 + ins : 2 + outs : 0 + insns size : 5 16-bit code units +0036c8: |[0036c8] TestLinkerUnrelatedBSM.subf:(FF)F +0036d8: 7100 8a00 0000 |0000: invoke-static {}, LTestLinkerUnrelatedBSM;.assertNotReached:()V // method@008a +0036de: 1210 |0003: const/4 v0, #int 1 // #1 +0036e0: 0f00 |0004: return v0 + catches : (none) + positions : + 0x0000 line=68 + 0x0003 line=69 + locals : + 0x0000 - 0x0005 reg=1 a F + 0x0000 - 0x0005 reg=2 b F + + #5 : (in LTestLinkerUnrelatedBSM;) + name : 'test' + type : '()V' + access : 0x0009 (PUBLIC STATIC) + code - + registers : 4 + ins : 0 + outs : 2 + insns size : 34 16-bit code units +0036fc: |[0036fc] TestLinkerUnrelatedBSM.test:()V +00370c: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003710: 1c01 1100 |0002: const-class v1, LTestLinkerUnrelatedBSM; // type@0011 +003714: 6e10 b700 0100 |0004: invoke-virtual {v1}, Ljava/lang/Class;.getName:()Ljava/lang/String; // method@00b7 +00371a: 0c01 |0007: move-result-object v1 +00371c: 6e20 b300 1000 |0008: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003722: 1500 003f |000b: const/high16 v0, #int 1056964608 // #3f00 +003726: 1501 0040 |000d: const/high16 v1, #int 1073741824 // #4000 +00372a: fc20 1d00 0100 |000f: invoke-custom {v1, v0}, call_site@001d +003730: 0a02 |0012: move-result v2 +003732: 1503 2040 |0013: const/high16 v3, #int 1075838976 // #4020 +003736: 7120 8900 2300 |0015: invoke-static {v3, v2}, LTestLinkerUnrelatedBSM;.assertEquals:(FF)V // method@0089 +00373c: fc20 1e00 0100 |0018: invoke-custom {v1, v0}, call_site@001e +003742: 0a00 |001b: move-result v0 +003744: 1501 c03f |001c: const/high16 v1, #int 1069547520 // #3fc0 +003748: 7120 8900 0100 |001e: invoke-static {v1, v0}, LTestLinkerUnrelatedBSM;.assertEquals:(FF)V // method@0089 +00374e: 0e00 |0021: return-void + catches : (none) + positions : + 0x0000 line=77 + 0x000b line=78 + 0x0018 line=79 + 0x0021 line=80 + locals : + + Virtual methods - + source_file_idx : 154 (TestLinkerUnrelatedBSM.java) + +Class #13 header: +class_idx : 18 +access_flags : 1 (0x0001) +superclass_idx : 9 +interfaces_off : 0 (0x000000) +source_file_idx : 156 +annotations_off : 31292 (0x007a3c) +class_data_off : 29514 (0x00734a) +static_fields_size : 0 +instance_fields_size: 0 +direct_methods_size : 27 +virtual_methods_size: 0 + +Class #13 annotations: +Annotations on method #143 'bsmWithBoxedArray' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #144 'bsmWithClassAndFloatArray' + VISIBILITY_SYSTEM Ldalvik/annotation/Signature; value={ "(" "Ljava/lang/invoke/MethodHandles$Lookup;" "Ljava/lang/String;" "Ljava/lang/invoke/MethodType;" "Ljava/lang/Class<" "*>;[F)" "Ljava/lang/invoke/CallSite;" } + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #145 'bsmWithClassArray' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #146 'bsmWithDoubleArray' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #147 'bsmWithFloatAndLongArray' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #148 'bsmWithIntAndStringArray' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #149 'bsmWithLongAndIntArray' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #150 'bsmWithStringArray' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #151 'bsmWithWiderArray' + VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; } +Annotations on method #152 'methodA' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; [Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; stringValue={ "Aachen" } Lannotations/Constant; stringValue={ "Aalborg" } Lannotations/Constant; stringValue={ "Aalto" } } fieldOrMethodName="methodA" +Annotations on method #153 'methodB' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; [Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; stringValue={ "barium" } } fieldOrMethodName="methodB" +Annotations on method #154 'methodC' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; [Ljava/lang/String; } } fieldOrMethodName="methodC" +Annotations on method #155 'methodD' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithIntAndStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I [Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 101 } Lannotations/Constant; stringValue={ "zoo" } Lannotations/Constant; stringValue={ "zoogene" } Lannotations/Constant; stringValue={ "zoogenic" } } fieldOrMethodName="methodD" +Annotations on method #156 'methodE' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithIntAndStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I [Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 102 } Lannotations/Constant; stringValue={ "zonic" } } fieldOrMethodName="methodE" +Annotations on method #157 'methodF' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithIntAndStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I [Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 103 } } fieldOrMethodName="methodF" +Annotations on method #158 'methodG' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithLongAndIntArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; J [I } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; longValue={ 81985529216486895 } Lannotations/Constant; intValue={ 1 } Lannotations/Constant; intValue={ -1 } Lannotations/Constant; intValue={ 2 } Lannotations/Constant; intValue={ -2 } } fieldOrMethodName="methodG" +Annotations on method #159 'methodH' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithFloatAndLongArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; F [J } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; floatValue={ -2.71828 } Lannotations/Constant; longValue={ 999999999999 } Lannotations/Constant; longValue={ -8888888888888 } } fieldOrMethodName="methodH" +Annotations on method #160 'methodI' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithClassAndFloatArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Ljava/lang/Class; [F } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; classValue={ Ljava/lang/Throwable; } Lannotations/Constant; floatValue={ 3.40282e+38 } Lannotations/Constant; floatValue={ 1.4013e-45 } Lannotations/Constant; floatValue={ 3.14159 } Lannotations/Constant; floatValue={ -3.14159 } } fieldOrMethodName="methodI" +Annotations on method #161 'methodJ' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithDoubleArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; [D } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; doubleValue={ 1.79769e+308 } Lannotations/Constant; doubleValue={ 4.94066e-324 } Lannotations/Constant; doubleValue={ 2.71828 } Lannotations/Constant; doubleValue={ -3.14159 } } fieldOrMethodName="methodJ" +Annotations on method #162 'methodK' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithClassArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; [Ljava/lang/Class; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; classValue={ Ljava/lang/Integer; } Lannotations/Constant; classValue={ Ljava/lang/invoke/MethodHandles; } Lannotations/Constant; classValue={ Ljava/util/Arrays; } } fieldOrMethodName="methodK" +Annotations on method #163 'methodO' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithIntAndStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I [Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 103 } Lannotations/Constant; intValue={ 104 } } fieldOrMethodName="methodO" +Annotations on method #164 'methodP' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithIntAndStringArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; I [Ljava/lang/String; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 103 } Lannotations/Constant; stringValue={ "A" } Lannotations/Constant; stringValue={ "B" } Lannotations/Constant; intValue={ 42 } } fieldOrMethodName="methodP" +Annotations on method #165 'methodQ' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithWiderArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; [J } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 103 } Lannotations/Constant; intValue={ 42 } } fieldOrMethodName="methodQ" +Annotations on method #166 'methodR' + VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestVariableArityLinkerMethod; name="bsmWithBoxedArray" parameterTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; [Ljava/lang/Integer; } } constantArgumentsForBootstrapMethod={ Lannotations/Constant; intValue={ 1030 } Lannotations/Constant; intValue={ 420 } } fieldOrMethodName="methodR" + +Class #13 - + Class descriptor : 'LTestVariableArityLinkerMethod;' + Access flags : 0x0001 (PUBLIC) + Superclass : 'LTestBase;' + Interfaces - + Static fields - + Instance fields - + Direct methods - + #0 : (in LTestVariableArityLinkerMethod;) + name : '<init>' + type : '()V' + access : 0x10001 (PUBLIC CONSTRUCTOR) + code - + registers : 1 ins : 1 + outs : 1 + insns size : 4 16-bit code units +003a7c: |[003a7c] TestVariableArityLinkerMethod.<init>:()V +003a8c: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032 +003a92: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=27 + locals : + 0x0000 - 0x0004 reg=0 this LTestVariableArityLinkerMethod; + + #1 : (in LTestVariableArityLinkerMethod;) + name : 'bsmWithBoxedArray' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Integer;)Ljava/lang/invoke/CallSite;' + access : 0x000a (PRIVATE STATIC) + code - + registers : 7 + ins : 4 + outs : 4 + insns size : 34 16-bit code units +003750: |[003750] TestVariableArityLinkerMethod.bsmWithBoxedArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Integer;)Ljava/lang/invoke/CallSite; +003760: 1a00 f800 |0000: const-string v0, "bsmWithBoxedArray" // string@00f8 +003764: 1241 |0002: const/4 v1, #int 4 // #4 +003766: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 +00376a: 1202 |0005: const/4 v2, #int 0 // #0 +00376c: 4d03 0102 |0006: aput-object v3, v1, v2 +003770: 1212 |0008: const/4 v2, #int 1 // #1 +003772: 4d04 0102 |0009: aput-object v4, v1, v2 +003776: 1222 |000b: const/4 v2, #int 2 // #2 +003778: 4d05 0102 |000c: aput-object v5, v1, v2 +00377c: 1232 |000e: const/4 v2, #int 3 // #3 +00377e: 4d06 0102 |000f: aput-object v6, v1, v2 +003782: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 +003788: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc +00378e: 0c00 |0017: move-result-object v0 +003790: 6e40 d800 0354 |0018: invoke-virtual {v3, v0, v4, v5}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +003796: 0c00 |001b: move-result-object v0 +003798: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +00379c: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +0037a2: 1101 |0021: return-object v1 + catches : (none) + positions : + 0x0000 line=477 + 0x0014 line=478 + 0x001c line=479 + locals : + 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String; + 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x0022 reg=6 extraArgs [Ljava/lang/Integer; + + #2 : (in LTestVariableArityLinkerMethod;) + name : 'bsmWithClassAndFloatArray' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;[F)Ljava/lang/invoke/CallSite;' + access : 0x008a (PRIVATE STATIC VARARGS) + code - + registers : 8 + ins : 5 + outs : 4 + insns size : 37 16-bit code units +0037a4: |[0037a4] TestVariableArityLinkerMethod.bsmWithClassAndFloatArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;[F)Ljava/lang/invoke/CallSite; +0037b4: 1a00 f900 |0000: const-string v0, "bsmWithClassAndFloatArray" // string@00f9 +0037b8: 1251 |0002: const/4 v1, #int 5 // #5 +0037ba: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 +0037be: 1202 |0005: const/4 v2, #int 0 // #0 +0037c0: 4d03 0102 |0006: aput-object v3, v1, v2 +0037c4: 1212 |0008: const/4 v2, #int 1 // #1 +0037c6: 4d04 0102 |0009: aput-object v4, v1, v2 +0037ca: 1222 |000b: const/4 v2, #int 2 // #2 +0037cc: 4d05 0102 |000c: aput-object v5, v1, v2 +0037d0: 1232 |000e: const/4 v2, #int 3 // #3 +0037d2: 4d06 0102 |000f: aput-object v6, v1, v2 +0037d6: 1242 |0011: const/4 v2, #int 4 // #4 +0037d8: 4d07 0102 |0012: aput-object v7, v1, v2 +0037dc: 7120 a700 1000 |0014: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 +0037e2: 6e10 dc00 0300 |0017: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc +0037e8: 0c00 |001a: move-result-object v0 +0037ea: 6e40 d800 0354 |001b: invoke-virtual {v3, v0, v4, v5}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +0037f0: 0c00 |001e: move-result-object v0 +0037f2: 2201 3400 |001f: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +0037f6: 7020 d200 0100 |0021: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +0037fc: 1101 |0024: return-object v1 + catches : (none) + positions : + 0x0000 line=294 + 0x0017 line=296 + 0x001f line=297 + locals : + 0x0000 - 0x0000 reg=6 (null) Ljava/lang/Class; + 0x001f - 0x0025 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0025 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0025 reg=4 methodName Ljava/lang/String; + 0x0000 - 0x0025 reg=5 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x0025 reg=6 extraArg Ljava/lang/Class; Ljava/lang/Class<*>; + 0x0000 - 0x0025 reg=7 arityArgs [F + + #3 : (in LTestVariableArityLinkerMethod;) + name : 'bsmWithClassArray' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Class;)Ljava/lang/invoke/CallSite;' + access : 0x008a (PRIVATE STATIC VARARGS) + code - + registers : 7 + ins : 4 + outs : 4 + insns size : 34 16-bit code units +003800: |[003800] TestVariableArityLinkerMethod.bsmWithClassArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Class;)Ljava/lang/invoke/CallSite; +003810: 1a00 fa00 |0000: const-string v0, "bsmWithClassArray" // string@00fa +003814: 1241 |0002: const/4 v1, #int 4 // #4 +003816: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 +00381a: 1202 |0005: const/4 v2, #int 0 // #0 +00381c: 4d03 0102 |0006: aput-object v3, v1, v2 +003820: 1212 |0008: const/4 v2, #int 1 // #1 +003822: 4d04 0102 |0009: aput-object v4, v1, v2 +003826: 1222 |000b: const/4 v2, #int 2 // #2 +003828: 4d05 0102 |000c: aput-object v5, v1, v2 +00382c: 1232 |000e: const/4 v2, #int 3 // #3 +00382e: 4d06 0102 |000f: aput-object v6, v1, v2 +003832: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 +003838: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc +00383e: 0c00 |0017: move-result-object v0 +003840: 6e40 d800 0354 |0018: invoke-virtual {v3, v0, v4, v5}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +003846: 0c00 |001b: move-result-object v0 +003848: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +00384c: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +003852: 1101 |0021: return-object v1 + catches : (none) + positions : + 0x0000 line=367 + 0x0014 line=368 + 0x001c line=369 + locals : + 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String; + 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x0022 reg=6 arityArgs [Ljava/lang/Class; + + #4 : (in LTestVariableArityLinkerMethod;) + name : 'bsmWithDoubleArray' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[D)Ljava/lang/invoke/CallSite;' + access : 0x008a (PRIVATE STATIC VARARGS) + code - + registers : 7 + ins : 4 + outs : 4 + insns size : 34 16-bit code units +003854: |[003854] TestVariableArityLinkerMethod.bsmWithDoubleArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[D)Ljava/lang/invoke/CallSite; +003864: 1a00 fb00 |0000: const-string v0, "bsmWithDoubleArray" // string@00fb +003868: 1241 |0002: const/4 v1, #int 4 // #4 +00386a: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 +00386e: 1202 |0005: const/4 v2, #int 0 // #0 +003870: 4d03 0102 |0006: aput-object v3, v1, v2 +003874: 1212 |0008: const/4 v2, #int 1 // #1 +003876: 4d04 0102 |0009: aput-object v4, v1, v2 +00387a: 1222 |000b: const/4 v2, #int 2 // #2 +00387c: 4d05 0102 |000c: aput-object v5, v1, v2 +003880: 1232 |000e: const/4 v2, #int 3 // #3 +003882: 4d06 0102 |000f: aput-object v6, v1, v2 +003886: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 +00388c: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc +003892: 0c00 |0017: move-result-object v0 +003894: 6e40 d800 0354 |0018: invoke-virtual {v3, v0, v4, v5}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +00389a: 0c00 |001b: move-result-object v0 +00389c: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +0038a0: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +0038a6: 1101 |0021: return-object v1 + catches : (none) + positions : + 0x0000 line=332 + 0x0014 line=333 + 0x001c line=334 + locals : + 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String; + 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x0022 reg=6 arityArgs [D + + #5 : (in LTestVariableArityLinkerMethod;) + name : 'bsmWithFloatAndLongArray' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;F[J)Ljava/lang/invoke/CallSite;' + access : 0x008a (PRIVATE STATIC VARARGS) + code - + registers : 9 + ins : 5 + outs : 4 + insns size : 41 16-bit code units +0038a8: |[0038a8] TestVariableArityLinkerMethod.bsmWithFloatAndLongArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;F[J)Ljava/lang/invoke/CallSite; +0038b8: 1a00 fc00 |0000: const-string v0, "bsmWithFloatAndLongArray" // string@00fc +0038bc: 1251 |0002: const/4 v1, #int 5 // #5 +0038be: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 +0038c2: 1202 |0005: const/4 v2, #int 0 // #0 +0038c4: 4d04 0102 |0006: aput-object v4, v1, v2 +0038c8: 1212 |0008: const/4 v2, #int 1 // #1 +0038ca: 4d05 0102 |0009: aput-object v5, v1, v2 +0038ce: 1222 |000b: const/4 v2, #int 2 // #2 +0038d0: 4d06 0102 |000c: aput-object v6, v1, v2 +0038d4: 7110 ba00 0700 |000e: invoke-static {v7}, Ljava/lang/Float;.valueOf:(F)Ljava/lang/Float; // method@00ba +0038da: 0c02 |0011: move-result-object v2 +0038dc: 1233 |0012: const/4 v3, #int 3 // #3 +0038de: 4d02 0103 |0013: aput-object v2, v1, v3 +0038e2: 1242 |0015: const/4 v2, #int 4 // #4 +0038e4: 4d08 0102 |0016: aput-object v8, v1, v2 +0038e8: 7120 a700 1000 |0018: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 +0038ee: 6e10 dc00 0400 |001b: invoke-virtual {v4}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc +0038f4: 0c00 |001e: move-result-object v0 +0038f6: 6e40 d800 0465 |001f: invoke-virtual {v4, v0, v5, v6}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +0038fc: 0c00 |0022: move-result-object v0 +0038fe: 2201 3400 |0023: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +003902: 7020 d200 0100 |0025: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +003908: 1101 |0028: return-object v1 + catches : (none) + positions : + 0x0000 line=257 + 0x000e line=258 + 0x0018 line=257 + 0x001b line=259 + 0x0023 line=260 + locals : + 0x0023 - 0x0029 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0029 reg=4 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0029 reg=5 methodName Ljava/lang/String; + 0x0000 - 0x0029 reg=6 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x0029 reg=7 extraArg F + 0x0000 - 0x0029 reg=8 arityArgs [J + + #6 : (in LTestVariableArityLinkerMethod;) + name : 'bsmWithIntAndStringArray' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I[Ljava/lang/String;)Ljava/lang/invoke/CallSite;' + access : 0x008a (PRIVATE STATIC VARARGS) + code - + registers : 9 + ins : 5 + outs : 4 + insns size : 41 16-bit code units +00390c: |[00390c] TestVariableArityLinkerMethod.bsmWithIntAndStringArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I[Ljava/lang/String;)Ljava/lang/invoke/CallSite; +00391c: 1a00 fd00 |0000: const-string v0, "bsmWithIntAndStringArray" // string@00fd +003920: 1251 |0002: const/4 v1, #int 5 // #5 +003922: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 +003926: 1202 |0005: const/4 v2, #int 0 // #0 +003928: 4d04 0102 |0006: aput-object v4, v1, v2 +00392c: 1212 |0008: const/4 v2, #int 1 // #1 +00392e: 4d05 0102 |0009: aput-object v5, v1, v2 +003932: 1222 |000b: const/4 v2, #int 2 // #2 +003934: 4d06 0102 |000c: aput-object v6, v1, v2 +003938: 7110 bd00 0700 |000e: invoke-static {v7}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd +00393e: 0c02 |0011: move-result-object v2 +003940: 1233 |0012: const/4 v3, #int 3 // #3 +003942: 4d02 0103 |0013: aput-object v2, v1, v3 +003946: 1242 |0015: const/4 v2, #int 4 // #4 +003948: 4d08 0102 |0016: aput-object v8, v1, v2 +00394c: 7120 a700 1000 |0018: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 +003952: 6e10 dc00 0400 |001b: invoke-virtual {v4}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc +003958: 0c00 |001e: move-result-object v0 +00395a: 6e40 d800 0465 |001f: invoke-virtual {v4, v0, v5, v6}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +003960: 0c00 |0022: move-result-object v0 +003962: 2201 3400 |0023: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +003966: 7020 d200 0100 |0025: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +00396c: 1101 |0028: return-object v1 + catches : (none) + positions : + 0x0000 line=133 + 0x000e line=138 + 0x0018 line=133 + 0x001b line=140 + 0x0023 line=141 + locals : + 0x0023 - 0x0029 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0029 reg=4 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0029 reg=5 methodName Ljava/lang/String; + 0x0000 - 0x0029 reg=6 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x0029 reg=7 extraInt I + 0x0000 - 0x0029 reg=8 extraArityArgs [Ljava/lang/String; + + #7 : (in LTestVariableArityLinkerMethod;) + name : 'bsmWithLongAndIntArray' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;J[I)Ljava/lang/invoke/CallSite;' + access : 0x008a (PRIVATE STATIC VARARGS) + code - + registers : 10 + ins : 6 + outs : 4 + insns size : 41 16-bit code units +003970: |[003970] TestVariableArityLinkerMethod.bsmWithLongAndIntArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;J[I)Ljava/lang/invoke/CallSite; +003980: 1a00 fe00 |0000: const-string v0, "bsmWithLongAndIntArray" // string@00fe +003984: 1251 |0002: const/4 v1, #int 5 // #5 +003986: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 +00398a: 1202 |0005: const/4 v2, #int 0 // #0 +00398c: 4d04 0102 |0006: aput-object v4, v1, v2 +003990: 1212 |0008: const/4 v2, #int 1 // #1 +003992: 4d05 0102 |0009: aput-object v5, v1, v2 +003996: 1222 |000b: const/4 v2, #int 2 // #2 +003998: 4d06 0102 |000c: aput-object v6, v1, v2 +00399c: 7120 be00 8700 |000e: invoke-static {v7, v8}, Ljava/lang/Long;.valueOf:(J)Ljava/lang/Long; // method@00be +0039a2: 0c02 |0011: move-result-object v2 +0039a4: 1233 |0012: const/4 v3, #int 3 // #3 +0039a6: 4d02 0103 |0013: aput-object v2, v1, v3 +0039aa: 1242 |0015: const/4 v2, #int 4 // #4 +0039ac: 4d09 0102 |0016: aput-object v9, v1, v2 +0039b0: 7120 a700 1000 |0018: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 +0039b6: 6e10 dc00 0400 |001b: invoke-virtual {v4}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc +0039bc: 0c00 |001e: move-result-object v0 +0039be: 6e40 d800 0465 |001f: invoke-virtual {v4, v0, v5, v6}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +0039c4: 0c00 |0022: move-result-object v0 +0039c6: 2201 3400 |0023: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +0039ca: 7020 d200 0100 |0025: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +0039d0: 1101 |0028: return-object v1 + catches : (none) + positions : + 0x0000 line=219 + 0x001b line=220 + 0x0023 line=221 + locals : + 0x0023 - 0x0029 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0029 reg=4 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0029 reg=5 methodName Ljava/lang/String; + 0x0000 - 0x0029 reg=6 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x0029 reg=7 extraArg J + 0x0000 - 0x0029 reg=9 arityArgs [I + + #8 : (in LTestVariableArityLinkerMethod;) + name : 'bsmWithStringArray' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/String;)Ljava/lang/invoke/CallSite;' + access : 0x008a (PRIVATE STATIC VARARGS) + code - + registers : 7 + ins : 4 + outs : 4 + insns size : 34 16-bit code units +0039d4: |[0039d4] TestVariableArityLinkerMethod.bsmWithStringArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/String;)Ljava/lang/invoke/CallSite; +0039e4: 1a00 ff00 |0000: const-string v0, "bsmWithStringArray" // string@00ff +0039e8: 1241 |0002: const/4 v1, #int 4 // #4 +0039ea: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 +0039ee: 1202 |0005: const/4 v2, #int 0 // #0 +0039f0: 4d03 0102 |0006: aput-object v3, v1, v2 +0039f4: 1212 |0008: const/4 v2, #int 1 // #1 +0039f6: 4d04 0102 |0009: aput-object v4, v1, v2 +0039fa: 1222 |000b: const/4 v2, #int 2 // #2 +0039fc: 4d05 0102 |000c: aput-object v5, v1, v2 +003a00: 1232 |000e: const/4 v2, #int 3 // #3 +003a02: 4d06 0102 |000f: aput-object v6, v1, v2 +003a06: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 +003a0c: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc +003a12: 0c00 |0017: move-result-object v0 +003a14: 6e40 d800 0354 |0018: invoke-virtual {v3, v0, v4, v5}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +003a1a: 0c00 |001b: move-result-object v0 +003a1c: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +003a20: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +003a26: 1101 |0021: return-object v1 + catches : (none) + positions : + 0x0000 line=61 + 0x0014 line=62 + 0x001c line=63 + locals : + 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String; + 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x0022 reg=6 arityArgs [Ljava/lang/String; + + #9 : (in LTestVariableArityLinkerMethod;) + name : 'bsmWithWiderArray' + type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[J)Ljava/lang/invoke/CallSite;' + access : 0x000a (PRIVATE STATIC) + code - + registers : 7 + ins : 4 + outs : 4 + insns size : 34 16-bit code units +003a28: |[003a28] TestVariableArityLinkerMethod.bsmWithWiderArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[J)Ljava/lang/invoke/CallSite; +003a38: 1a00 0001 |0000: const-string v0, "bsmWithWiderArray" // string@0100 +003a3c: 1241 |0002: const/4 v1, #int 4 // #4 +003a3e: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048 +003a42: 1202 |0005: const/4 v2, #int 0 // #0 +003a44: 4d03 0102 |0006: aput-object v3, v1, v2 +003a48: 1212 |0008: const/4 v2, #int 1 // #1 +003a4a: 4d04 0102 |0009: aput-object v4, v1, v2 +003a4e: 1222 |000b: const/4 v2, #int 2 // #2 +003a50: 4d05 0102 |000c: aput-object v5, v1, v2 +003a54: 1232 |000e: const/4 v2, #int 3 // #3 +003a56: 4d06 0102 |000f: aput-object v6, v1, v2 +003a5a: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7 +003a60: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc +003a66: 0c00 |0017: move-result-object v0 +003a68: 6e40 d800 0354 |0018: invoke-virtual {v3, v0, v4, v5}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@00d8 +003a6e: 0c00 |001b: move-result-object v0 +003a70: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034 +003a74: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2 +003a7a: 1101 |0021: return-object v1 + catches : (none) + positions : + 0x0000 line=447 + 0x0014 line=448 + 0x001c line=449 + locals : + 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle; + 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup; + 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String; + 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType; + 0x0000 - 0x0022 reg=6 extraArgs [J + + #10 : (in LTestVariableArityLinkerMethod;) + name : 'methodA' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 2 + ins : 0 outs : 2 insns size : 8 16-bit code units -0014d4: |[0014d4] invokecustom.InvokeCustom.run:()V -0014e4: 6200 0200 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -0014e8: 1a01 8200 |0002: const-string v1, "run() for Test9" // string@0082 -0014ec: 6e20 2900 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -0014f2: 0e00 |0007: return-void +003a94: |[003a94] TestVariableArityLinkerMethod.methodA:()V +003aa4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003aa8: 1a01 7501 |0002: const-string v1, "methodA" // string@0175 +003aac: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003ab2: 0e00 |0007: return-void catches : (none) positions : - 0x0000 line=137 - 0x0007 line=138 + 0x0000 line=86 + 0x0007 line=87 locals : - 0x0000 - 0x0008 reg=2 this Linvokecustom/InvokeCustom; - #2 : (in Linvokecustom/InvokeCustom;) - name : 'targetMethodTest4' + #11 : (in LTestVariableArityLinkerMethod;) + name : 'methodB' type : '()V' - access : 0x0001 (PUBLIC) + access : 0x000a (PRIVATE STATIC) code - - registers : 3 - ins : 1 + registers : 2 + ins : 0 outs : 2 insns size : 8 16-bit code units -0014f4: |[0014f4] invokecustom.InvokeCustom.targetMethodTest4:()V -001504: 6200 0200 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002 -001508: 1a01 8a00 |0002: const-string v1, "targetMethodTest4 from InvokeCustom (oops!)" // string@008a -00150c: 6e20 2900 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0029 -001512: 0e00 |0007: return-void +003ab4: |[003ab4] TestVariableArityLinkerMethod.methodB:()V +003ac4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003ac8: 1a01 7601 |0002: const-string v1, "methodB" // string@0176 +003acc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003ad2: 0e00 |0007: return-void catches : (none) positions : - 0x0000 line=68 - 0x0007 line=69 + 0x0000 line=105 + 0x0007 line=106 + locals : + + #12 : (in LTestVariableArityLinkerMethod;) + name : 'methodC' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 8 16-bit code units +003ad4: |[003ad4] TestVariableArityLinkerMethod.methodC:()V +003ae4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003ae8: 1a01 7701 |0002: const-string v1, "methodC" // string@0177 +003aec: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003af2: 0e00 |0007: return-void + catches : (none) + positions : + 0x0000 line=123 + 0x0007 line=124 + locals : + + #13 : (in LTestVariableArityLinkerMethod;) + name : 'methodD' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 8 16-bit code units +003af4: |[003af4] TestVariableArityLinkerMethod.methodD:()V +003b04: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003b08: 1a01 7801 |0002: const-string v1, "methodD" // string@0178 +003b0c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003b12: 0e00 |0007: return-void + catches : (none) + positions : + 0x0000 line=166 + 0x0007 line=167 + locals : + + #14 : (in LTestVariableArityLinkerMethod;) + name : 'methodE' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 8 16-bit code units +003b14: |[003b14] TestVariableArityLinkerMethod.methodE:()V +003b24: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003b28: 1a01 7901 |0002: const-string v1, "methodE" // string@0179 +003b2c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003b32: 0e00 |0007: return-void + catches : (none) + positions : + 0x0000 line=189 + 0x0007 line=190 + locals : + + #15 : (in LTestVariableArityLinkerMethod;) + name : 'methodF' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 8 16-bit code units +003b34: |[003b34] TestVariableArityLinkerMethod.methodF:()V +003b44: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003b48: 1a01 7a01 |0002: const-string v1, "methodF" // string@017a +003b4c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003b52: 0e00 |0007: return-void + catches : (none) + positions : + 0x0000 line=209 + 0x0007 line=210 locals : - 0x0000 - 0x0008 reg=2 this Linvokecustom/InvokeCustom; - source_file_idx : 27 (InvokeCustom.java) + #16 : (in LTestVariableArityLinkerMethod;) + name : 'methodG' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 8 16-bit code units +003b54: |[003b54] TestVariableArityLinkerMethod.methodG:()V +003b64: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003b68: 1a01 7b01 |0002: const-string v1, "methodG" // string@017b +003b6c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003b72: 0e00 |0007: return-void + catches : (none) + positions : + 0x0000 line=247 + 0x0007 line=248 + locals : + + #17 : (in LTestVariableArityLinkerMethod;) + name : 'methodH' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 8 16-bit code units +003b74: |[003b74] TestVariableArityLinkerMethod.methodH:()V +003b84: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003b88: 1a01 7c01 |0002: const-string v1, "methodH" // string@017c +003b8c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003b92: 0e00 |0007: return-void + catches : (none) + positions : + 0x0000 line=284 + 0x0007 line=285 + locals : + + #18 : (in LTestVariableArityLinkerMethod;) + name : 'methodI' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 8 16-bit code units +003b94: |[003b94] TestVariableArityLinkerMethod.methodI:()V +003ba4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003ba8: 1a01 7d01 |0002: const-string v1, "methodI" // string@017d +003bac: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003bb2: 0e00 |0007: return-void + catches : (none) + positions : + 0x0000 line=323 + 0x0007 line=324 + locals : + + #19 : (in LTestVariableArityLinkerMethod;) + name : 'methodJ' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 8 16-bit code units +003bb4: |[003bb4] TestVariableArityLinkerMethod.methodJ:()V +003bc4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003bc8: 1a01 7e01 |0002: const-string v1, "methodJ" // string@017e +003bcc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003bd2: 0e00 |0007: return-void + catches : (none) + positions : + 0x0000 line=358 + 0x0007 line=359 + locals : + + #20 : (in LTestVariableArityLinkerMethod;) + name : 'methodK' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 2 + ins : 0 + outs : 2 + insns size : 8 16-bit code units +003bd4: |[003bd4] TestVariableArityLinkerMethod.methodK:()V +003be4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003be8: 1a01 7f01 |0002: const-string v1, "methodK" // string@017f +003bec: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003bf2: 0e00 |0007: return-void + catches : (none) + positions : + 0x0000 line=392 + 0x0007 line=393 + locals : + + #21 : (in LTestVariableArityLinkerMethod;) + name : 'methodO' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +003bf4: |[003bf4] TestVariableArityLinkerMethod.methodO:()V +003c04: 7100 8e00 0000 |0000: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e +003c0a: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=413 + 0x0003 line=414 + locals : + + #22 : (in LTestVariableArityLinkerMethod;) + name : 'methodP' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +003c0c: |[003c0c] TestVariableArityLinkerMethod.methodP:()V +003c1c: 7100 8e00 0000 |0000: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e +003c22: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=441 + 0x0003 line=442 + locals : + + #23 : (in LTestVariableArityLinkerMethod;) + name : 'methodQ' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +003c24: |[003c24] TestVariableArityLinkerMethod.methodQ:()V +003c34: 7100 8e00 0000 |0000: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e +003c3a: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=468 + 0x0003 line=469 + locals : + + #24 : (in LTestVariableArityLinkerMethod;) + name : 'methodR' + type : '()V' + access : 0x000a (PRIVATE STATIC) + code - + registers : 0 + ins : 0 + outs : 0 + insns size : 4 16-bit code units +003c3c: |[003c3c] TestVariableArityLinkerMethod.methodR:()V +003c4c: 7100 8e00 0000 |0000: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e +003c52: 0e00 |0003: return-void + catches : (none) + positions : + 0x0000 line=501 + 0x0003 line=502 + locals : + + #25 : (in LTestVariableArityLinkerMethod;) + name : 'printBsmArgs' + type : '(Ljava/lang/String;[Ljava/lang/Object;)V' + access : 0x008a (PRIVATE STATIC VARARGS) + code - + registers : 6 + ins : 2 + outs : 2 + insns size : 159 16-bit code units +003c54: |[003c54] TestVariableArityLinkerMethod.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V +003c64: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003c68: 6e20 b000 4000 |0002: invoke-virtual {v0, v4}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003c6e: 6200 1300 |0005: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003c72: 1a01 0600 |0007: const-string v1, "(" // string@0006 +003c76: 6e20 b000 1000 |0009: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003c7c: 1200 |000c: const/4 v0, #int 0 // #0 +003c7e: 2151 |000d: array-length v1, v5 +003c80: 3510 8900 |000e: if-ge v0, v1, 0097 // +0089 +003c84: 3800 0900 |0010: if-eqz v0, 0019 // +0009 +003c88: 6201 1300 |0012: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003c8c: 1a02 0c00 |0014: const-string v2, ", " // string@000c +003c90: 6e20 b000 2100 |0016: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003c96: 4601 0500 |0019: aget-object v1, v5, v0 +003c9a: 3801 7100 |001b: if-eqz v1, 008c // +0071 +003c9e: 4601 0500 |001d: aget-object v1, v5, v0 +003ca2: 6e10 c000 0100 |001f: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +003ca8: 0c01 |0022: move-result-object v1 +003caa: 6e10 b800 0100 |0023: invoke-virtual {v1}, Ljava/lang/Class;.isArray:()Z // method@00b8 +003cb0: 0a01 |0026: move-result v1 +003cb2: 3801 6500 |0027: if-eqz v1, 008c // +0065 +003cb6: 4601 0500 |0029: aget-object v1, v5, v0 +003cba: 6e10 c000 0100 |002b: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +003cc0: 0c02 |002e: move-result-object v2 +003cc2: 1c03 4400 |002f: const-class v3, [I // type@0044 +003cc6: 3332 0f00 |0031: if-ne v2, v3, 0040 // +000f +003cca: 6202 1300 |0033: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003cce: 0713 |0035: move-object v3, v1 +003cd0: 1f03 4400 |0036: check-cast v3, [I // type@0044 +003cd4: 7110 e900 0300 |0038: invoke-static {v3}, Ljava/util/Arrays;.toString:([I)Ljava/lang/String; // method@00e9 +003cda: 0c03 |003b: move-result-object v3 +003cdc: 6e20 b000 3200 |003c: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003ce2: 284c |003f: goto 008b // +004c +003ce4: 6e10 c000 0100 |0040: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +003cea: 0c02 |0043: move-result-object v2 +003cec: 1c03 4500 |0044: const-class v3, [J // type@0045 +003cf0: 3332 0f00 |0046: if-ne v2, v3, 0055 // +000f +003cf4: 6202 1300 |0048: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003cf8: 0713 |004a: move-object v3, v1 +003cfa: 1f03 4500 |004b: check-cast v3, [J // type@0045 +003cfe: 7110 ea00 0300 |004d: invoke-static {v3}, Ljava/util/Arrays;.toString:([J)Ljava/lang/String; // method@00ea +003d04: 0c03 |0050: move-result-object v3 +003d06: 6e20 b000 3200 |0051: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003d0c: 2837 |0054: goto 008b // +0037 +003d0e: 6e10 c000 0100 |0055: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +003d14: 0c02 |0058: move-result-object v2 +003d16: 1c03 4300 |0059: const-class v3, [F // type@0043 +003d1a: 3332 0f00 |005b: if-ne v2, v3, 006a // +000f +003d1e: 6202 1300 |005d: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003d22: 0713 |005f: move-object v3, v1 +003d24: 1f03 4300 |0060: check-cast v3, [F // type@0043 +003d28: 7110 e800 0300 |0062: invoke-static {v3}, Ljava/util/Arrays;.toString:([F)Ljava/lang/String; // method@00e8 +003d2e: 0c03 |0065: move-result-object v3 +003d30: 6e20 b000 3200 |0066: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003d36: 2822 |0069: goto 008b // +0022 +003d38: 6e10 c000 0100 |006a: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +003d3e: 0c02 |006d: move-result-object v2 +003d40: 1c03 4200 |006e: const-class v3, [D // type@0042 +003d44: 3332 0f00 |0070: if-ne v2, v3, 007f // +000f +003d48: 6202 1300 |0072: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003d4c: 0713 |0074: move-object v3, v1 +003d4e: 1f03 4200 |0075: check-cast v3, [D // type@0042 +003d52: 7110 e700 0300 |0077: invoke-static {v3}, Ljava/util/Arrays;.toString:([D)Ljava/lang/String; // method@00e7 +003d58: 0c03 |007a: move-result-object v3 +003d5a: 6e20 b000 3200 |007b: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003d60: 280d |007e: goto 008b // +000d +003d62: 6202 1300 |007f: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003d66: 0713 |0081: move-object v3, v1 +003d68: 1f03 4800 |0082: check-cast v3, [Ljava/lang/Object; // type@0048 +003d6c: 7110 eb00 0300 |0084: invoke-static {v3}, Ljava/util/Arrays;.toString:([Ljava/lang/Object;)Ljava/lang/String; // method@00eb +003d72: 0c03 |0087: move-result-object v3 +003d74: 6e20 b000 3200 |0088: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003d7a: 2808 |008b: goto 0093 // +0008 +003d7c: 6201 1300 |008c: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003d80: 4602 0500 |008e: aget-object v2, v5, v0 +003d84: 6e20 af00 2100 |0090: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +003d8a: d800 0001 |0093: add-int/lit8 v0, v0, #int 1 // #01 +003d8e: 2900 78ff |0095: goto/16 000d // -0088 +003d92: 6200 1300 |0097: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003d96: 1a01 0800 |0099: const-string v1, ");" // string@0008 +003d9a: 6e20 b300 1000 |009b: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3 +003da0: 0e00 |009e: return-void + catches : (none) + positions : + 0x0000 line=29 + 0x0005 line=30 + 0x000c line=31 + 0x0010 line=32 + 0x0012 line=33 + 0x0019 line=35 + 0x0029 line=36 + 0x002b line=37 + 0x0033 line=38 + 0x0040 line=39 + 0x0048 line=40 + 0x0055 line=41 + 0x005d line=42 + 0x006a line=43 + 0x0072 line=44 + 0x007f line=46 + 0x008b line=48 + 0x008c line=49 + 0x0093 line=31 + 0x0097 line=52 + 0x009e line=53 + locals : + 0x002b - 0x008b reg=1 array Ljava/lang/Object; + 0x000d - 0x0097 reg=0 i I + 0x0000 - 0x009f reg=4 method Ljava/lang/String; + 0x0000 - 0x009f reg=5 args [Ljava/lang/Object; + + #26 : (in LTestVariableArityLinkerMethod;) + name : 'test' + type : '()V' + access : 0x0008 (STATIC) + code - + registers : 3 + ins : 0 + outs : 2 + insns size : 224 16-bit code units +003da4: |[003da4] TestVariableArityLinkerMethod.test:()V +003db4: 1200 |0000: const/4 v0, #int 0 // #0 +003db6: 0101 |0001: move v1, v0 +003db8: 1222 |0002: const/4 v2, #int 2 // #2 +003dba: 3521 0e00 |0003: if-ge v1, v2, 0011 // +000e +003dbe: fc00 1f00 0000 |0005: invoke-custom {}, call_site@001f +003dc4: fc00 2000 0000 |0008: invoke-custom {}, call_site@0020 +003dca: fc00 2100 0000 |000b: invoke-custom {}, call_site@0021 +003dd0: d801 0101 |000e: add-int/lit8 v1, v1, #int 1 // #01 +003dd4: 28f2 |0010: goto 0002 // -000e +003dd6: 0000 |0011: nop // spacer +003dd8: 3520 0e00 |0012: if-ge v0, v2, 0020 // +000e +003ddc: fc00 2200 0000 |0014: invoke-custom {}, call_site@0022 +003de2: fc00 2300 0000 |0017: invoke-custom {}, call_site@0023 +003de8: fc00 2400 0000 |001a: invoke-custom {}, call_site@0024 +003dee: d800 0001 |001d: add-int/lit8 v0, v0, #int 1 // #01 +003df2: 28f3 |001f: goto 0012 // -000d +003df4: fc00 2500 0000 |0020: invoke-custom {}, call_site@0025 +003dfa: fc00 2600 0000 |0023: invoke-custom {}, call_site@0026 +003e00: fc00 2700 0000 |0026: invoke-custom {}, call_site@0027 +003e06: fc00 2800 0000 |0029: invoke-custom {}, call_site@0028 +003e0c: fc00 2900 0000 |002c: invoke-custom {}, call_site@0029 +003e12: fc00 2a00 0000 |002f: invoke-custom {}, call_site@002a +003e18: 7100 8e00 0000 |0032: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e +003e1e: 2826 |0035: goto 005b // +0026 +003e20: 0d00 |0036: move-exception v0 +003e22: 6201 1300 |0037: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003e26: 1a02 8201 |0039: const-string v2, "methodO => " // string@0182 +003e2a: 6e20 b000 2100 |003b: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003e30: 6201 1300 |003e: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003e34: 6e10 c000 0000 |0040: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +003e3a: 0c02 |0043: move-result-object v2 +003e3c: 6e20 af00 2100 |0044: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +003e42: 6201 1300 |0047: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003e46: 1a02 0200 |0049: const-string v2, " => " // string@0002 +003e4a: 6e20 b000 2100 |004b: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003e50: 6201 1300 |004e: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003e54: 6e10 b600 0000 |0050: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +003e5a: 0c02 |0053: move-result-object v2 +003e5c: 6e10 c000 0200 |0054: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +003e62: 0c02 |0057: move-result-object v2 +003e64: 6e20 b200 2100 |0058: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +003e6a: fc00 2b00 0000 |005b: invoke-custom {}, call_site@002b +003e70: 7100 8e00 0000 |005e: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e +003e76: 2826 |0061: goto 0087 // +0026 +003e78: 0d00 |0062: move-exception v0 +003e7a: 6201 1300 |0063: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003e7e: 1a02 8401 |0065: const-string v2, "methodP => " // string@0184 +003e82: 6e20 b000 2100 |0067: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003e88: 6201 1300 |006a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003e8c: 6e10 c000 0000 |006c: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +003e92: 0c02 |006f: move-result-object v2 +003e94: 6e20 af00 2100 |0070: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +003e9a: 6201 1300 |0073: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003e9e: 1a02 0200 |0075: const-string v2, " => " // string@0002 +003ea2: 6e20 b000 2100 |0077: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003ea8: 6201 1300 |007a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003eac: 6e10 b600 0000 |007c: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +003eb2: 0c02 |007f: move-result-object v2 +003eb4: 6e10 c000 0200 |0080: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +003eba: 0c02 |0083: move-result-object v2 +003ebc: 6e20 b200 2100 |0084: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +003ec2: fc00 2c00 0000 |0087: invoke-custom {}, call_site@002c +003ec8: 7100 8e00 0000 |008a: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e +003ece: 2826 |008d: goto 00b3 // +0026 +003ed0: 0d00 |008e: move-exception v0 +003ed2: 6201 1300 |008f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003ed6: 1a02 8601 |0091: const-string v2, "methodQ => " // string@0186 +003eda: 6e20 b000 2100 |0093: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003ee0: 6201 1300 |0096: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003ee4: 6e10 c000 0000 |0098: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +003eea: 0c02 |009b: move-result-object v2 +003eec: 6e20 af00 2100 |009c: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +003ef2: 6201 1300 |009f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003ef6: 1a02 0200 |00a1: const-string v2, " => " // string@0002 +003efa: 6e20 b000 2100 |00a3: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003f00: 6201 1300 |00a6: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003f04: 6e10 b600 0000 |00a8: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +003f0a: 0c02 |00ab: move-result-object v2 +003f0c: 6e10 c000 0200 |00ac: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +003f12: 0c02 |00af: move-result-object v2 +003f14: 6e20 b200 2100 |00b0: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +003f1a: fc00 2d00 0000 |00b3: invoke-custom {}, call_site@002d +003f20: 7100 8e00 0000 |00b6: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e +003f26: 2826 |00b9: goto 00df // +0026 +003f28: 0d00 |00ba: move-exception v0 +003f2a: 6201 1300 |00bb: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003f2e: 1a02 8801 |00bd: const-string v2, "methodR => " // string@0188 +003f32: 6e20 b000 2100 |00bf: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003f38: 6201 1300 |00c2: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003f3c: 6e10 c000 0000 |00c4: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +003f42: 0c02 |00c7: move-result-object v2 +003f44: 6e20 af00 2100 |00c8: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af +003f4a: 6201 1300 |00cb: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003f4e: 1a02 0200 |00cd: const-string v2, " => " // string@0002 +003f52: 6e20 b000 2100 |00cf: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0 +003f58: 6201 1300 |00d2: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013 +003f5c: 6e10 b600 0000 |00d4: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6 +003f62: 0c02 |00d7: move-result-object v2 +003f64: 6e10 c000 0200 |00d8: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0 +003f6a: 0c02 |00db: move-result-object v2 +003f6c: 6e20 b200 2100 |00dc: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2 +003f72: 0e00 |00df: return-void + catches : 4 + 0x002f - 0x0035 + Ljava/lang/BootstrapMethodError; -> 0x0036 + 0x005b - 0x0061 + Ljava/lang/BootstrapMethodError; -> 0x0062 + 0x0087 - 0x008d + Ljava/lang/BootstrapMethodError; -> 0x008e + 0x00b3 - 0x00b9 + Ljava/lang/BootstrapMethodError; -> 0x00ba + positions : + 0x0000 line=506 + 0x0005 line=507 + 0x0008 line=508 + 0x000b line=509 + 0x000e line=506 + 0x0011 line=511 + 0x0014 line=512 + 0x0017 line=513 + 0x001a line=514 + 0x001d line=511 + 0x0020 line=516 + 0x0023 line=517 + 0x0026 line=518 + 0x0029 line=519 + 0x002c line=520 + 0x002f line=527 + 0x0032 line=528 + 0x0035 line=534 + 0x0036 line=529 + 0x0037 line=530 + 0x003e line=531 + 0x0047 line=532 + 0x004e line=533 + 0x005b line=538 + 0x005e line=539 + 0x0061 line=545 + 0x0062 line=540 + 0x0063 line=541 + 0x006a line=542 + 0x0073 line=543 + 0x007a line=544 + 0x0087 line=549 + 0x008a line=550 + 0x008d line=556 + 0x008e line=551 + 0x008f line=552 + 0x0096 line=553 + 0x009f line=554 + 0x00a6 line=555 + 0x00b3 line=560 + 0x00b6 line=561 + 0x00b9 line=567 + 0x00ba line=562 + 0x00bb line=563 + 0x00c2 line=564 + 0x00cb line=565 + 0x00d2 line=566 + 0x00df line=568 + locals : + 0x0002 - 0x0011 reg=1 i I + 0x0012 - 0x0020 reg=0 i I + 0x0037 - 0x005b reg=0 expected Ljava/lang/BootstrapMethodError; + 0x0063 - 0x0087 reg=0 expected Ljava/lang/BootstrapMethodError; + 0x008f - 0x00b3 reg=0 expected Ljava/lang/BootstrapMethodError; + 0x00bb - 0x00df reg=0 expected Ljava/lang/BootstrapMethodError; + + Virtual methods - + source_file_idx : 156 (TestVariableArityLinkerMethod.java) Method handle #0: - type : put-static - target : Linvokecustom/InvokeCustom; staticFieldTest9 - target_type : I + type : invoke-static + target : LTestBadBootstrapArguments; bsm + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ID)Ljava/lang/invoke/CallSite; Method handle #1: - type : get-static - target : Linvokecustom/InvokeCustom; staticFieldTest9 - target_type : I + type : invoke-static + target : LTestBadBootstrapArguments; bsm + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ILjava/lang/String;)Ljava/lang/invoke/CallSite; Method handle #2: - type : put-instance - target : Linvokecustom/InvokeCustom; fieldTest9 - target_type : (Linvokecustom/InvokeCustom; + type : invoke-static + target : LTestBadBootstrapArguments; bsmDJ + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;DJ)Ljava/lang/invoke/CallSite; Method handle #3: - type : get-instance - target : Linvokecustom/InvokeCustom; fieldTest9 - target_type : (Linvokecustom/InvokeCustom; + type : invoke-static + target : LTestBadBootstrapArguments; bsmDoubleLong + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Double;Ljava/lang/Long;)Ljava/lang/invoke/CallSite; Method handle #4: type : invoke-static - target : Linvokecustom/InvokeCustom; bsmCreateCallSite - target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite; + target : LTestBadBootstrapArguments; bsmReturningInteger + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Integer; Method handle #5: type : invoke-static - target : Linvokecustom/InvokeCustom; bsmLookupStatic - target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; + target : LTestBadBootstrapArguments; bsmReturningObject + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Object; Method handle #6: type : invoke-static - target : Linvokecustom/InvokeCustom; bsmLookupStaticWithExtraArgs - target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IJFD)Ljava/lang/invoke/CallSite; + target : LTestBadBootstrapArguments; bsmReturningTestersConstantCallsite + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)LTestBadBootstrapArguments$TestersConstantCallSite; Method handle #7: type : invoke-static - target : Linvokecustom/InvokeCustom; bsmLookupTest9 - target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite; + target : LTestBadBootstrapArguments; bsmReturningVoid + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V Method handle #8: type : invoke-static - target : Linvokecustom/InvokeCustom; lambda$lambdaTest$0 - target_type : (Ljava/lang/String;)Z + target : LTestBadBootstrapArguments; bsmZBCS + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ZBCS)Ljava/lang/invoke/CallSite; Method handle #9: type : invoke-static - target : Ljava/lang/invoke/LambdaMetafactory; metafactory - target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; + target : LTestDynamicBootstrapArguments; bsm + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;J)Ljava/lang/invoke/CallSite; Method handle #10: - type : invoke-instance - target : Linvokecustom/InvokeCustom; helperMethodTest9 - target_type : (Linvokecustom/InvokeCustom;)V + type : invoke-static + target : LTestInvocationKinds; lookupConstructor + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; Method handle #11: - type : invoke-instance - target : Ljava/io/PrintStream; println - target_type : (Ljava/io/PrintStream;Ljava/lang/String;)V + type : invoke-static + target : LTestInvocationKinds; lookupInstanceFieldGetter + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; Method handle #12: - type : invoke-instance - target : Ljava/lang/String; trim - target_type : (Ljava/lang/String;)Ljava/lang/String; + type : invoke-static + target : LTestInvocationKinds; lookupInstanceFieldSetter + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; Method handle #13: - type : invoke-constructor - target : Linvokecustom/InvokeCustom; <init> - target_type : (Linvokecustom/InvokeCustom;I)V + type : invoke-static + target : LTestInvocationKinds; lookupStaticFieldGetter + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; Method handle #14: - type : invoke-direct - target : Linvokecustom/Super; targetMethodTest4 - target_type : (Linvokecustom/Super;)V + type : invoke-static + target : LTestInvocationKinds; lookupStaticFieldSetter + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; Method handle #15: - type : invoke-interface - target : Ljava/lang/Runnable; run - target_type : (Ljava/lang/Runnable;)V -Call site #0: // offset 8450 + type : invoke-static + target : LTestInvocationKinds; lookupVirtual + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; +Method handle #16: + type : invoke-static + target : LTestInvokeCustomWithConcurrentThreads; linkerMethod + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; +Method handle #17: + type : invoke-static + target : LTestLinkerMethodMinimalArguments; linkerMethod + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; +Method handle #18: + type : invoke-static + target : LTestLinkerMethodMultipleArgumentTypes; linkerMethod + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IIIIIFDLjava/lang/String;Ljava/lang/Class;J)Ljava/lang/invoke/CallSite; +Method handle #19: + type : invoke-static + target : LTestVariableArityLinkerMethod; bsmWithBoxedArray + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Integer;)Ljava/lang/invoke/CallSite; +Method handle #20: + type : invoke-static + target : LTestVariableArityLinkerMethod; bsmWithClassAndFloatArray + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;[F)Ljava/lang/invoke/CallSite; +Method handle #21: + type : invoke-static + target : LTestVariableArityLinkerMethod; bsmWithClassArray + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Class;)Ljava/lang/invoke/CallSite; +Method handle #22: + type : invoke-static + target : LTestVariableArityLinkerMethod; bsmWithDoubleArray + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[D)Ljava/lang/invoke/CallSite; +Method handle #23: + type : invoke-static + target : LTestVariableArityLinkerMethod; bsmWithFloatAndLongArray + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;F[J)Ljava/lang/invoke/CallSite; +Method handle #24: + type : invoke-static + target : LTestVariableArityLinkerMethod; bsmWithIntAndStringArray + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I[Ljava/lang/String;)Ljava/lang/invoke/CallSite; +Method handle #25: + type : invoke-static + target : LTestVariableArityLinkerMethod; bsmWithLongAndIntArray + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;J[I)Ljava/lang/invoke/CallSite; +Method handle #26: + type : invoke-static + target : LTestVariableArityLinkerMethod; bsmWithStringArray + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/String;)Ljava/lang/invoke/CallSite; +Method handle #27: + type : invoke-static + target : LTestVariableArityLinkerMethod; bsmWithWiderArray + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[J)Ljava/lang/invoke/CallSite; +Method handle #28: + type : invoke-static + target : LUnrelatedBSM; bsm + target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/CallSite; +Call site #0: // offset 29649 + link_argument[0] : 1 (MethodHandle) + link_argument[1] : happy (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : -1 (int) + link_argument[4] : very (String) +Call site #1: // offset 29662 + link_argument[0] : 0 (MethodHandle) + link_argument[1] : wrongParameterTypes (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : -1 (int) + link_argument[4] : very (String) +Call site #2: // offset 29675 + link_argument[0] : 0 (MethodHandle) + link_argument[1] : missingParameterTypes (String) + link_argument[2] : ()V (MethodType) +Call site #3: // offset 29683 + link_argument[0] : 1 (MethodHandle) + link_argument[1] : extraArguments (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 1 (int) + link_argument[4] : 2 (String) + link_argument[5] : 3 (int) +Call site #4: // offset 29697 + link_argument[0] : 1 (MethodHandle) + link_argument[1] : wrongArguments (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 1 (String) + link_argument[4] : 3.14159 (double) +Call site #5: // offset 29697 + link_argument[0] : 1 (MethodHandle) + link_argument[1] : wrongArguments (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 1 (String) + link_argument[4] : 3.14159 (double) +Call site #6: // offset 29716 + link_argument[0] : 1 (MethodHandle) + link_argument[1] : wrongArgumentsAgain (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 3.14159 (double) + link_argument[4] : pie (String) +Call site #7: // offset 29736 + link_argument[0] : 8 (MethodHandle) + link_argument[1] : narrowArguments (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 1 (int) + link_argument[4] : 127 (int) + link_argument[5] : 65 (int) + link_argument[6] : -32768 (int) +Call site #8: // offset 29753 + link_argument[0] : 2 (MethodHandle) + link_argument[1] : wideningArguments (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 1.79769e+308 (double) + link_argument[4] : 2147483647 (int) +Call site #9: // offset 29775 + link_argument[0] : 3 (MethodHandle) + link_argument[1] : boxingArguments (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 1.79769e+308 (double) + link_argument[4] : 9223372036854775807 (long) +Call site #10: // offset 29800 + link_argument[0] : 3 (MethodHandle) + link_argument[1] : wideningBoxingArguments (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 3.40282e+38 (float) + link_argument[4] : 2147483647 (long) +Call site #11: // offset 29818 + link_argument[0] : 7 (MethodHandle) + link_argument[1] : voidReturnType (String) + link_argument[2] : ()V (MethodType) +Call site #12: // offset 29826 + link_argument[0] : 5 (MethodHandle) + link_argument[1] : ObjectReturnType (String) + link_argument[2] : ()V (MethodType) +Call site #13: // offset 29833 + link_argument[0] : 4 (MethodHandle) + link_argument[1] : integerReturnType (String) + link_argument[2] : ()V (MethodType) +Call site #14: // offset 29841 + link_argument[0] : 6 (MethodHandle) + link_argument[1] : sayHello (String) + link_argument[2] : ()V (MethodType) +Call site #15: // offset 29849 link_argument[0] : 9 (MethodHandle) - link_argument[1] : test (String) - link_argument[2] : ()Ljava/util/function/Predicate; (MethodType) - link_argument[3] : (Ljava/lang/Object;)Z (MethodType) - link_argument[4] : 8 (MethodHandle) - link_argument[5] : (Ljava/lang/String;)Z (MethodType) -Call site #1: // offset 8463 + link_argument[1] : target (String) + link_argument[2] : (ILjava/lang/String;Ljava/lang/Double;)I (MethodType) + link_argument[3] : A (String) + link_argument[4] : 100000000 (long) +Call site #16: // offset 29849 link_argument[0] : 9 (MethodHandle) - link_argument[1] : apply (String) - link_argument[2] : ()Ljava/util/function/Function; (MethodType) - link_argument[3] : (Ljava/lang/Object;)Ljava/lang/Object; (MethodType) - link_argument[4] : 12 (MethodHandle) - link_argument[5] : (Ljava/lang/String;)Ljava/lang/String; (MethodType) -Call site #2: // offset 8476 + link_argument[1] : target (String) + link_argument[2] : (ILjava/lang/String;Ljava/lang/Double;)I (MethodType) + link_argument[3] : A (String) + link_argument[4] : 100000000 (long) +Call site #17: // offset 29849 link_argument[0] : 9 (MethodHandle) - link_argument[1] : accept (String) - link_argument[2] : (Ljava/io/PrintStream;)Ljava/util/function/Consumer; (MethodType) - link_argument[3] : (Ljava/lang/Object;)V (MethodType) - link_argument[4] : 11 (MethodHandle) - link_argument[5] : (Ljava/lang/String;)V (MethodType) -Call site #3: // offset 8489 - link_argument[0] : 5 (MethodHandle) - link_argument[1] : targetMethodTest1 (String) + link_argument[1] : target (String) + link_argument[2] : (ILjava/lang/String;Ljava/lang/Double;)I (MethodType) + link_argument[3] : A (String) + link_argument[4] : 100000000 (long) +Call site #18: // offset 29864 + link_argument[0] : 10 (MethodHandle) + link_argument[1] : unused (String) + link_argument[2] : (I)LTestInvocationKinds$Widget; (MethodType) +Call site #19: // offset 29872 + link_argument[0] : 12 (MethodHandle) + link_argument[1] : instance_field (String) + link_argument[2] : (LTestInvocationKinds;D)V (MethodType) +Call site #20: // offset 29880 + link_argument[0] : 11 (MethodHandle) + link_argument[1] : instance_field (String) + link_argument[2] : (LTestInvocationKinds;)D (MethodType) +Call site #21: // offset 29888 + link_argument[0] : 15 (MethodHandle) + link_argument[1] : getMaxIntegerValue (String) + link_argument[2] : (LTestInvocationKinds;II)I (MethodType) +Call site #22: // offset 29896 + link_argument[0] : 14 (MethodHandle) + link_argument[1] : static_field (String) + link_argument[2] : (I)V (MethodType) +Call site #23: // offset 29896 + link_argument[0] : 14 (MethodHandle) + link_argument[1] : static_field (String) + link_argument[2] : (I)V (MethodType) +Call site #24: // offset 29904 + link_argument[0] : 13 (MethodHandle) + link_argument[1] : static_field (String) + link_argument[2] : ()I (MethodType) +Call site #25: // offset 29904 + link_argument[0] : 13 (MethodHandle) + link_argument[1] : static_field (String) + link_argument[2] : ()I (MethodType) +Call site #26: // offset 29912 + link_argument[0] : 16 (MethodHandle) + link_argument[1] : setCalled (String) + link_argument[2] : (I)I (MethodType) +Call site #27: // offset 29920 + link_argument[0] : 17 (MethodHandle) + link_argument[1] : _add (String) + link_argument[2] : (II)I (MethodType) +Call site #28: // offset 29927 + link_argument[0] : 18 (MethodHandle) + link_argument[1] : _add (String) + link_argument[2] : (II)I (MethodType) + link_argument[3] : -1 (int) + link_argument[4] : 1 (int) + link_argument[5] : 97 (int) + link_argument[6] : 1024 (int) + link_argument[7] : 1 (int) + link_argument[8] : 11.1 (float) + link_argument[9] : 2.2 (double) + link_argument[10] : Hello (String) + link_argument[11] : LTestLinkerMethodMultipleArgumentTypes; (Class) + link_argument[12] : 123456789 (long) +Call site #29: // offset 29968 + link_argument[0] : 28 (MethodHandle) + link_argument[1] : _addf (String) + link_argument[2] : (FF)F (MethodType) + link_argument[3] : LTestLinkerUnrelatedBSM; (Class) +Call site #30: // offset 29977 + link_argument[0] : 28 (MethodHandle) + link_argument[1] : _subf (String) + link_argument[2] : (FF)F (MethodType) + link_argument[3] : LTestLinkerUnrelatedBSM; (Class) +Call site #31: // offset 29986 + link_argument[0] : 26 (MethodHandle) + link_argument[1] : methodA (String) link_argument[2] : ()V (MethodType) -Call site #4: // offset 8496 - link_argument[0] : 5 (MethodHandle) - link_argument[1] : targetMethodTest2 (String) - link_argument[2] : (ZBCSIFJDLjava/lang/String;)V (MethodType) -Call site #5: // offset 8503 - link_argument[0] : 5 (MethodHandle) - link_argument[1] : targetMethodTest5 (String) - link_argument[2] : (III)I (MethodType) -Call site #6: // offset 8510 - link_argument[0] : 5 (MethodHandle) - link_argument[1] : targetMethodTest6 (String) - link_argument[2] : (JJJ)J (MethodType) -Call site #7: // offset 8517 - link_argument[0] : 5 (MethodHandle) - link_argument[1] : targetMethodTest7 (String) - link_argument[2] : (FFD)D (MethodType) -Call site #8: // offset 8524 - link_argument[0] : 5 (MethodHandle) - link_argument[1] : targetMethodTest8 (String) - link_argument[2] : (Ljava/lang/String;)V (MethodType) -Call site #9: // offset 8524 - link_argument[0] : 5 (MethodHandle) - link_argument[1] : targetMethodTest8 (String) - link_argument[2] : (Ljava/lang/String;)V (MethodType) -Call site #10: // offset 8524 - link_argument[0] : 5 (MethodHandle) - link_argument[1] : targetMethodTest8 (String) - link_argument[2] : (Ljava/lang/String;)V (MethodType) -Call site #11: // offset 8531 - link_argument[0] : 6 (MethodHandle) - link_argument[1] : targetMethodTest3 (String) + link_argument[3] : Aachen (String) + link_argument[4] : Aalborg (String) + link_argument[5] : Aalto (String) +Call site #32: // offset 30000 + link_argument[0] : 26 (MethodHandle) + link_argument[1] : methodB (String) link_argument[2] : ()V (MethodType) - link_argument[3] : 1 (int) - link_argument[4] : 123456789 (long) - link_argument[5] : 123.456 (float) - link_argument[6] : 123457 (double) -Call site #12: // offset 8559 - link_argument[0] : 4 (MethodHandle) - link_argument[1] : targetMethodTest4 (String) - link_argument[2] : (Linvokecustom/InvokeCustom;)V (MethodType) - link_argument[3] : 14 (MethodHandle) -Call site #13: // offset 8568 - link_argument[0] : 7 (MethodHandle) - link_argument[1] : targetMethodTest9 (String) + link_argument[3] : barium (String) +Call site #33: // offset 30010 + link_argument[0] : 26 (MethodHandle) + link_argument[1] : methodC (String) + link_argument[2] : ()V (MethodType) +Call site #34: // offset 30018 + link_argument[0] : 24 (MethodHandle) + link_argument[1] : methodD (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 101 (int) + link_argument[4] : zoo (String) + link_argument[5] : zoogene (String) + link_argument[6] : zoogenic (String) +Call site #35: // offset 30037 + link_argument[0] : 24 (MethodHandle) + link_argument[1] : methodE (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 102 (int) + link_argument[4] : zonic (String) +Call site #36: // offset 30050 + link_argument[0] : 24 (MethodHandle) + link_argument[1] : methodF (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 103 (int) +Call site #37: // offset 30060 + link_argument[0] : 25 (MethodHandle) + link_argument[1] : methodG (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 81985529216486895 (long) + link_argument[4] : 1 (int) + link_argument[5] : -1 (int) + link_argument[6] : 2 (int) + link_argument[7] : -2 (int) +Call site #38: // offset 30085 + link_argument[0] : 23 (MethodHandle) + link_argument[1] : methodH (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : -2.71828 (float) + link_argument[4] : 999999999999 (long) + link_argument[5] : -8888888888888 (long) +Call site #39: // offset 30112 + link_argument[0] : 20 (MethodHandle) + link_argument[1] : methodI (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : Ljava/lang/Throwable; (Class) + link_argument[4] : 3.40282e+38 (float) + link_argument[5] : 1.4013e-45 (float) + link_argument[6] : 3.14159 (float) + link_argument[7] : -3.14159 (float) +Call site #40: // offset 30142 + link_argument[0] : 22 (MethodHandle) + link_argument[1] : methodJ (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 1.79769e+308 (double) + link_argument[4] : 4.94066e-324 (double) + link_argument[5] : 2.71828 (double) + link_argument[6] : -3.14159 (double) +Call site #41: // offset 30186 + link_argument[0] : 21 (MethodHandle) + link_argument[1] : methodK (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : Ljava/lang/Integer; (Class) + link_argument[4] : Ljava/lang/invoke/MethodHandles; (Class) + link_argument[5] : Ljava/util/Arrays; (Class) +Call site #42: // offset 30200 + link_argument[0] : 24 (MethodHandle) + link_argument[1] : methodO (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 103 (int) + link_argument[4] : 104 (int) +Call site #43: // offset 30212 + link_argument[0] : 24 (MethodHandle) + link_argument[1] : methodP (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 103 (int) + link_argument[4] : A (String) + link_argument[5] : B (String) + link_argument[6] : 42 (int) +Call site #44: // offset 30228 + link_argument[0] : 27 (MethodHandle) + link_argument[1] : methodQ (String) + link_argument[2] : ()V (MethodType) + link_argument[3] : 103 (int) + link_argument[4] : 42 (int) +Call site #45: // offset 30240 + link_argument[0] : 19 (MethodHandle) + link_argument[1] : methodR (String) link_argument[2] : ()V (MethodType) - link_argument[3] : 1 (MethodHandle) - link_argument[4] : 0 (MethodHandle) - link_argument[5] : 3 (MethodHandle) - link_argument[6] : 2 (MethodHandle) - link_argument[7] : 10 (MethodHandle) - link_argument[8] : 13 (MethodHandle) - link_argument[9] : 15 (MethodHandle) + link_argument[3] : 1030 (int) + link_argument[4] : 420 (int) diff --git a/test/dexdump/invoke-custom.xml b/test/dexdump/invoke-custom.xml index 8b22a9d9ee..6d49ce1292 100644 --- a/test/dexdump/invoke-custom.xml +++ b/test/dexdump/invoke-custom.xml @@ -1,130 +1,21 @@ <api> -<package name="invokecustom" +<package name="" > -<class name="InvokeCustom" - extends="invokecustom.Super" +<class name="Main" + extends="TestBase" interface="false" abstract="false" static="false" final="false" visibility="public" > -<implements name="java.lang.Runnable"> -</implements> -<constructor name="InvokeCustom" - type="invokecustom.InvokeCustom" - static="false" - final="false" - visibility="public" -> -</constructor> -<constructor name="InvokeCustom" - type="invokecustom.InvokeCustom" +<constructor name="Main" + type="Main" static="false" final="false" visibility="public" > -<parameter name="arg0" type="int"> -</parameter> </constructor> -<method name="bsmCreateCallSite" - return="java.lang.invoke.CallSite" - abstract="false" - native="false" - synchronized="false" - static="true" - final="false" - visibility="public" -> -<parameter name="arg0" type="java.lang.invoke.MethodHandles.Lookup"> -</parameter> -<parameter name="arg1" type="java.lang.String"> -</parameter> -<parameter name="arg2" type="java.lang.invoke.MethodType"> -</parameter> -<parameter name="arg3" type="java.lang.invoke.MethodHandle"> -</parameter> -</method> -<method name="bsmLookupStatic" - return="java.lang.invoke.CallSite" - abstract="false" - native="false" - synchronized="false" - static="true" - final="false" - visibility="public" -> -<parameter name="arg0" type="java.lang.invoke.MethodHandles.Lookup"> -</parameter> -<parameter name="arg1" type="java.lang.String"> -</parameter> -<parameter name="arg2" type="java.lang.invoke.MethodType"> -</parameter> -</method> -<method name="bsmLookupStaticWithExtraArgs" - return="java.lang.invoke.CallSite" - abstract="false" - native="false" - synchronized="false" - static="true" - final="false" - visibility="public" -> -<parameter name="arg0" type="java.lang.invoke.MethodHandles.Lookup"> -</parameter> -<parameter name="arg1" type="java.lang.String"> -</parameter> -<parameter name="arg2" type="java.lang.invoke.MethodType"> -</parameter> -<parameter name="arg3" type="int"> -</parameter> -<parameter name="arg4" type="long"> -</parameter> -<parameter name="arg5" type="float"> -</parameter> -<parameter name="arg6" type="double"> -</parameter> -</method> -<method name="bsmLookupTest9" - return="java.lang.invoke.CallSite" - abstract="false" - native="false" - synchronized="false" - static="true" - final="false" - visibility="public" -> -<parameter name="arg0" type="java.lang.invoke.MethodHandles.Lookup"> -</parameter> -<parameter name="arg1" type="java.lang.String"> -</parameter> -<parameter name="arg2" type="java.lang.invoke.MethodType"> -</parameter> -<parameter name="arg3" type="java.lang.invoke.MethodHandle"> -</parameter> -<parameter name="arg4" type="java.lang.invoke.MethodHandle"> -</parameter> -<parameter name="arg5" type="java.lang.invoke.MethodHandle"> -</parameter> -<parameter name="arg6" type="java.lang.invoke.MethodHandle"> -</parameter> -<parameter name="arg7" type="java.lang.invoke.MethodHandle"> -</parameter> -<parameter name="arg8" type="java.lang.invoke.MethodHandle"> -</parameter> -<parameter name="arg9" type="java.lang.invoke.MethodHandle"> -</parameter> -</method> -<method name="lambdaTest" - return="void" - abstract="false" - native="false" - synchronized="false" - static="true" - final="false" - visibility="public" -> -</method> <method name="main" return="void" abstract="false" @@ -137,56 +28,35 @@ <parameter name="arg0" type="java.lang.String[]"> </parameter> </method> -<method name="targetMethodTest5" - return="int" +</class> +<class name="TestBadBootstrapArguments" + extends="TestBase" + interface="false" abstract="false" - native="false" - synchronized="false" - static="true" + static="false" final="false" visibility="public" > -<parameter name="arg0" type="int"> -</parameter> -<parameter name="arg1" type="int"> -</parameter> -<parameter name="arg2" type="int"> -</parameter> -</method> -<method name="targetMethodTest6" - return="long" - abstract="false" - native="false" - synchronized="false" - static="true" +<constructor name="TestBadBootstrapArguments" + type="TestBadBootstrapArguments" + static="false" final="false" visibility="public" > -<parameter name="arg0" type="long"> -</parameter> -<parameter name="arg1" type="long"> -</parameter> -<parameter name="arg2" type="long"> -</parameter> -</method> -<method name="targetMethodTest7" - return="double" +</constructor> +</class> +<class name="TestInvokeCustomWithConcurrentThreads" + extends="TestBase" + interface="false" abstract="false" - native="false" - synchronized="false" - static="true" + static="false" final="false" visibility="public" > -<parameter name="arg0" type="float"> -</parameter> -<parameter name="arg1" type="float"> -</parameter> -<parameter name="arg2" type="double"> -</parameter> -</method> -<method name="targetMethodTest8" - return="void" +<implements name="java.lang.Runnable"> +</implements> +<method name="notUsed" + return="int" abstract="false" native="false" synchronized="false" @@ -194,10 +64,10 @@ final="false" visibility="public" > -<parameter name="arg0" type="java.lang.String"> +<parameter name="arg0" type="int"> </parameter> </method> -<method name="test1" +<method name="test" return="void" abstract="false" native="false" @@ -207,47 +77,33 @@ visibility="public" > </method> -<method name="test2" - return="void" - abstract="false" - native="false" - synchronized="false" - static="true" - final="false" - visibility="public" -> -</method> -<method name="test3" +<method name="run" return="void" abstract="false" native="false" synchronized="false" - static="true" + static="false" final="false" visibility="public" > </method> -<method name="test4" - return="void" +</class> +<class name="TestLinkerMethodMinimalArguments" + extends="TestBase" + interface="false" abstract="false" - native="false" - synchronized="false" - static="true" + static="false" final="false" visibility="public" > -</method> -<method name="test5" - return="void" - abstract="false" - native="false" - synchronized="false" - static="true" +<constructor name="TestLinkerMethodMinimalArguments" + type="TestLinkerMethodMinimalArguments" + static="false" final="false" visibility="public" > -</method> -<method name="test6" +</constructor> +<method name="test" return="void" abstract="false" native="false" @@ -256,28 +112,30 @@ final="false" visibility="public" > +<parameter name="arg0" type="int"> +</parameter> +<parameter name="arg1" type="int"> +</parameter> +<parameter name="arg2" type="int"> +</parameter> </method> -<method name="test7" - return="void" +</class> +<class name="TestLinkerMethodMultipleArgumentTypes" + extends="TestBase" + interface="false" abstract="false" - native="false" - synchronized="false" - static="true" + static="false" final="false" visibility="public" > -</method> -<method name="test8" - return="void" - abstract="false" - native="false" - synchronized="false" - static="true" +<constructor name="TestLinkerMethodMultipleArgumentTypes" + type="TestLinkerMethodMultipleArgumentTypes" + static="false" final="false" visibility="public" > -</method> -<method name="test9" +</constructor> +<method name="test" return="void" abstract="false" native="false" @@ -286,9 +144,13 @@ final="false" visibility="public" > +<parameter name="arg0" type="int"> +</parameter> +<parameter name="arg1" type="int"> +</parameter> </method> -<method name="helperMethodTest9" - return="void" +<method name="GetBootstrapRunCount" + return="int" abstract="false" native="false" synchronized="false" @@ -297,229 +159,537 @@ visibility="public" > </method> -<method name="run" - return="void" +</class> +<class name="TestVariableArityLinkerMethod" + extends="TestBase" + interface="false" abstract="false" - native="false" - synchronized="false" static="false" final="false" visibility="public" > -</method> -<method name="targetMethodTest4" - return="void" - abstract="false" - native="false" - synchronized="false" +<constructor name="TestVariableArityLinkerMethod" + type="TestVariableArityLinkerMethod" static="false" final="false" visibility="public" > -</method> +</constructor> </class> <method_handle index="0" - type="put-static" - target_class="Linvokecustom/InvokeCustom;" - target_member="staticFieldTest9" - target_member_type="I" + type="invoke-static" + target_class="LTestBadBootstrapArguments;" + target_member="bsm" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ID)Ljava/lang/invoke/CallSite;" > </method_handle> <method_handle index="1" - type="get-static" - target_class="Linvokecustom/InvokeCustom;" - target_member="staticFieldTest9" - target_member_type="I" + type="invoke-static" + target_class="LTestBadBootstrapArguments;" + target_member="bsm" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ILjava/lang/String;)Ljava/lang/invoke/CallSite;" > </method_handle> <method_handle index="2" - type="put-instance" - target_class="Linvokecustom/InvokeCustom;" - target_member="fieldTest9" - target_member_type="(Linvokecustom/InvokeCustom;" + type="invoke-static" + target_class="LTestBadBootstrapArguments;" + target_member="bsmDJ" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;DJ)Ljava/lang/invoke/CallSite;" > </method_handle> <method_handle index="3" - type="get-instance" - target_class="Linvokecustom/InvokeCustom;" - target_member="fieldTest9" - target_member_type="(Linvokecustom/InvokeCustom;" + type="invoke-static" + target_class="LTestBadBootstrapArguments;" + target_member="bsmDoubleLong" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Double;Ljava/lang/Long;)Ljava/lang/invoke/CallSite;" > </method_handle> <method_handle index="4" type="invoke-static" - target_class="Linvokecustom/InvokeCustom;" - target_member="bsmCreateCallSite" - target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite;" + target_class="LTestBadBootstrapArguments;" + target_member="bsmReturningInteger" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Integer;" > </method_handle> <method_handle index="5" type="invoke-static" - target_class="Linvokecustom/InvokeCustom;" - target_member="bsmLookupStatic" - target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;" + target_class="LTestBadBootstrapArguments;" + target_member="bsmReturningObject" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Object;" > </method_handle> <method_handle index="6" type="invoke-static" - target_class="Linvokecustom/InvokeCustom;" - target_member="bsmLookupStaticWithExtraArgs" - target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IJFD)Ljava/lang/invoke/CallSite;" + target_class="LTestBadBootstrapArguments;" + target_member="bsmReturningTestersConstantCallsite" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)LTestBadBootstrapArguments$TestersConstantCallSite;" > </method_handle> <method_handle index="7" type="invoke-static" - target_class="Linvokecustom/InvokeCustom;" - target_member="bsmLookupTest9" - target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite;" + target_class="LTestBadBootstrapArguments;" + target_member="bsmReturningVoid" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V" > </method_handle> <method_handle index="8" type="invoke-static" - target_class="Linvokecustom/InvokeCustom;" - target_member="lambda$lambdaTest$0" - target_member_type="(Ljava/lang/String;)Z" + target_class="LTestBadBootstrapArguments;" + target_member="bsmZBCS" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ZBCS)Ljava/lang/invoke/CallSite;" > </method_handle> <method_handle index="9" type="invoke-static" - target_class="Ljava/lang/invoke/LambdaMetafactory;" - target_member="metafactory" - target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;" + target_class="LTestDynamicBootstrapArguments;" + target_member="bsm" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;J)Ljava/lang/invoke/CallSite;" > </method_handle> <method_handle index="10" - type="invoke-instance" - target_class="Linvokecustom/InvokeCustom;" - target_member="helperMethodTest9" - target_member_type="(Linvokecustom/InvokeCustom;)V" + type="invoke-static" + target_class="LTestInvocationKinds;" + target_member="lookupConstructor" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;" > </method_handle> <method_handle index="11" - type="invoke-instance" - target_class="Ljava/io/PrintStream;" - target_member="println" - target_member_type="(Ljava/io/PrintStream;Ljava/lang/String;)V" + type="invoke-static" + target_class="LTestInvocationKinds;" + target_member="lookupInstanceFieldGetter" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;" > </method_handle> <method_handle index="12" - type="invoke-instance" - target_class="Ljava/lang/String;" - target_member="trim" - target_member_type="(Ljava/lang/String;)Ljava/lang/String;" + type="invoke-static" + target_class="LTestInvocationKinds;" + target_member="lookupInstanceFieldSetter" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;" > </method_handle> <method_handle index="13" - type="invoke-constructor" - target_class="Linvokecustom/InvokeCustom;" - target_member="<init>" - target_member_type="(Linvokecustom/InvokeCustom;I)V" + type="invoke-static" + target_class="LTestInvocationKinds;" + target_member="lookupStaticFieldGetter" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;" > </method_handle> <method_handle index="14" - type="invoke-direct" - target_class="Linvokecustom/Super;" - target_member="targetMethodTest4" - target_member_type="(Linvokecustom/Super;)V" + type="invoke-static" + target_class="LTestInvocationKinds;" + target_member="lookupStaticFieldSetter" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;" > </method_handle> <method_handle index="15" - type="invoke-interface" - target_class="Ljava/lang/Runnable;" - target_member="run" - target_member_type="(Ljava/lang/Runnable;)V" + type="invoke-static" + target_class="LTestInvocationKinds;" + target_member="lookupVirtual" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;" +> +</method_handle> +<method_handle index="16" + type="invoke-static" + target_class="LTestInvokeCustomWithConcurrentThreads;" + target_member="linkerMethod" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;" +> +</method_handle> +<method_handle index="17" + type="invoke-static" + target_class="LTestLinkerMethodMinimalArguments;" + target_member="linkerMethod" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;" +> +</method_handle> +<method_handle index="18" + type="invoke-static" + target_class="LTestLinkerMethodMultipleArgumentTypes;" + target_member="linkerMethod" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IIIIIFDLjava/lang/String;Ljava/lang/Class;J)Ljava/lang/invoke/CallSite;" +> +</method_handle> +<method_handle index="19" + type="invoke-static" + target_class="LTestVariableArityLinkerMethod;" + target_member="bsmWithBoxedArray" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Integer;)Ljava/lang/invoke/CallSite;" +> +</method_handle> +<method_handle index="20" + type="invoke-static" + target_class="LTestVariableArityLinkerMethod;" + target_member="bsmWithClassAndFloatArray" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;[F)Ljava/lang/invoke/CallSite;" +> +</method_handle> +<method_handle index="21" + type="invoke-static" + target_class="LTestVariableArityLinkerMethod;" + target_member="bsmWithClassArray" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Class;)Ljava/lang/invoke/CallSite;" +> +</method_handle> +<method_handle index="22" + type="invoke-static" + target_class="LTestVariableArityLinkerMethod;" + target_member="bsmWithDoubleArray" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[D)Ljava/lang/invoke/CallSite;" +> +</method_handle> +<method_handle index="23" + type="invoke-static" + target_class="LTestVariableArityLinkerMethod;" + target_member="bsmWithFloatAndLongArray" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;F[J)Ljava/lang/invoke/CallSite;" +> +</method_handle> +<method_handle index="24" + type="invoke-static" + target_class="LTestVariableArityLinkerMethod;" + target_member="bsmWithIntAndStringArray" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I[Ljava/lang/String;)Ljava/lang/invoke/CallSite;" +> +</method_handle> +<method_handle index="25" + type="invoke-static" + target_class="LTestVariableArityLinkerMethod;" + target_member="bsmWithLongAndIntArray" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;J[I)Ljava/lang/invoke/CallSite;" +> +</method_handle> +<method_handle index="26" + type="invoke-static" + target_class="LTestVariableArityLinkerMethod;" + target_member="bsmWithStringArray" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/String;)Ljava/lang/invoke/CallSite;" +> +</method_handle> +<method_handle index="27" + type="invoke-static" + target_class="LTestVariableArityLinkerMethod;" + target_member="bsmWithWiderArray" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[J)Ljava/lang/invoke/CallSite;" +> +</method_handle> +<method_handle index="28" + type="invoke-static" + target_class="LUnrelatedBSM;" + target_member="bsm" + target_member_type="(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/CallSite;" > </method_handle> -<call_site index="0" offset="8450"> +<call_site index="0" offset="29649"> +<link_argument index="0" type="MethodHandle" value="1"/> +<link_argument index="1" type="String" values="happy"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="int" value="-1"/> +<link_argument index="4" type="String" value="very"/> +</call_site> +<call_site index="1" offset="29662"> +<link_argument index="0" type="MethodHandle" value="0"/> +<link_argument index="1" type="String" values="wrongParameterTypes"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="int" value="-1"/> +<link_argument index="4" type="String" value="very"/> +</call_site> +<call_site index="2" offset="29675"> +<link_argument index="0" type="MethodHandle" value="0"/> +<link_argument index="1" type="String" values="missingParameterTypes"/> +<link_argument index="2" type="MethodType" value="()V"/> +</call_site> +<call_site index="3" offset="29683"> +<link_argument index="0" type="MethodHandle" value="1"/> +<link_argument index="1" type="String" values="extraArguments"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="int" value="1"/> +<link_argument index="4" type="String" value="2"/> +<link_argument index="5" type="int" value="3"/> +</call_site> +<call_site index="4" offset="29697"> +<link_argument index="0" type="MethodHandle" value="1"/> +<link_argument index="1" type="String" values="wrongArguments"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="String" value="1"/> +<link_argument index="4" type="double" value="3.14159"/> +</call_site> +<call_site index="5" offset="29697"> +<link_argument index="0" type="MethodHandle" value="1"/> +<link_argument index="1" type="String" values="wrongArguments"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="String" value="1"/> +<link_argument index="4" type="double" value="3.14159"/> +</call_site> +<call_site index="6" offset="29716"> +<link_argument index="0" type="MethodHandle" value="1"/> +<link_argument index="1" type="String" values="wrongArgumentsAgain"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="double" value="3.14159"/> +<link_argument index="4" type="String" value="pie"/> +</call_site> +<call_site index="7" offset="29736"> +<link_argument index="0" type="MethodHandle" value="8"/> +<link_argument index="1" type="String" values="narrowArguments"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="int" value="1"/> +<link_argument index="4" type="int" value="127"/> +<link_argument index="5" type="int" value="65"/> +<link_argument index="6" type="int" value="-32768"/> +</call_site> +<call_site index="8" offset="29753"> +<link_argument index="0" type="MethodHandle" value="2"/> +<link_argument index="1" type="String" values="wideningArguments"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="double" value="1.79769e+308"/> +<link_argument index="4" type="int" value="2147483647"/> +</call_site> +<call_site index="9" offset="29775"> +<link_argument index="0" type="MethodHandle" value="3"/> +<link_argument index="1" type="String" values="boxingArguments"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="double" value="1.79769e+308"/> +<link_argument index="4" type="long" value="9223372036854775807"/> +</call_site> +<call_site index="10" offset="29800"> +<link_argument index="0" type="MethodHandle" value="3"/> +<link_argument index="1" type="String" values="wideningBoxingArguments"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="float" value="3.40282e+38"/> +<link_argument index="4" type="long" value="2147483647"/> +</call_site> +<call_site index="11" offset="29818"> +<link_argument index="0" type="MethodHandle" value="7"/> +<link_argument index="1" type="String" values="voidReturnType"/> +<link_argument index="2" type="MethodType" value="()V"/> +</call_site> +<call_site index="12" offset="29826"> +<link_argument index="0" type="MethodHandle" value="5"/> +<link_argument index="1" type="String" values="ObjectReturnType"/> +<link_argument index="2" type="MethodType" value="()V"/> +</call_site> +<call_site index="13" offset="29833"> +<link_argument index="0" type="MethodHandle" value="4"/> +<link_argument index="1" type="String" values="integerReturnType"/> +<link_argument index="2" type="MethodType" value="()V"/> +</call_site> +<call_site index="14" offset="29841"> +<link_argument index="0" type="MethodHandle" value="6"/> +<link_argument index="1" type="String" values="sayHello"/> +<link_argument index="2" type="MethodType" value="()V"/> +</call_site> +<call_site index="15" offset="29849"> <link_argument index="0" type="MethodHandle" value="9"/> -<link_argument index="1" type="String" values="test"/> -<link_argument index="2" type="MethodType" value="()Ljava/util/function/Predicate;"/> -<link_argument index="3" type="MethodType" value="(Ljava/lang/Object;)Z"/> -<link_argument index="4" type="MethodHandle" value="8"/> -<link_argument index="5" type="MethodType" value="(Ljava/lang/String;)Z"/> +<link_argument index="1" type="String" values="target"/> +<link_argument index="2" type="MethodType" value="(ILjava/lang/String;Ljava/lang/Double;)I"/> +<link_argument index="3" type="String" value="A"/> +<link_argument index="4" type="long" value="100000000"/> </call_site> -<call_site index="1" offset="8463"> +<call_site index="16" offset="29849"> <link_argument index="0" type="MethodHandle" value="9"/> -<link_argument index="1" type="String" values="apply"/> -<link_argument index="2" type="MethodType" value="()Ljava/util/function/Function;"/> -<link_argument index="3" type="MethodType" value="(Ljava/lang/Object;)Ljava/lang/Object;"/> -<link_argument index="4" type="MethodHandle" value="12"/> -<link_argument index="5" type="MethodType" value="(Ljava/lang/String;)Ljava/lang/String;"/> +<link_argument index="1" type="String" values="target"/> +<link_argument index="2" type="MethodType" value="(ILjava/lang/String;Ljava/lang/Double;)I"/> +<link_argument index="3" type="String" value="A"/> +<link_argument index="4" type="long" value="100000000"/> </call_site> -<call_site index="2" offset="8476"> +<call_site index="17" offset="29849"> <link_argument index="0" type="MethodHandle" value="9"/> -<link_argument index="1" type="String" values="accept"/> -<link_argument index="2" type="MethodType" value="(Ljava/io/PrintStream;)Ljava/util/function/Consumer;"/> -<link_argument index="3" type="MethodType" value="(Ljava/lang/Object;)V"/> -<link_argument index="4" type="MethodHandle" value="11"/> -<link_argument index="5" type="MethodType" value="(Ljava/lang/String;)V"/> +<link_argument index="1" type="String" values="target"/> +<link_argument index="2" type="MethodType" value="(ILjava/lang/String;Ljava/lang/Double;)I"/> +<link_argument index="3" type="String" value="A"/> +<link_argument index="4" type="long" value="100000000"/> </call_site> -<call_site index="3" offset="8489"> -<link_argument index="0" type="MethodHandle" value="5"/> -<link_argument index="1" type="String" values="targetMethodTest1"/> +<call_site index="18" offset="29864"> +<link_argument index="0" type="MethodHandle" value="10"/> +<link_argument index="1" type="String" values="unused"/> +<link_argument index="2" type="MethodType" value="(I)LTestInvocationKinds$Widget;"/> +</call_site> +<call_site index="19" offset="29872"> +<link_argument index="0" type="MethodHandle" value="12"/> +<link_argument index="1" type="String" values="instance_field"/> +<link_argument index="2" type="MethodType" value="(LTestInvocationKinds;D)V"/> +</call_site> +<call_site index="20" offset="29880"> +<link_argument index="0" type="MethodHandle" value="11"/> +<link_argument index="1" type="String" values="instance_field"/> +<link_argument index="2" type="MethodType" value="(LTestInvocationKinds;)D"/> +</call_site> +<call_site index="21" offset="29888"> +<link_argument index="0" type="MethodHandle" value="15"/> +<link_argument index="1" type="String" values="getMaxIntegerValue"/> +<link_argument index="2" type="MethodType" value="(LTestInvocationKinds;II)I"/> +</call_site> +<call_site index="22" offset="29896"> +<link_argument index="0" type="MethodHandle" value="14"/> +<link_argument index="1" type="String" values="static_field"/> +<link_argument index="2" type="MethodType" value="(I)V"/> +</call_site> +<call_site index="23" offset="29896"> +<link_argument index="0" type="MethodHandle" value="14"/> +<link_argument index="1" type="String" values="static_field"/> +<link_argument index="2" type="MethodType" value="(I)V"/> +</call_site> +<call_site index="24" offset="29904"> +<link_argument index="0" type="MethodHandle" value="13"/> +<link_argument index="1" type="String" values="static_field"/> +<link_argument index="2" type="MethodType" value="()I"/> +</call_site> +<call_site index="25" offset="29904"> +<link_argument index="0" type="MethodHandle" value="13"/> +<link_argument index="1" type="String" values="static_field"/> +<link_argument index="2" type="MethodType" value="()I"/> +</call_site> +<call_site index="26" offset="29912"> +<link_argument index="0" type="MethodHandle" value="16"/> +<link_argument index="1" type="String" values="setCalled"/> +<link_argument index="2" type="MethodType" value="(I)I"/> +</call_site> +<call_site index="27" offset="29920"> +<link_argument index="0" type="MethodHandle" value="17"/> +<link_argument index="1" type="String" values="_add"/> +<link_argument index="2" type="MethodType" value="(II)I"/> +</call_site> +<call_site index="28" offset="29927"> +<link_argument index="0" type="MethodHandle" value="18"/> +<link_argument index="1" type="String" values="_add"/> +<link_argument index="2" type="MethodType" value="(II)I"/> +<link_argument index="3" type="int" value="-1"/> +<link_argument index="4" type="int" value="1"/> +<link_argument index="5" type="int" value="97"/> +<link_argument index="6" type="int" value="1024"/> +<link_argument index="7" type="int" value="1"/> +<link_argument index="8" type="float" value="11.1"/> +<link_argument index="9" type="double" value="2.2"/> +<link_argument index="10" type="String" value="Hello"/> +<link_argument index="11" type="Class" value="LTestLinkerMethodMultipleArgumentTypes;"/> +<link_argument index="12" type="long" value="123456789"/> +</call_site> +<call_site index="29" offset="29968"> +<link_argument index="0" type="MethodHandle" value="28"/> +<link_argument index="1" type="String" values="_addf"/> +<link_argument index="2" type="MethodType" value="(FF)F"/> +<link_argument index="3" type="Class" value="LTestLinkerUnrelatedBSM;"/> +</call_site> +<call_site index="30" offset="29977"> +<link_argument index="0" type="MethodHandle" value="28"/> +<link_argument index="1" type="String" values="_subf"/> +<link_argument index="2" type="MethodType" value="(FF)F"/> +<link_argument index="3" type="Class" value="LTestLinkerUnrelatedBSM;"/> +</call_site> +<call_site index="31" offset="29986"> +<link_argument index="0" type="MethodHandle" value="26"/> +<link_argument index="1" type="String" values="methodA"/> <link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="String" value="Aachen"/> +<link_argument index="4" type="String" value="Aalborg"/> +<link_argument index="5" type="String" value="Aalto"/> </call_site> -<call_site index="4" offset="8496"> -<link_argument index="0" type="MethodHandle" value="5"/> -<link_argument index="1" type="String" values="targetMethodTest2"/> -<link_argument index="2" type="MethodType" value="(ZBCSIFJDLjava/lang/String;)V"/> +<call_site index="32" offset="30000"> +<link_argument index="0" type="MethodHandle" value="26"/> +<link_argument index="1" type="String" values="methodB"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="String" value="barium"/> </call_site> -<call_site index="5" offset="8503"> -<link_argument index="0" type="MethodHandle" value="5"/> -<link_argument index="1" type="String" values="targetMethodTest5"/> -<link_argument index="2" type="MethodType" value="(III)I"/> +<call_site index="33" offset="30010"> +<link_argument index="0" type="MethodHandle" value="26"/> +<link_argument index="1" type="String" values="methodC"/> +<link_argument index="2" type="MethodType" value="()V"/> </call_site> -<call_site index="6" offset="8510"> -<link_argument index="0" type="MethodHandle" value="5"/> -<link_argument index="1" type="String" values="targetMethodTest6"/> -<link_argument index="2" type="MethodType" value="(JJJ)J"/> +<call_site index="34" offset="30018"> +<link_argument index="0" type="MethodHandle" value="24"/> +<link_argument index="1" type="String" values="methodD"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="int" value="101"/> +<link_argument index="4" type="String" value="zoo"/> +<link_argument index="5" type="String" value="zoogene"/> +<link_argument index="6" type="String" value="zoogenic"/> </call_site> -<call_site index="7" offset="8517"> -<link_argument index="0" type="MethodHandle" value="5"/> -<link_argument index="1" type="String" values="targetMethodTest7"/> -<link_argument index="2" type="MethodType" value="(FFD)D"/> +<call_site index="35" offset="30037"> +<link_argument index="0" type="MethodHandle" value="24"/> +<link_argument index="1" type="String" values="methodE"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="int" value="102"/> +<link_argument index="4" type="String" value="zonic"/> </call_site> -<call_site index="8" offset="8524"> -<link_argument index="0" type="MethodHandle" value="5"/> -<link_argument index="1" type="String" values="targetMethodTest8"/> -<link_argument index="2" type="MethodType" value="(Ljava/lang/String;)V"/> +<call_site index="36" offset="30050"> +<link_argument index="0" type="MethodHandle" value="24"/> +<link_argument index="1" type="String" values="methodF"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="int" value="103"/> </call_site> -<call_site index="9" offset="8524"> -<link_argument index="0" type="MethodHandle" value="5"/> -<link_argument index="1" type="String" values="targetMethodTest8"/> -<link_argument index="2" type="MethodType" value="(Ljava/lang/String;)V"/> +<call_site index="37" offset="30060"> +<link_argument index="0" type="MethodHandle" value="25"/> +<link_argument index="1" type="String" values="methodG"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="long" value="81985529216486895"/> +<link_argument index="4" type="int" value="1"/> +<link_argument index="5" type="int" value="-1"/> +<link_argument index="6" type="int" value="2"/> +<link_argument index="7" type="int" value="-2"/> </call_site> -<call_site index="10" offset="8524"> -<link_argument index="0" type="MethodHandle" value="5"/> -<link_argument index="1" type="String" values="targetMethodTest8"/> -<link_argument index="2" type="MethodType" value="(Ljava/lang/String;)V"/> +<call_site index="38" offset="30085"> +<link_argument index="0" type="MethodHandle" value="23"/> +<link_argument index="1" type="String" values="methodH"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="float" value="-2.71828"/> +<link_argument index="4" type="long" value="999999999999"/> +<link_argument index="5" type="long" value="-8888888888888"/> </call_site> -<call_site index="11" offset="8531"> -<link_argument index="0" type="MethodHandle" value="6"/> -<link_argument index="1" type="String" values="targetMethodTest3"/> +<call_site index="39" offset="30112"> +<link_argument index="0" type="MethodHandle" value="20"/> +<link_argument index="1" type="String" values="methodI"/> <link_argument index="2" type="MethodType" value="()V"/> -<link_argument index="3" type="int" value="1"/> -<link_argument index="4" type="long" value="123456789"/> -<link_argument index="5" type="float" value="123.456"/> -<link_argument index="6" type="double" value="123457"/> +<link_argument index="3" type="Class" value="Ljava/lang/Throwable;"/> +<link_argument index="4" type="float" value="3.40282e+38"/> +<link_argument index="5" type="float" value="1.4013e-45"/> +<link_argument index="6" type="float" value="3.14159"/> +<link_argument index="7" type="float" value="-3.14159"/> </call_site> -<call_site index="12" offset="8559"> -<link_argument index="0" type="MethodHandle" value="4"/> -<link_argument index="1" type="String" values="targetMethodTest4"/> -<link_argument index="2" type="MethodType" value="(Linvokecustom/InvokeCustom;)V"/> -<link_argument index="3" type="MethodHandle" value="14"/> +<call_site index="40" offset="30142"> +<link_argument index="0" type="MethodHandle" value="22"/> +<link_argument index="1" type="String" values="methodJ"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="double" value="1.79769e+308"/> +<link_argument index="4" type="double" value="4.94066e-324"/> +<link_argument index="5" type="double" value="2.71828"/> +<link_argument index="6" type="double" value="-3.14159"/> </call_site> -<call_site index="13" offset="8568"> -<link_argument index="0" type="MethodHandle" value="7"/> -<link_argument index="1" type="String" values="targetMethodTest9"/> +<call_site index="41" offset="30186"> +<link_argument index="0" type="MethodHandle" value="21"/> +<link_argument index="1" type="String" values="methodK"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="Class" value="Ljava/lang/Integer;"/> +<link_argument index="4" type="Class" value="Ljava/lang/invoke/MethodHandles;"/> +<link_argument index="5" type="Class" value="Ljava/util/Arrays;"/> +</call_site> +<call_site index="42" offset="30200"> +<link_argument index="0" type="MethodHandle" value="24"/> +<link_argument index="1" type="String" values="methodO"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="int" value="103"/> +<link_argument index="4" type="int" value="104"/> +</call_site> +<call_site index="43" offset="30212"> +<link_argument index="0" type="MethodHandle" value="24"/> +<link_argument index="1" type="String" values="methodP"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="int" value="103"/> +<link_argument index="4" type="String" value="A"/> +<link_argument index="5" type="String" value="B"/> +<link_argument index="6" type="int" value="42"/> +</call_site> +<call_site index="44" offset="30228"> +<link_argument index="0" type="MethodHandle" value="27"/> +<link_argument index="1" type="String" values="methodQ"/> +<link_argument index="2" type="MethodType" value="()V"/> +<link_argument index="3" type="int" value="103"/> +<link_argument index="4" type="int" value="42"/> +</call_site> +<call_site index="45" offset="30240"> +<link_argument index="0" type="MethodHandle" value="19"/> +<link_argument index="1" type="String" values="methodR"/> <link_argument index="2" type="MethodType" value="()V"/> -<link_argument index="3" type="MethodHandle" value="1"/> -<link_argument index="4" type="MethodHandle" value="0"/> -<link_argument index="5" type="MethodHandle" value="3"/> -<link_argument index="6" type="MethodHandle" value="2"/> -<link_argument index="7" type="MethodHandle" value="10"/> -<link_argument index="8" type="MethodHandle" value="13"/> -<link_argument index="9" type="MethodHandle" value="15"/> +<link_argument index="3" type="int" value="1030"/> +<link_argument index="4" type="int" value="420"/> </call_site> </package> </api> |