summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dexdump/dexdump.cc5
-rw-r--r--test/dexdump/invoke-custom.dexbin8984 -> 31732 bytes
-rw-r--r--test/dexdump/invoke-custom.lst178
-rw-r--r--test/dexdump/invoke-custom.txt6610
-rw-r--r--test/dexdump/invoke-custom.xml844
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
index dab6f0f0d6..c7de9dedf0 100644
--- a/test/dexdump/invoke-custom.dex
+++ b/test/dexdump/invoke-custom.dex
Binary files differ
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>