blob: 1bfa0532b2e2313a1d2c9e3b3cbf4a5035f051c1 [file] [log] [blame]
Orion Hodsonc069a302017-01-18 09:23:12 +00001Processing 'invoke-custom.dex'...
2Opened 'invoke-custom.dex', DEX version '038'
3DEX file header:
4magic : 'dex\n038\0'
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005checksum : dc722174
6signature : b59a...f803
7file_size : 31732
Orion Hodsonc069a302017-01-18 09:23:12 +00008header_size : 112
9link_size : 0
10link_off : 0 (0x000000)
Orion Hodson0f6cc7f2018-05-25 15:33:44 +010011string_ids_size : 478
Orion Hodsonc069a302017-01-18 09:23:12 +000012string_ids_off : 112 (0x000070)
Orion Hodson0f6cc7f2018-05-25 15:33:44 +010013type_ids_size : 77
14type_ids_off : 2024 (0x0007e8)
15proto_ids_size : 91
16proto_ids_off : 2332 (0x00091c)
17field_ids_size : 21
18field_ids_off : 3424 (0x000d60)
19method_ids_size : 243
20method_ids_off : 3592 (0x000e08)
21class_defs_size : 14
22class_defs_off : 5536 (0x0015a0)
23data_size : 25332
24data_off : 6400 (0x001900)
Orion Hodsonc069a302017-01-18 09:23:12 +000025
26Class #0 header:
Orion Hodson0f6cc7f2018-05-25 15:33:44 +010027class_idx : 7
28access_flags : 0 (0x0000)
29superclass_idx : 52
Orion Hodsonc069a302017-01-18 09:23:12 +000030interfaces_off : 0 (0x000000)
Orion Hodson0f6cc7f2018-05-25 15:33:44 +010031source_file_idx : 144
32annotations_off : 30700 (0x0077ec)
33class_data_off : 28922 (0x0070fa)
Orion Hodson775224d2017-07-05 11:04:01 +010034static_fields_size : 0
Orion Hodsonc069a302017-01-18 09:23:12 +000035instance_fields_size: 0
Orion Hodson775224d2017-07-05 11:04:01 +010036direct_methods_size : 1
Orion Hodson0f6cc7f2018-05-25 15:33:44 +010037virtual_methods_size: 0
38
39Class #0 annotations:
40Annotations on class
41 VISIBILITY_SYSTEM Ldalvik/annotation/EnclosingClass; value=LTestBadBootstrapArguments;
42 VISIBILITY_SYSTEM Ldalvik/annotation/InnerClass; accessFlags=8 name="TestersConstantCallSite"
Orion Hodsonc069a302017-01-18 09:23:12 +000043
44Class #0 -
Orion Hodson0f6cc7f2018-05-25 15:33:44 +010045 Class descriptor : 'LTestBadBootstrapArguments$TestersConstantCallSite;'
46 Access flags : 0x0000 ()
47 Superclass : 'Ljava/lang/invoke/ConstantCallSite;'
48 Interfaces -
49 Static fields -
50 Instance fields -
51 Direct methods -
52 #0 : (in LTestBadBootstrapArguments$TestersConstantCallSite;)
53 name : '<init>'
54 type : '(Ljava/lang/invoke/MethodHandle;)V'
55 access : 0x10001 (PUBLIC CONSTRUCTOR)
56 code -
57 registers : 2
58 ins : 2
59 outs : 2
60 insns size : 4 16-bit code units
Orion Hodsonfe42d212018-08-24 14:01:14 +010061001b18: |[001b18] TestBadBootstrapArguments$TestersConstantCallSite.<init>:(Ljava/lang/invoke/MethodHandle;)V
Orion Hodson0f6cc7f2018-05-25 15:33:44 +010062001b28: 7020 d200 1000 |0000: invoke-direct {v0, v1}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
63001b2e: 0e00 |0003: return-void
64 catches : (none)
65 positions :
66 0x0000 line=449
67 0x0003 line=450
68 locals :
69 0x0000 - 0x0004 reg=0 this LTestBadBootstrapArguments$TestersConstantCallSite;
70 0x0000 - 0x0004 reg=1 mh Ljava/lang/invoke/MethodHandle;
71
72 Virtual methods -
73 source_file_idx : 144 (TestBadBootstrapArguments.java)
74
75Class #1 header:
76class_idx : 9
77access_flags : 1024 (0x0400)
78superclass_idx : 42
79interfaces_off : 0 (0x000000)
80source_file_idx : 145
81annotations_off : 0 (0x000000)
82class_data_off : 28932 (0x007104)
83static_fields_size : 0
84instance_fields_size: 0
85direct_methods_size : 13
86virtual_methods_size: 0
87
88Class #1 -
89 Class descriptor : 'LTestBase;'
Orion Hodson775224d2017-07-05 11:04:01 +010090 Access flags : 0x0400 (ABSTRACT)
Orion Hodsonc069a302017-01-18 09:23:12 +000091 Superclass : 'Ljava/lang/Object;'
92 Interfaces -
93 Static fields -
Orion Hodsonc069a302017-01-18 09:23:12 +000094 Instance fields -
95 Direct methods -
Orion Hodson0f6cc7f2018-05-25 15:33:44 +010096 #0 : (in LTestBase;)
Orion Hodsonc069a302017-01-18 09:23:12 +000097 name : '<init>'
98 type : '()V'
Orion Hodson775224d2017-07-05 11:04:01 +010099 access : 0x10000 (CONSTRUCTOR)
Orion Hodsonc069a302017-01-18 09:23:12 +0000100 code -
101 registers : 1
102 ins : 1
103 outs : 1
104 insns size : 4 16-bit code units
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100105002544: |[002544] TestBase.<init>:()V
106002554: 7010 bf00 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@00bf
10700255a: 0e00 |0003: return-void
Orion Hodsonc069a302017-01-18 09:23:12 +0000108 catches : (none)
109 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100110 0x0000 line=19
Orion Hodsonc069a302017-01-18 09:23:12 +0000111 locals :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100112 0x0000 - 0x0004 reg=0 this LTestBase;
Orion Hodsonc069a302017-01-18 09:23:12 +0000113
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100114 #1 : (in LTestBase;)
115 name : 'assertEquals'
116 type : '(BB)V'
117 access : 0x0008 (STATIC)
Orion Hodsonc069a302017-01-18 09:23:12 +0000118 code -
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100119 registers : 5
120 ins : 2
Orion Hodsonc069a302017-01-18 09:23:12 +0000121 outs : 2
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100122 insns size : 34 16-bit code units
12300255c: |[00255c] TestBase.assertEquals:(BB)V
12400256c: 3343 0300 |0000: if-ne v3, v4, 0003 // +0003
125002570: 0e00 |0002: return-void
126002572: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e
127002576: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d
12800257a: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
129002580: 1a02 d300 |000a: const-string v2, "assertEquals b1: " // string@00d3
130002584: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
13100258a: 6e20 c500 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5
132002590: 1a02 0d00 |0012: const-string v2, ", b2: " // string@000d
133002594: 6e20 c800 2100 |0014: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
13400259a: 6e20 c500 4100 |0017: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5
1350025a0: 6e10 ca00 0100 |001a: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
1360025a6: 0c01 |001d: move-result-object v1
1370025a8: 7020 b500 1000 |001e: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5
1380025ae: 2700 |0021: throw v0
Orion Hodsonc069a302017-01-18 09:23:12 +0000139 catches : (none)
140 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100141 0x0000 line=27
142 0x0002 line=28
143 0x0003 line=30
Orion Hodsonc069a302017-01-18 09:23:12 +0000144 locals :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100145 0x0000 - 0x0022 reg=3 b1 B
146 0x0000 - 0x0022 reg=4 b2 B
Orion Hodsonc069a302017-01-18 09:23:12 +0000147
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100148 #2 : (in LTestBase;)
149 name : 'assertEquals'
150 type : '(CC)V'
151 access : 0x0008 (STATIC)
Orion Hodson775224d2017-07-05 11:04:01 +0100152 code -
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100153 registers : 5
154 ins : 2
155 outs : 2
156 insns size : 34 16-bit code units
1570025b0: |[0025b0] TestBase.assertEquals:(CC)V
1580025c0: 3343 0300 |0000: if-ne v3, v4, 0003 // +0003
1590025c4: 0e00 |0002: return-void
1600025c6: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e
1610025ca: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d
1620025ce: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
1630025d4: 1a02 d400 |000a: const-string v2, "assertEquals c1: " // string@00d4
1640025d8: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
1650025de: 6e20 c200 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(C)Ljava/lang/StringBuilder; // method@00c2
1660025e4: 1a02 0e00 |0012: const-string v2, ", c2: " // string@000e
1670025e8: 6e20 c800 2100 |0014: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
1680025ee: 6e20 c200 4100 |0017: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(C)Ljava/lang/StringBuilder; // method@00c2
1690025f4: 6e10 ca00 0100 |001a: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
1700025fa: 0c01 |001d: move-result-object v1
1710025fc: 7020 b500 1000 |001e: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5
172002602: 2700 |0021: throw v0
Orion Hodson775224d2017-07-05 11:04:01 +0100173 catches : (none)
174 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100175 0x0000 line=34
176 0x0002 line=35
177 0x0003 line=37
Orion Hodson775224d2017-07-05 11:04:01 +0100178 locals :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100179 0x0000 - 0x0022 reg=3 c1 C
180 0x0000 - 0x0022 reg=4 c2 C
Orion Hodson775224d2017-07-05 11:04:01 +0100181
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100182 #3 : (in LTestBase;)
183 name : 'assertEquals'
184 type : '(DD)V'
185 access : 0x0008 (STATIC)
186 code -
187 registers : 7
188 ins : 4
189 outs : 3
190 insns size : 36 16-bit code units
191002604: |[002604] TestBase.assertEquals:(DD)V
192002614: 2f00 0305 |0000: cmpl-double v0, v3, v5
193002618: 3900 0300 |0002: if-nez v0, 0005 // +0003
19400261c: 0e00 |0004: return-void
19500261e: 2200 1e00 |0005: new-instance v0, Ljava/lang/AssertionError; // type@001e
196002622: 2201 2d00 |0007: new-instance v1, Ljava/lang/StringBuilder; // type@002d
197002626: 7010 c100 0100 |0009: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
19800262c: 1a02 d500 |000c: const-string v2, "assertEquals d1: " // string@00d5
199002630: 6e20 c800 2100 |000e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
200002636: 6e30 c300 3104 |0011: invoke-virtual {v1, v3, v4}, Ljava/lang/StringBuilder;.append:(D)Ljava/lang/StringBuilder; // method@00c3
20100263c: 1a02 0f00 |0014: const-string v2, ", d2: " // string@000f
202002640: 6e20 c800 2100 |0016: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
203002646: 6e30 c300 5106 |0019: invoke-virtual {v1, v5, v6}, Ljava/lang/StringBuilder;.append:(D)Ljava/lang/StringBuilder; // method@00c3
20400264c: 6e10 ca00 0100 |001c: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
205002652: 0c01 |001f: move-result-object v1
206002654: 7020 b500 1000 |0020: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5
20700265a: 2700 |0023: throw v0
208 catches : (none)
209 positions :
210 0x0000 line=69
211 0x0004 line=70
212 0x0005 line=72
213 locals :
214 0x0000 - 0x0024 reg=3 d1 D
215 0x0000 - 0x0024 reg=5 d2 D
216
217 #4 : (in LTestBase;)
218 name : 'assertEquals'
219 type : '(FF)V'
220 access : 0x0008 (STATIC)
221 code -
222 registers : 5
223 ins : 2
224 outs : 2
225 insns size : 36 16-bit code units
22600265c: |[00265c] TestBase.assertEquals:(FF)V
22700266c: 2d00 0304 |0000: cmpl-float v0, v3, v4
228002670: 3900 0300 |0002: if-nez v0, 0005 // +0003
229002674: 0e00 |0004: return-void
230002676: 2200 1e00 |0005: new-instance v0, Ljava/lang/AssertionError; // type@001e
23100267a: 2201 2d00 |0007: new-instance v1, Ljava/lang/StringBuilder; // type@002d
23200267e: 7010 c100 0100 |0009: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
233002684: 1a02 d600 |000c: const-string v2, "assertEquals f1: " // string@00d6
234002688: 6e20 c800 2100 |000e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
23500268e: 6e20 c400 3100 |0011: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(F)Ljava/lang/StringBuilder; // method@00c4
236002694: 1a02 1000 |0014: const-string v2, ", f2: " // string@0010
237002698: 6e20 c800 2100 |0016: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
23800269e: 6e20 c400 4100 |0019: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(F)Ljava/lang/StringBuilder; // method@00c4
2390026a4: 6e10 ca00 0100 |001c: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
2400026aa: 0c01 |001f: move-result-object v1
2410026ac: 7020 b500 1000 |0020: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5
2420026b2: 2700 |0023: throw v0
243 catches : (none)
244 positions :
245 0x0000 line=62
246 0x0004 line=63
247 0x0005 line=65
248 locals :
249 0x0000 - 0x0024 reg=3 f1 F
250 0x0000 - 0x0024 reg=4 f2 F
251
252 #5 : (in LTestBase;)
253 name : 'assertEquals'
254 type : '(II)V'
255 access : 0x0008 (STATIC)
256 code -
257 registers : 5
258 ins : 2
259 outs : 2
260 insns size : 34 16-bit code units
2610026b4: |[0026b4] TestBase.assertEquals:(II)V
2620026c4: 3343 0300 |0000: if-ne v3, v4, 0003 // +0003
2630026c8: 0e00 |0002: return-void
2640026ca: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e
2650026ce: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d
2660026d2: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
2670026d8: 1a02 d700 |000a: const-string v2, "assertEquals i1: " // string@00d7
2680026dc: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
2690026e2: 6e20 c500 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5
2700026e8: 1a02 1100 |0012: const-string v2, ", i2: " // string@0011
2710026ec: 6e20 c800 2100 |0014: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
2720026f2: 6e20 c500 4100 |0017: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5
2730026f8: 6e10 ca00 0100 |001a: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
2740026fe: 0c01 |001d: move-result-object v1
275002700: 7020 b500 1000 |001e: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5
276002706: 2700 |0021: throw v0
277 catches : (none)
278 positions :
279 0x0000 line=48
280 0x0002 line=49
281 0x0003 line=51
282 locals :
283 0x0000 - 0x0022 reg=3 i1 I
284 0x0000 - 0x0022 reg=4 i2 I
285
286 #6 : (in LTestBase;)
287 name : 'assertEquals'
288 type : '(JJ)V'
289 access : 0x0008 (STATIC)
290 code -
291 registers : 7
292 ins : 4
293 outs : 3
294 insns size : 36 16-bit code units
295002764: |[002764] TestBase.assertEquals:(JJ)V
296002774: 3100 0305 |0000: cmp-long v0, v3, v5
297002778: 3900 0300 |0002: if-nez v0, 0005 // +0003
29800277c: 0e00 |0004: return-void
29900277e: 2200 1e00 |0005: new-instance v0, Ljava/lang/AssertionError; // type@001e
300002782: 2201 2d00 |0007: new-instance v1, Ljava/lang/StringBuilder; // type@002d
301002786: 7010 c100 0100 |0009: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
30200278c: 1a02 d800 |000c: const-string v2, "assertEquals l1: " // string@00d8
303002790: 6e20 c800 2100 |000e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
304002796: 6e30 c600 3104 |0011: invoke-virtual {v1, v3, v4}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@00c6
30500279c: 1a02 1200 |0014: const-string v2, ", l2: " // string@0012
3060027a0: 6e20 c800 2100 |0016: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
3070027a6: 6e30 c600 5106 |0019: invoke-virtual {v1, v5, v6}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@00c6
3080027ac: 6e10 ca00 0100 |001c: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
3090027b2: 0c01 |001f: move-result-object v1
3100027b4: 7020 b500 1000 |0020: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5
3110027ba: 2700 |0023: throw v0
312 catches : (none)
313 positions :
314 0x0000 line=55
315 0x0004 line=56
316 0x0005 line=58
317 locals :
318 0x0000 - 0x0024 reg=3 l1 J
319 0x0000 - 0x0024 reg=5 l2 J
320
321 #7 : (in LTestBase;)
322 name : 'assertEquals'
323 type : '(Ljava/lang/Object;Ljava/lang/Object;)V'
324 access : 0x0008 (STATIC)
325 code -
326 registers : 5
327 ins : 2
328 outs : 2
329 insns size : 38 16-bit code units
330002708: |[002708] TestBase.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
331002718: 7120 ec00 4300 |0000: invoke-static {v3, v4}, Ljava/util/Objects;.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z // method@00ec
33200271e: 0a00 |0003: move-result v0
333002720: 3800 0300 |0004: if-eqz v0, 0007 // +0003
334002724: 0e00 |0006: return-void
335002726: 2200 1e00 |0007: new-instance v0, Ljava/lang/AssertionError; // type@001e
33600272a: 2201 2d00 |0009: new-instance v1, Ljava/lang/StringBuilder; // type@002d
33700272e: 7010 c100 0100 |000b: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
338002734: 1a02 da00 |000e: const-string v2, "assertEquals: o1: " // string@00da
339002738: 6e20 c800 2100 |0010: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
34000273e: 6e20 c700 3100 |0013: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7
341002744: 1a02 1300 |0016: const-string v2, ", o2: " // string@0013
342002748: 6e20 c800 2100 |0018: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
34300274e: 6e20 c700 4100 |001b: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7
344002754: 6e10 ca00 0100 |001e: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
34500275a: 0c01 |0021: move-result-object v1
34600275c: 7020 b500 1000 |0022: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5
347002762: 2700 |0025: throw v0
348 catches : (none)
349 positions :
350 0x0000 line=76
351 0x0006 line=79
352 0x0007 line=77
353 locals :
354 0x0000 - 0x0026 reg=3 o Ljava/lang/Object;
355 0x0000 - 0x0026 reg=4 p Ljava/lang/Object;
356
357 #8 : (in LTestBase;)
358 name : 'assertEquals'
359 type : '(SS)V'
360 access : 0x0008 (STATIC)
361 code -
362 registers : 5
363 ins : 2
364 outs : 2
365 insns size : 34 16-bit code units
3660027bc: |[0027bc] TestBase.assertEquals:(SS)V
3670027cc: 3343 0300 |0000: if-ne v3, v4, 0003 // +0003
3680027d0: 0e00 |0002: return-void
3690027d2: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e
3700027d6: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d
3710027da: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
3720027e0: 1a02 d900 |000a: const-string v2, "assertEquals s1: " // string@00d9
3730027e4: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
3740027ea: 6e20 c500 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5
3750027f0: 1a02 1400 |0012: const-string v2, ", s2: " // string@0014
3760027f4: 6e20 c800 2100 |0014: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
3770027fa: 6e20 c500 4100 |0017: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5
378002800: 6e10 ca00 0100 |001a: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
379002806: 0c01 |001d: move-result-object v1
380002808: 7020 b500 1000 |001e: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5
38100280e: 2700 |0021: throw v0
382 catches : (none)
383 positions :
384 0x0000 line=41
385 0x0002 line=42
386 0x0003 line=44
387 locals :
388 0x0000 - 0x0022 reg=3 s1 S
389 0x0000 - 0x0022 reg=4 s2 S
390
391 #9 : (in LTestBase;)
392 name : 'assertNotEquals'
393 type : '(Ljava/lang/Object;Ljava/lang/Object;)V'
394 access : 0x0008 (STATIC)
395 code -
396 registers : 5
397 ins : 2
398 outs : 2
399 insns size : 38 16-bit code units
400002810: |[002810] TestBase.assertNotEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
401002820: 7120 ec00 4300 |0000: invoke-static {v3, v4}, Ljava/util/Objects;.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z // method@00ec
402002826: 0a00 |0003: move-result v0
403002828: 3900 0300 |0004: if-nez v0, 0007 // +0003
40400282c: 0e00 |0006: return-void
40500282e: 2200 1e00 |0007: new-instance v0, Ljava/lang/AssertionError; // type@001e
406002832: 2201 2d00 |0009: new-instance v1, Ljava/lang/StringBuilder; // type@002d
407002836: 7010 c100 0100 |000b: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
40800283c: 1a02 dc00 |000e: const-string v2, "assertNotEquals: o1: " // string@00dc
409002840: 6e20 c800 2100 |0010: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
410002846: 6e20 c700 3100 |0013: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7
41100284c: 1a02 1300 |0016: const-string v2, ", o2: " // string@0013
412002850: 6e20 c800 2100 |0018: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
413002856: 6e20 c700 4100 |001b: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7
41400285c: 6e10 ca00 0100 |001e: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
415002862: 0c01 |0021: move-result-object v1
416002864: 7020 b500 1000 |0022: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5
41700286a: 2700 |0025: throw v0
418 catches : (none)
419 positions :
420 0x0000 line=82
421 0x0006 line=85
422 0x0007 line=83
423 locals :
424 0x0000 - 0x0026 reg=3 o Ljava/lang/Object;
425 0x0000 - 0x0026 reg=4 p Ljava/lang/Object;
426
427 #10 : (in LTestBase;)
428 name : 'assertNotReached'
Orion Hodson775224d2017-07-05 11:04:01 +0100429 type : '()V'
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100430 access : 0x0008 (STATIC)
Orion Hodson775224d2017-07-05 11:04:01 +0100431 code -
432 registers : 2
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100433 ins : 0
434 outs : 2
435 insns size : 8 16-bit code units
43600286c: |[00286c] TestBase.assertNotReached:()V
43700287c: 2200 1e00 |0000: new-instance v0, Ljava/lang/AssertionError; // type@001e
438002880: 1a01 a300 |0002: const-string v1, "Unreachable" // string@00a3
439002884: 7020 b500 1000 |0004: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5
44000288a: 2700 |0007: throw v0
Orion Hodson775224d2017-07-05 11:04:01 +0100441 catches : (none)
442 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100443 0x0000 line=88
Orion Hodson775224d2017-07-05 11:04:01 +0100444 locals :
Orion Hodson775224d2017-07-05 11:04:01 +0100445
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100446 #11 : (in LTestBase;)
447 name : 'assertTrue'
448 type : '(Z)V'
449 access : 0x0008 (STATIC)
450 code -
451 registers : 4
452 ins : 1
453 outs : 2
454 insns size : 26 16-bit code units
45500288c: |[00288c] TestBase.assertTrue:(Z)V
45600289c: 3803 0300 |0000: if-eqz v3, 0003 // +0003
4570028a0: 0e00 |0002: return-void
4580028a2: 2200 1e00 |0003: new-instance v0, Ljava/lang/AssertionError; // type@001e
4590028a6: 2201 2d00 |0005: new-instance v1, Ljava/lang/StringBuilder; // type@002d
4600028aa: 7010 c100 0100 |0007: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
4610028b0: 1a02 df00 |000a: const-string v2, "assertTrue value: " // string@00df
4620028b4: 6e20 c800 2100 |000c: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
4630028ba: 6e20 c900 3100 |000f: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(Z)Ljava/lang/StringBuilder; // method@00c9
4640028c0: 6e10 ca00 0100 |0012: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
4650028c6: 0c01 |0015: move-result-object v1
4660028c8: 7020 b500 1000 |0016: invoke-direct {v0, v1}, Ljava/lang/AssertionError;.<init>:(Ljava/lang/Object;)V // method@00b5
4670028ce: 2700 |0019: throw v0
468 catches : (none)
469 positions :
470 0x0000 line=21
471 0x0002 line=24
472 0x0003 line=22
473 locals :
474 0x0000 - 0x001a reg=3 value Z
475
476 #12 : (in LTestBase;)
477 name : 'fail'
478 type : '()V'
479 access : 0x0008 (STATIC)
480 code -
481 registers : 2
482 ins : 0
483 outs : 2
484 insns size : 11 16-bit code units
4850028d0: |[0028d0] TestBase.fail:()V
4860028e0: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
4870028e4: 1a01 2601 |0002: const-string v1, "fail" // string@0126
4880028e8: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
4890028ee: 7100 cc00 0000 |0007: invoke-static {}, Ljava/lang/Thread;.dumpStack:()V // method@00cc
4900028f4: 0e00 |000a: return-void
491 catches : (none)
492 positions :
493 0x0000 line=92
494 0x0007 line=93
495 0x000a line=94
496 locals :
497
498 Virtual methods -
499 source_file_idx : 145 (TestBase.java)
500
501Class #2 header:
502class_idx : 11
503access_flags : 0 (0x0000)
504superclass_idx : 42
505interfaces_off : 0 (0x000000)
506source_file_idx : 148
507annotations_off : 30716 (0x0077fc)
508class_data_off : 28990 (0x00713e)
509static_fields_size : 0
510instance_fields_size: 1
511direct_methods_size : 1
512virtual_methods_size: 0
513
514Class #2 annotations:
515Annotations on class
516 VISIBILITY_SYSTEM Ldalvik/annotation/EnclosingClass; value=LTestInvocationKinds;
517 VISIBILITY_SYSTEM Ldalvik/annotation/InnerClass; accessFlags=8 name="Widget"
518
519Class #2 -
520 Class descriptor : 'LTestInvocationKinds$Widget;'
521 Access flags : 0x0000 ()
522 Superclass : 'Ljava/lang/Object;'
523 Interfaces -
524 Static fields -
525 Instance fields -
526 #0 : (in LTestInvocationKinds$Widget;)
527 name : 'value'
528 type : 'I'
529 access : 0x0000 ()
530 Direct methods -
531 #0 : (in LTestInvocationKinds$Widget;)
Orion Hodson775224d2017-07-05 11:04:01 +0100532 name : '<init>'
533 type : '(I)V'
534 access : 0x10001 (PUBLIC CONSTRUCTOR)
535 code -
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100536 registers : 2
Orion Hodson775224d2017-07-05 11:04:01 +0100537 ins : 2
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100538 outs : 1
539 insns size : 4 16-bit code units
Orion Hodsonfe42d212018-08-24 14:01:14 +0100540002abc: |[002abc] TestInvocationKinds$Widget.<init>:(I)V
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100541002acc: 7010 bf00 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@00bf
542002ad2: 0e00 |0003: return-void
Orion Hodson775224d2017-07-05 11:04:01 +0100543 catches : (none)
544 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100545 0x0000 line=177
Orion Hodson775224d2017-07-05 11:04:01 +0100546 locals :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100547 0x0000 - 0x0004 reg=0 this LTestInvocationKinds$Widget;
548 0x0000 - 0x0004 reg=1 value I
Orion Hodson775224d2017-07-05 11:04:01 +0100549
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100550 Virtual methods -
551 source_file_idx : 148 (TestInvocationKinds.java)
552
553Class #3 header:
554class_idx : 13
555access_flags : 0 (0x0000)
556superclass_idx : 48
557interfaces_off : 0 (0x000000)
558source_file_idx : 149
559annotations_off : 30732 (0x00780c)
560class_data_off : 29002 (0x00714a)
561static_fields_size : 0
562instance_fields_size: 0
563direct_methods_size : 1
564virtual_methods_size: 2
565
566Class #3 annotations:
567Annotations on class
568 VISIBILITY_SYSTEM Ldalvik/annotation/EnclosingClass; value=LTestInvokeCustomWithConcurrentThreads;
569 VISIBILITY_SYSTEM Ldalvik/annotation/InnerClass; accessFlags=0 name=null
570 VISIBILITY_SYSTEM Ldalvik/annotation/Signature; value={ "Ljava/lang/ThreadLocal<" "Ljava/lang/Integer;" ">;" }
571
572Class #3 -
573 Class descriptor : 'LTestInvokeCustomWithConcurrentThreads$1;'
574 Access flags : 0x0000 ()
575 Superclass : 'Ljava/lang/ThreadLocal;'
576 Interfaces -
577 Static fields -
578 Instance fields -
579 Direct methods -
580 #0 : (in LTestInvokeCustomWithConcurrentThreads$1;)
581 name : '<init>'
582 type : '()V'
583 access : 0x10000 (CONSTRUCTOR)
Orion Hodson775224d2017-07-05 11:04:01 +0100584 code -
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100585 registers : 1
586 ins : 1
587 outs : 1
588 insns size : 4 16-bit code units
Orion Hodsonfe42d212018-08-24 14:01:14 +0100589002ee8: |[002ee8] TestInvokeCustomWithConcurrentThreads$1.<init>:()V
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100590002ef8: 7010 cf00 0000 |0000: invoke-direct {v0}, Ljava/lang/ThreadLocal;.<init>:()V // method@00cf
591002efe: 0e00 |0003: return-void
592 catches : (none)
593 positions :
594 0x0000 line=33
595 locals :
596 0x0000 - 0x0004 reg=0 this LTestInvokeCustomWithConcurrentThreads$1;
597
598 Virtual methods -
599 #0 : (in LTestInvokeCustomWithConcurrentThreads$1;)
600 name : 'initialValue'
601 type : '()Ljava/lang/Integer;'
602 access : 0x0004 (PROTECTED)
603 code -
604 registers : 2
605 ins : 1
606 outs : 1
607 insns size : 13 16-bit code units
Orion Hodsonfe42d212018-08-24 14:01:14 +0100608002ea0: |[002ea0] TestInvokeCustomWithConcurrentThreads$1.initialValue:()Ljava/lang/Integer;
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100609002eb0: 7100 6500 0000 |0000: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.access$000:()Ljava/util/concurrent/atomic/AtomicInteger; // method@0065
610002eb6: 0c00 |0003: move-result-object v0
611002eb8: 6e10 f100 0000 |0004: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.getAndIncrement:()I // method@00f1
612002ebe: 0a00 |0007: move-result v0
613002ec0: 7110 bd00 0000 |0008: invoke-static {v0}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd
614002ec6: 0c00 |000b: move-result-object v0
615002ec8: 1100 |000c: return-object v0
616 catches : (none)
617 positions :
618 0x0000 line=36
619 locals :
620 0x0000 - 0x000d reg=1 this LTestInvokeCustomWithConcurrentThreads$1;
621
622 #1 : (in LTestInvokeCustomWithConcurrentThreads$1;)
623 name : 'initialValue'
624 type : '()Ljava/lang/Object;'
625 access : 0x1044 (PROTECTED BRIDGE SYNTHETIC)
626 code -
627 registers : 2
628 ins : 1
629 outs : 1
630 insns size : 5 16-bit code units
Orion Hodsonfe42d212018-08-24 14:01:14 +0100631002ecc: |[002ecc] TestInvokeCustomWithConcurrentThreads$1.initialValue:()Ljava/lang/Object;
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100632002edc: 6e10 6100 0100 |0000: invoke-virtual {v1}, LTestInvokeCustomWithConcurrentThreads$1;.initialValue:()Ljava/lang/Integer; // method@0061
633002ee2: 0c00 |0003: move-result-object v0
634002ee4: 1100 |0004: return-object v0
635 catches : (none)
636 positions :
637 0x0000 line=33
638 locals :
639 0x0000 - 0x0005 reg=1 this LTestInvokeCustomWithConcurrentThreads$1;
640
641 source_file_idx : 149 (TestInvokeCustomWithConcurrentThreads.java)
642
643Class #4 header:
644class_idx : 19
645access_flags : 0 (0x0000)
646superclass_idx : 42
647interfaces_off : 0 (0x000000)
648source_file_idx : 164
649annotations_off : 30748 (0x00781c)
650class_data_off : 29021 (0x00715d)
651static_fields_size : 0
652instance_fields_size: 0
653direct_methods_size : 2
654virtual_methods_size: 0
655
656Class #4 annotations:
657Annotations on method #170 'bsm'
658 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;" }
659 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
660
661Class #4 -
662 Class descriptor : 'LUnrelatedBSM;'
663 Access flags : 0x0000 ()
664 Superclass : 'Ljava/lang/Object;'
665 Interfaces -
666 Static fields -
667 Instance fields -
668 Direct methods -
669 #0 : (in LUnrelatedBSM;)
670 name : '<init>'
671 type : '()V'
672 access : 0x10000 (CONSTRUCTOR)
673 code -
674 registers : 1
675 ins : 1
676 outs : 1
677 insns size : 4 16-bit code units
678003fc8: |[003fc8] UnrelatedBSM.<init>:()V
679003fd8: 7010 bf00 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@00bf
680003fde: 0e00 |0003: return-void
681 catches : (none)
682 positions :
683 0x0000 line=23
684 locals :
685 0x0000 - 0x0004 reg=0 this LUnrelatedBSM;
686
687 #1 : (in LUnrelatedBSM;)
688 name : 'bsm'
689 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/CallSite;'
690 access : 0x0008 (STATIC)
691 code -
692 registers : 6
Orion Hodson775224d2017-07-05 11:04:01 +0100693 ins : 4
Orion Hodson775224d2017-07-05 11:04:01 +0100694 outs : 4
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100695 insns size : 10 16-bit code units
696003fa4: |[003fa4] UnrelatedBSM.bsm:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/CallSite;
697003fb4: 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
698003fba: 0c00 |0003: move-result-object v0
699003fbc: 2201 3400 |0004: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
700003fc0: 7020 d200 0100 |0006: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
701003fc6: 1101 |0009: return-object v1
Orion Hodson775224d2017-07-05 11:04:01 +0100702 catches : (none)
703 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100704 0x0000 line=27
705 0x0004 line=28
Orion Hodson775224d2017-07-05 11:04:01 +0100706 locals :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100707 0x0000 - 0x0000 reg=5 (null) Ljava/lang/Class;
708 0x0004 - 0x000a reg=0 mh Ljava/lang/invoke/MethodHandle;
709 0x0000 - 0x000a reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup;
710 0x0000 - 0x000a reg=3 name Ljava/lang/String;
711 0x0000 - 0x000a reg=4 methodType Ljava/lang/invoke/MethodType;
712 0x0000 - 0x000a reg=5 target Ljava/lang/Class; Ljava/lang/Class<*>;
Orion Hodson775224d2017-07-05 11:04:01 +0100713
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100714 Virtual methods -
715 source_file_idx : 164 (UnrelatedBSM.java)
716
717Class #5 header:
718class_idx : 6
719access_flags : 1 (0x0001)
720superclass_idx : 9
721interfaces_off : 0 (0x000000)
722source_file_idx : 136
723annotations_off : 30772 (0x007834)
724class_data_off : 29036 (0x00716c)
725static_fields_size : 0
726instance_fields_size: 0
727direct_methods_size : 5
728virtual_methods_size: 0
729
730Class #5 annotations:
731Annotations on method #1 'TestLinkerMethodMinimalArguments'
732 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
733Annotations on method #2 'TestLinkerMethodMultipleArgumentTypes'
734 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
735Annotations on method #3 'TestUninitializedCallSite'
736 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
737Annotations on method #7 'main'
738 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
739
740Class #5 -
741 Class descriptor : 'LMain;'
742 Access flags : 0x0001 (PUBLIC)
743 Superclass : 'LTestBase;'
744 Interfaces -
745 Static fields -
746 Instance fields -
747 Direct methods -
748 #0 : (in LMain;)
749 name : '<init>'
750 type : '()V'
751 access : 0x10001 (PUBLIC CONSTRUCTOR)
Orion Hodson775224d2017-07-05 11:04:01 +0100752 code -
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100753 registers : 1
754 ins : 1
755 outs : 1
756 insns size : 4 16-bit code units
757001900: |[001900] Main.<init>:()V
758001910: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032
759001916: 0e00 |0003: return-void
Orion Hodson775224d2017-07-05 11:04:01 +0100760 catches : (none)
761 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100762 0x0000 line=21
Orion Hodson775224d2017-07-05 11:04:01 +0100763 locals :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100764 0x0000 - 0x0004 reg=0 this LMain;
Orion Hodson775224d2017-07-05 11:04:01 +0100765
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100766 #1 : (in LMain;)
767 name : 'TestLinkerMethodMinimalArguments'
768 type : '()V'
Orion Hodson775224d2017-07-05 11:04:01 +0100769 access : 0x000a (PRIVATE STATIC)
770 code -
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100771 registers : 4
772 ins : 0
773 outs : 3
774 insns size : 66 16-bit code units
775001918: |[001918] Main.TestLinkerMethodMinimalArguments:()V
776001928: 1210 |0000: const/4 v0, #int 1 // #1
77700192a: 1301 0a00 |0001: const/16 v1, #int 10 // #a
77800192e: 7130 7700 1001 |0003: invoke-static {v0, v1, v1}, LTestLinkerMethodMinimalArguments;.test:(III)V // method@0077
779001934: 7100 0500 0000 |0006: invoke-static {}, LMain;.assertNotReached:()V // method@0005
78000193a: 280f |0009: goto 0018 // +000f
78100193c: 0d00 |000a: move-exception v0
78200193e: 6e10 b600 0000 |000b: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
783001944: 0c02 |000e: move-result-object v2
784001946: 6e10 c000 0200 |000f: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
78500194c: 0c02 |0012: move-result-object v2
78600194e: 1c03 2200 |0013: const-class v3, Ljava/lang/ClassCastException; // type@0022
787001952: 7120 0400 3200 |0015: invoke-static {v2, v3}, LMain;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0004
788001958: 1220 |0018: const/4 v0, #int 2 // #2
78900195a: 1302 0b00 |0019: const/16 v2, #int 11 // #b
79000195e: 7130 7700 1002 |001b: invoke-static {v0, v1, v2}, LTestLinkerMethodMinimalArguments;.test:(III)V // method@0077
791001964: 7100 0500 0000 |001e: invoke-static {}, LMain;.assertNotReached:()V // method@0005
79200196a: 280f |0021: goto 0030 // +000f
79300196c: 0d00 |0022: move-exception v0
79400196e: 6e10 b600 0000 |0023: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
795001974: 0c02 |0026: move-result-object v2
796001976: 6e10 c000 0200 |0027: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
79700197c: 0c02 |002a: move-result-object v2
79800197e: 1c03 2600 |002b: const-class v3, Ljava/lang/InstantiationException; // type@0026
799001982: 7120 0400 3200 |002d: invoke-static {v2, v3}, LMain;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0004
800001988: 1230 |0030: const/4 v0, #int 3 // #3
80100198a: 1302 0c00 |0031: const/16 v2, #int 12 // #c
80200198e: 7130 7700 1002 |0033: invoke-static {v0, v1, v2}, LTestLinkerMethodMinimalArguments;.test:(III)V // method@0077
803001994: 7100 0500 0000 |0036: invoke-static {}, LMain;.assertNotReached:()V // method@0005
80400199a: 2802 |0039: goto 003b // +0002
80500199c: 0d00 |003a: move-exception v0
80600199e: 1200 |003b: const/4 v0, #int 0 // #0
8070019a0: 1302 0d00 |003c: const/16 v2, #int 13 // #d
8080019a4: 7130 7700 1002 |003e: invoke-static {v0, v1, v2}, LTestLinkerMethodMinimalArguments;.test:(III)V // method@0077
8090019aa: 0e00 |0041: return-void
810 catches : 3
811 0x0003 - 0x0009
812 Ljava/lang/BootstrapMethodError; -> 0x000a
813 0x001b - 0x0021
814 Ljava/lang/BootstrapMethodError; -> 0x0022
815 0x0033 - 0x0039
816 Ljava/lang/ArithmeticException; -> 0x003a
Orion Hodson775224d2017-07-05 11:04:01 +0100817 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100818 0x0000 line=49
819 0x0006 line=53
820 0x0009 line=56
821 0x000a line=54
822 0x000b line=55
823 0x0018 line=59
824 0x001e line=61
825 0x0021 line=64
826 0x0022 line=62
827 0x0023 line=63
828 0x0030 line=67
829 0x0036 line=69
830 0x0039 line=71
831 0x003a line=70
832 0x003b line=73
833 0x0041 line=75
Orion Hodson775224d2017-07-05 11:04:01 +0100834 locals :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100835 0x000b - 0x0018 reg=0 e Ljava/lang/BootstrapMethodError;
836 0x0023 - 0x0030 reg=0 e Ljava/lang/BootstrapMethodError;
Orion Hodson775224d2017-07-05 11:04:01 +0100837
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100838 #2 : (in LMain;)
839 name : 'TestLinkerMethodMultipleArgumentTypes'
Orion Hodson775224d2017-07-05 11:04:01 +0100840 type : '()V'
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100841 access : 0x000a (PRIVATE STATIC)
Orion Hodson775224d2017-07-05 11:04:01 +0100842 code -
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100843 registers : 2
Orion Hodson775224d2017-07-05 11:04:01 +0100844 ins : 0
845 outs : 2
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100846 insns size : 22 16-bit code units
8470019d0: |[0019d0] Main.TestLinkerMethodMultipleArgumentTypes:()V
8480019e0: 1300 2100 |0000: const/16 v0, #int 33 // #21
8490019e4: 1301 4300 |0002: const/16 v1, #int 67 // #43
8500019e8: 7120 8400 1000 |0004: invoke-static {v0, v1}, LTestLinkerMethodMultipleArgumentTypes;.test:(II)V // method@0084
8510019ee: 1300 f0d8 |0007: const/16 v0, #int -10000 // #d8f0
8520019f2: 1301 e803 |0009: const/16 v1, #int 1000 // #3e8
8530019f6: 7120 8400 1000 |000b: invoke-static {v0, v1}, LTestLinkerMethodMultipleArgumentTypes;.test:(II)V // method@0084
8540019fc: 1300 18fc |000e: const/16 v0, #int -1000 // #fc18
855001a00: 1301 1027 |0010: const/16 v1, #int 10000 // #2710
856001a04: 7120 8400 1000 |0012: invoke-static {v0, v1}, LTestLinkerMethodMultipleArgumentTypes;.test:(II)V // method@0084
857001a0a: 0e00 |0015: return-void
Orion Hodson775224d2017-07-05 11:04:01 +0100858 catches : (none)
859 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100860 0x0000 line=42
861 0x0007 line=43
862 0x000e line=44
863 0x0015 line=45
Orion Hodson775224d2017-07-05 11:04:01 +0100864 locals :
865
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100866 #3 : (in LMain;)
867 name : 'TestUninitializedCallSite'
868 type : '()V'
869 access : 0x000a (PRIVATE STATIC)
870 code -
871 registers : 7
872 ins : 0
873 outs : 3
874 insns size : 78 16-bit code units
875001a0c: |[001a0c] Main.TestUninitializedCallSite:()V
876001a1c: 2200 3900 |0000: new-instance v0, Ljava/lang/invoke/MutableCallSite; // type@0039
877001a20: 6201 1200 |0002: sget-object v1, Ljava/lang/Integer;.TYPE:Ljava/lang/Class; // field@0012
878001a24: 7110 e100 0100 |0004: invoke-static {v1}, Ljava/lang/invoke/MethodType;.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType; // method@00e1
879001a2a: 0c01 |0007: move-result-object v1
880001a2c: 7020 e600 1000 |0008: invoke-direct {v0, v1}, Ljava/lang/invoke/MutableCallSite;.<init>:(Ljava/lang/invoke/MethodType;)V // method@00e6
881001a32: 6e10 d100 0000 |000b: invoke-virtual {v0}, Ljava/lang/invoke/CallSite;.getTarget:()Ljava/lang/invoke/MethodHandle; // method@00d1
882001a38: 0c01 |000e: move-result-object v1
883001a3a: fa10 d300 0100 4100 |000f: invoke-polymorphic {v1}, Ljava/lang/invoke/MethodHandle;.invoke:([Ljava/lang/Object;)Ljava/lang/Object;, ()V // method@00d3, proto@0041
884001a42: 7100 0600 0000 |0013: invoke-static {}, LMain;.fail:()V // method@0006
885001a48: 2809 |0016: goto 001f // +0009
886001a4a: 0d01 |0017: move-exception v1
887001a4c: 6202 1300 |0018: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
888001a50: 1a03 2100 |001a: const-string v3, "Caught exception from uninitialized call site" // string@0021
889001a54: 6e20 b300 3200 |001c: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
890001a5a: 2201 3900 |001f: new-instance v1, Ljava/lang/invoke/MutableCallSite; // type@0039
891001a5e: 1c02 2c00 |0021: const-class v2, Ljava/lang/String; // type@002c
892001a62: 6203 1200 |0023: sget-object v3, Ljava/lang/Integer;.TYPE:Ljava/lang/Class; // field@0012
893001a66: 1214 |0025: const/4 v4, #int 1 // #1
894001a68: 2344 4600 |0026: new-array v4, v4, [Ljava/lang/Class; // type@0046
895001a6c: 1205 |0028: const/4 v5, #int 0 // #0
896001a6e: 6206 1100 |0029: sget-object v6, Ljava/lang/Character;.TYPE:Ljava/lang/Class; // field@0011
897001a72: 4d06 0405 |002b: aput-object v6, v4, v5
898001a76: 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
899001a7c: 0c02 |0030: move-result-object v2
900001a7e: 7020 e600 2100 |0031: invoke-direct {v1, v2}, Ljava/lang/invoke/MutableCallSite;.<init>:(Ljava/lang/invoke/MethodType;)V // method@00e6
901001a84: 0710 |0034: move-object v0, v1
902001a86: 6e10 d100 0000 |0035: invoke-virtual {v0}, Ljava/lang/invoke/CallSite;.getTarget:()Ljava/lang/invoke/MethodHandle; // method@00d1
903001a8c: 0c01 |0038: move-result-object v1
904001a8e: 1302 ff05 |0039: const/16 v2, #int 1535 // #5ff
905001a92: 1303 6400 |003b: const/16 v3, #int 100 // #64
906001a96: 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
907001a9e: 7100 0600 0000 |0041: invoke-static {}, LMain;.fail:()V // method@0006
908001aa4: 2809 |0044: goto 004d // +0009
909001aa6: 0d01 |0045: move-exception v1
910001aa8: 6202 1300 |0046: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
911001aac: 1a03 2100 |0048: const-string v3, "Caught exception from uninitialized call site" // string@0021
912001ab0: 6e20 b300 3200 |004a: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
913001ab6: 0e00 |004d: return-void
914 catches : 2
915 0x000b - 0x0016
916 Ljava/lang/IllegalStateException; -> 0x0017
917 0x0035 - 0x0044
918 Ljava/lang/IllegalStateException; -> 0x0045
919 positions :
920 0x0000 line=24
921 0x000b line=26
922 0x0013 line=27
923 0x0016 line=30
924 0x0017 line=28
925 0x0018 line=29
926 0x001f line=32
927 0x0035 line=34
928 0x0041 line=35
929 0x0044 line=38
930 0x0045 line=36
931 0x0046 line=37
932 0x004d line=39
933 locals :
934 0x0018 - 0x001f reg=1 e Ljava/lang/IllegalStateException;
935 0x0046 - 0x004d reg=1 e Ljava/lang/IllegalStateException;
936 0x000b - 0x004e reg=0 callSite Ljava/lang/invoke/CallSite;
937
938 #4 : (in LMain;)
Orion Hodson775224d2017-07-05 11:04:01 +0100939 name : 'main'
940 type : '([Ljava/lang/String;)V'
941 access : 0x0009 (PUBLIC STATIC)
942 code -
943 registers : 1
944 ins : 1
945 outs : 0
946 insns size : 28 16-bit code units
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100947001ad0: |[001ad0] Main.main:([Ljava/lang/String;)V
948001ae0: 7100 0300 0000 |0000: invoke-static {}, LMain;.TestUninitializedCallSite:()V // method@0003
949001ae6: 7100 0100 0000 |0003: invoke-static {}, LMain;.TestLinkerMethodMinimalArguments:()V // method@0001
950001aec: 7100 0200 0000 |0006: invoke-static {}, LMain;.TestLinkerMethodMultipleArgumentTypes:()V // method@0002
951001af2: 7100 8c00 0000 |0009: invoke-static {}, LTestLinkerUnrelatedBSM;.test:()V // method@008c
952001af8: 7100 6e00 0000 |000c: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.test:()V // method@006e
953001afe: 7100 5b00 0000 |000f: invoke-static {}, LTestInvocationKinds;.test:()V // method@005b
954001b04: 7100 4500 0000 |0012: invoke-static {}, LTestDynamicBootstrapArguments;.test:()V // method@0045
955001b0a: 7100 2b00 0000 |0015: invoke-static {}, LTestBadBootstrapArguments;.test:()V // method@002b
956001b10: 7100 a800 0000 |0018: invoke-static {}, LTestVariableArityLinkerMethod;.test:()V // method@00a8
957001b16: 0e00 |001b: return-void
Orion Hodson775224d2017-07-05 11:04:01 +0100958 catches : (none)
959 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100960 0x0000 line=78
961 0x0003 line=79
962 0x0006 line=80
963 0x0009 line=81
964 0x000c line=82
965 0x000f line=83
966 0x0012 line=84
967 0x0015 line=85
968 0x0018 line=86
969 0x001b line=87
Orion Hodson775224d2017-07-05 11:04:01 +0100970 locals :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100971 0x0000 - 0x001c reg=0 args [Ljava/lang/String;
Orion Hodson775224d2017-07-05 11:04:01 +0100972
Orion Hodson0f6cc7f2018-05-25 15:33:44 +0100973 Virtual methods -
974 source_file_idx : 136 (Main.java)
975
976Class #6 header:
977class_idx : 8
978access_flags : 1 (0x0001)
979superclass_idx : 9
980interfaces_off : 0 (0x000000)
981source_file_idx : 144
982annotations_off : 30820 (0x007864)
983class_data_off : 29062 (0x007186)
984static_fields_size : 0
985instance_fields_size: 0
986direct_methods_size : 38
987virtual_methods_size: 0
988
989Class #6 annotations:
990Annotations on class
991 VISIBILITY_SYSTEM Ldalvik/annotation/MemberClasses; value={ LTestBadBootstrapArguments$TestersConstantCallSite; }
992Annotations on method #14 'bsm'
993 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
994Annotations on method #15 'bsmDJ'
995 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
996Annotations on method #16 'bsmDoubleLong'
997 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
998Annotations on method #19 'bsmReturningTestersConstantCallsite'
999 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
1000Annotations on method #21 'bsmZBCS'
1001 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
1002Annotations on method #25 'invokeBoxingArguments'
1003 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"
1004Annotations on method #26 'invokeExtraArguments'
1005 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"
1006Annotations on method #27 'invokeHappy'
1007 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"
1008Annotations on method #28 'invokeIntegerReturnType'
1009 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"
1010Annotations on method #29 'invokeMissingParameterTypes'
1011 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"
1012 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/NoSuchMethodError; }
1013Annotations on method #30 'invokeNarrowArguments'
1014 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"
1015Annotations on method #31 'invokeObjectReturnType'
1016 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"
1017Annotations on method #32 'invokeViaCustomCallSiteClass'
1018 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"
1019Annotations on method #33 'invokeVoidReturnType'
1020 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"
1021Annotations on method #34 'invokeWideningArguments'
1022 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"
1023Annotations on method #35 'invokeWideningBoxingArguments'
1024 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"
1025Annotations on method #36 'invokeWrongArguments'
1026 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"
1027Annotations on method #37 'invokeWrongArgumentsAgain'
1028 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"
1029Annotations on method #38 'invokeWrongParameterTypes'
1030 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"
1031 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/NoSuchMethodError; }
1032
1033Class #6 -
1034 Class descriptor : 'LTestBadBootstrapArguments;'
1035 Access flags : 0x0001 (PUBLIC)
1036 Superclass : 'LTestBase;'
1037 Interfaces -
1038 Static fields -
1039 Instance fields -
1040 Direct methods -
1041 #0 : (in LTestBadBootstrapArguments;)
1042 name : '<init>'
1043 type : '()V'
1044 access : 0x10001 (PUBLIC CONSTRUCTOR)
1045 code -
1046 registers : 1
1047 ins : 1
1048 outs : 1
1049 insns size : 4 16-bit code units
1050001d64: |[001d64] TestBadBootstrapArguments.<init>:()V
1051001d74: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032
1052001d7a: 0e00 |0003: return-void
1053 catches : (none)
1054 positions :
1055 0x0000 line=27
1056 locals :
1057 0x0000 - 0x0004 reg=0 this LTestBadBootstrapArguments;
1058
1059 #1 : (in LTestBadBootstrapArguments;)
1060 name : 'boxingArguments'
Orion Hodson775224d2017-07-05 11:04:01 +01001061 type : '()V'
1062 access : 0x000a (PRIVATE STATIC)
1063 code -
1064 registers : 2
1065 ins : 0
1066 outs : 2
1067 insns size : 8 16-bit code units
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001068001d7c: |[001d7c] TestBadBootstrapArguments.boxingArguments:()V
1069001d8c: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1070001d90: 1a01 e900 |0002: const-string v1, "boxingArguments" // string@00e9
1071001d94: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
1072001d9a: 0e00 |0007: return-void
Orion Hodson775224d2017-07-05 11:04:01 +01001073 catches : (none)
1074 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001075 0x0000 line=348
1076 0x0007 line=349
Orion Hodson775224d2017-07-05 11:04:01 +01001077 locals :
1078
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001079 #2 : (in LTestBadBootstrapArguments;)
1080 name : 'bsm'
1081 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ILjava/lang/String;)Ljava/lang/invoke/CallSite;'
Orion Hodson775224d2017-07-05 11:04:01 +01001082 access : 0x000a (PRIVATE STATIC)
1083 code -
Orion Hodson775224d2017-07-05 11:04:01 +01001084 registers : 7
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001085 ins : 5
1086 outs : 4
1087 insns size : 85 16-bit code units
1088001bb4: |[001bb4] TestBadBootstrapArguments.bsm:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ILjava/lang/String;)Ljava/lang/invoke/CallSite;
1089001bc4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1090001bc8: 1a01 ee00 |0002: const-string v1, "bsm(" // string@00ee
1091001bcc: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1092001bd2: 6200 1300 |0007: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1093001bd6: 6e10 dc00 0200 |0009: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc
1094001bdc: 0c01 |000c: move-result-object v1
1095001bde: 6e20 af00 1000 |000d: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
1096001be4: 6200 1300 |0010: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1097001be8: 1a01 0c00 |0012: const-string v1, ", " // string@000c
1098001bec: 6e20 b000 1000 |0014: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1099001bf2: 6200 1300 |0017: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1100001bf6: 6e20 b000 3000 |0019: invoke-virtual {v0, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1101001bfc: 6200 1300 |001c: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1102001c00: 1a01 0c00 |001e: const-string v1, ", " // string@000c
1103001c04: 6e20 b000 1000 |0020: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1104001c0a: 6200 1300 |0023: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1105001c0e: 6e20 af00 4000 |0025: invoke-virtual {v0, v4}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
1106001c14: 6200 1300 |0028: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1107001c18: 1a01 0c00 |002a: const-string v1, ", " // string@000c
1108001c1c: 6e20 b000 1000 |002c: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1109001c22: 6200 1300 |002f: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1110001c26: 6e20 ad00 5000 |0031: invoke-virtual {v0, v5}, Ljava/io/PrintStream;.print:(I)V // method@00ad
1111001c2c: 6200 1300 |0034: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1112001c30: 1a01 0c00 |0036: const-string v1, ", " // string@000c
1113001c34: 6e20 b000 1000 |0038: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1114001c3a: 6200 1300 |003b: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1115001c3e: 6e20 b000 6000 |003d: invoke-virtual {v0, v6}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1116001c44: 6200 1300 |0040: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1117001c48: 1a01 0700 |0042: const-string v1, ")" // string@0007
1118001c4c: 6e20 b300 1000 |0044: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
1119001c52: 6e10 dc00 0200 |0047: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc
1120001c58: 0c00 |004a: move-result-object v0
1121001c5a: 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
1122001c60: 0c00 |004e: move-result-object v0
1123001c62: 2201 3400 |004f: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
1124001c66: 7020 d200 0100 |0051: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
1125001c6c: 1101 |0054: return-object v1
1126 catches : (none)
1127 positions :
1128 0x0000 line=35
1129 0x0007 line=36
1130 0x0010 line=37
1131 0x0017 line=38
1132 0x001c line=39
1133 0x0023 line=40
1134 0x0028 line=41
1135 0x002f line=42
1136 0x0034 line=43
1137 0x003b line=44
1138 0x0040 line=45
1139 0x0047 line=46
1140 0x004f line=47
1141 locals :
1142 0x004f - 0x0055 reg=0 mh Ljava/lang/invoke/MethodHandle;
1143 0x0000 - 0x0055 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup;
1144 0x0000 - 0x0055 reg=3 methodName Ljava/lang/String;
1145 0x0000 - 0x0055 reg=4 methodType Ljava/lang/invoke/MethodType;
1146 0x0000 - 0x0055 reg=5 extraInt I
1147 0x0000 - 0x0055 reg=6 extraString Ljava/lang/String;
1148
1149 #3 : (in LTestBadBootstrapArguments;)
1150 name : 'bsmDJ'
1151 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;DJ)Ljava/lang/invoke/CallSite;'
1152 access : 0x000a (PRIVATE STATIC)
1153 code -
1154 registers : 9
1155 ins : 7
1156 outs : 4
1157 insns size : 45 16-bit code units
1158001c70: |[001c70] TestBadBootstrapArguments.bsmDJ:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;DJ)Ljava/lang/invoke/CallSite;
1159001c80: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1160001c84: 1a01 f100 |0002: const-string v1, "bsmDJ(..., " // string@00f1
1161001c88: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1162001c8e: 6200 1300 |0007: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1163001c92: 6e30 ac00 5006 |0009: invoke-virtual {v0, v5, v6}, Ljava/io/PrintStream;.print:(D)V // method@00ac
1164001c98: 6200 1300 |000c: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1165001c9c: 1a01 0c00 |000e: const-string v1, ", " // string@000c
1166001ca0: 6e20 b000 1000 |0010: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1167001ca6: 6200 1300 |0013: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1168001caa: 6e30 ae00 7008 |0015: invoke-virtual {v0, v7, v8}, Ljava/io/PrintStream;.print:(J)V // method@00ae
1169001cb0: 6200 1300 |0018: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1170001cb4: 1a01 0700 |001a: const-string v1, ")" // string@0007
1171001cb8: 6e20 b300 1000 |001c: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
1172001cbe: 6e10 dc00 0200 |001f: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc
1173001cc4: 0c00 |0022: move-result-object v0
1174001cc6: 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
1175001ccc: 0c00 |0026: move-result-object v0
1176001cce: 2201 3400 |0027: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
1177001cd2: 7020 d200 0100 |0029: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
1178001cd8: 1101 |002c: return-object v1
1179 catches : (none)
1180 positions :
1181 0x0000 line=270
1182 0x0007 line=271
1183 0x000c line=272
1184 0x0013 line=273
1185 0x0018 line=274
1186 0x001f line=275
1187 0x0027 line=276
1188 locals :
1189 0x0027 - 0x002d reg=0 mh Ljava/lang/invoke/MethodHandle;
1190 0x0000 - 0x002d reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup;
1191 0x0000 - 0x002d reg=3 methodName Ljava/lang/String;
1192 0x0000 - 0x002d reg=4 methodType Ljava/lang/invoke/MethodType;
1193 0x0000 - 0x002d reg=5 extraArg0 D
1194 0x0000 - 0x002d reg=7 extraArg1 J
1195
1196 #4 : (in LTestBadBootstrapArguments;)
1197 name : 'bsmDoubleLong'
1198 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Double;Ljava/lang/Long;)Ljava/lang/invoke/CallSite;'
1199 access : 0x000a (PRIVATE STATIC)
1200 code -
1201 registers : 7
1202 ins : 5
1203 outs : 4
1204 insns size : 45 16-bit code units
1205001cdc: |[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;
1206001cec: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1207001cf0: 1a01 f300 |0002: const-string v1, "bsmDoubleLong(..., " // string@00f3
1208001cf4: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1209001cfa: 6200 1300 |0007: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1210001cfe: 6e20 af00 5000 |0009: invoke-virtual {v0, v5}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
1211001d04: 6200 1300 |000c: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1212001d08: 1a01 0c00 |000e: const-string v1, ", " // string@000c
1213001d0c: 6e20 b000 1000 |0010: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1214001d12: 6200 1300 |0013: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1215001d16: 6e20 af00 6000 |0015: invoke-virtual {v0, v6}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
1216001d1c: 6200 1300 |0018: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1217001d20: 1a01 0700 |001a: const-string v1, ")" // string@0007
1218001d24: 6e20 b300 1000 |001c: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
1219001d2a: 6e10 dc00 0200 |001f: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc
1220001d30: 0c00 |0022: move-result-object v0
1221001d32: 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
1222001d38: 0c00 |0026: move-result-object v0
1223001d3a: 2201 3400 |0027: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
1224001d3e: 7020 d200 0100 |0029: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
1225001d44: 1101 |002c: return-object v1
1226 catches : (none)
1227 positions :
1228 0x0000 line=314
1229 0x0007 line=315
1230 0x000c line=316
1231 0x0013 line=317
1232 0x0018 line=318
1233 0x001f line=319
1234 0x0027 line=320
1235 locals :
1236 0x0027 - 0x002d reg=0 mh Ljava/lang/invoke/MethodHandle;
1237 0x0000 - 0x002d reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup;
1238 0x0000 - 0x002d reg=3 methodName Ljava/lang/String;
1239 0x0000 - 0x002d reg=4 methodType Ljava/lang/invoke/MethodType;
1240 0x0000 - 0x002d reg=5 extraArg0 Ljava/lang/Double;
1241 0x0000 - 0x002d reg=6 extraArg1 Ljava/lang/Long;
1242
1243 #5 : (in LTestBadBootstrapArguments;)
1244 name : 'bsmReturningInteger'
1245 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Integer;'
1246 access : 0x0008 (STATIC)
1247 code -
1248 registers : 5
Orion Hodson775224d2017-07-05 11:04:01 +01001249 ins : 3
1250 outs : 2
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001251 insns size : 13 16-bit code units
1252001b5c: |[001b5c] TestBadBootstrapArguments.bsmReturningInteger:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Integer;
1253001b6c: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1254001b70: 1a01 eb00 |0002: const-string v1, "bsm returning Integer value." // string@00eb
1255001b74: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
1256001b7a: 1230 |0007: const/4 v0, #int 3 // #3
1257001b7c: 7110 bd00 0000 |0008: invoke-static {v0}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd
1258001b82: 0c00 |000b: move-result-object v0
1259001b84: 1100 |000c: return-object v0
Orion Hodson775224d2017-07-05 11:04:01 +01001260 catches : (none)
1261 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001262 0x0000 line=425
1263 0x0007 line=426
Orion Hodson775224d2017-07-05 11:04:01 +01001264 locals :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001265 0x0000 - 0x000d reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup;
1266 0x0000 - 0x000d reg=3 name Ljava/lang/String;
1267 0x0000 - 0x000d reg=4 type Ljava/lang/invoke/MethodType;
Orion Hodson775224d2017-07-05 11:04:01 +01001268
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001269 #6 : (in LTestBadBootstrapArguments;)
1270 name : 'bsmReturningObject'
1271 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Object;'
1272 access : 0x0008 (STATIC)
Orion Hodson775224d2017-07-05 11:04:01 +01001273 code -
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001274 registers : 5
1275 ins : 3
Orion Hodson775224d2017-07-05 11:04:01 +01001276 outs : 2
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001277 insns size : 13 16-bit code units
1278001b88: |[001b88] TestBadBootstrapArguments.bsmReturningObject:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Object;
1279001b98: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1280001b9c: 1a01 ec00 |0002: const-string v1, "bsm returning Object value." // string@00ec
1281001ba0: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
1282001ba6: 2200 2a00 |0007: new-instance v0, Ljava/lang/Object; // type@002a
1283001baa: 7010 bf00 0000 |0009: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@00bf
1284001bb0: 1100 |000c: return-object v0
Orion Hodson775224d2017-07-05 11:04:01 +01001285 catches : (none)
1286 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001287 0x0000 line=402
1288 0x0007 line=403
Orion Hodson775224d2017-07-05 11:04:01 +01001289 locals :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001290 0x0000 - 0x000d reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup;
1291 0x0000 - 0x000d reg=3 name Ljava/lang/String;
1292 0x0000 - 0x000d reg=4 type Ljava/lang/invoke/MethodType;
Orion Hodson775224d2017-07-05 11:04:01 +01001293
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001294 #7 : (in LTestBadBootstrapArguments;)
1295 name : 'bsmReturningTestersConstantCallsite'
1296 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)LTestBadBootstrapArguments$TestersConstantCallSite;'
1297 access : 0x0008 (STATIC)
1298 code -
1299 registers : 5
1300 ins : 3
1301 outs : 4
1302 insns size : 14 16-bit code units
1303001b30: |[001b30] TestBadBootstrapArguments.bsmReturningTestersConstantCallsite:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)LTestBadBootstrapArguments$TestersConstantCallSite;
1304001b40: 2200 0700 |0000: new-instance v0, LTestBadBootstrapArguments$TestersConstantCallSite; // type@0007
1305001b44: 6e10 dc00 0200 |0002: invoke-virtual {v2}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc
1306001b4a: 0c01 |0005: move-result-object v1
1307001b4c: 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
1308001b52: 0c01 |0009: move-result-object v1
1309001b54: 7020 0800 1000 |000a: invoke-direct {v0, v1}, LTestBadBootstrapArguments$TestersConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@0008
1310001b5a: 1100 |000d: return-object v0
1311 catches : (none)
1312 positions :
1313 0x0000 line=455
1314 locals :
1315 0x0000 - 0x000e reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup;
1316 0x0000 - 0x000e reg=3 name Ljava/lang/String;
1317 0x0000 - 0x000e reg=4 type Ljava/lang/invoke/MethodType;
1318
1319 #8 : (in LTestBadBootstrapArguments;)
1320 name : 'bsmReturningVoid'
1321 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V'
1322 access : 0x0008 (STATIC)
1323 code -
1324 registers : 5
1325 ins : 3
1326 outs : 2
1327 insns size : 8 16-bit code units
1328001d9c: |[001d9c] TestBadBootstrapArguments.bsmReturningVoid:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V
1329001dac: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1330001db0: 1a01 ed00 |0002: const-string v1, "bsm returning void value." // string@00ed
1331001db4: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
1332001dba: 0e00 |0007: return-void
1333 catches : (none)
1334 positions :
1335 0x0000 line=380
1336 0x0007 line=381
1337 locals :
1338 0x0000 - 0x0008 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup;
1339 0x0000 - 0x0008 reg=3 name Ljava/lang/String;
1340 0x0000 - 0x0008 reg=4 type Ljava/lang/invoke/MethodType;
1341
1342 #9 : (in LTestBadBootstrapArguments;)
1343 name : 'bsmZBCS'
1344 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ZBCS)Ljava/lang/invoke/CallSite;'
1345 access : 0x000a (PRIVATE STATIC)
1346 code -
1347 registers : 8
1348 ins : 7
1349 outs : 0
1350 insns size : 5 16-bit code units
1351001d48: |[001d48] TestBadBootstrapArguments.bsmZBCS:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ZBCS)Ljava/lang/invoke/CallSite;
1352001d58: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1353001d5e: 1200 |0003: const/4 v0, #int 0 // #0
1354001d60: 1100 |0004: return-object v0
1355 catches : (none)
1356 positions :
1357 0x0000 line=227
1358 0x0003 line=228
1359 locals :
1360 0x0000 - 0x0005 reg=1 lookup Ljava/lang/invoke/MethodHandles$Lookup;
1361 0x0000 - 0x0005 reg=2 methodName Ljava/lang/String;
1362 0x0000 - 0x0005 reg=3 methodType Ljava/lang/invoke/MethodType;
1363 0x0000 - 0x0005 reg=4 extraArg0 Z
1364 0x0000 - 0x0005 reg=5 extraArg1 B
1365 0x0000 - 0x0005 reg=6 extraArg2 C
1366 0x0000 - 0x0005 reg=7 extraArg3 S
1367
1368 #10 : (in LTestBadBootstrapArguments;)
1369 name : 'extraArguments'
Orion Hodson775224d2017-07-05 11:04:01 +01001370 type : '()V'
1371 access : 0x000a (PRIVATE STATIC)
1372 code -
1373 registers : 2
1374 ins : 0
1375 outs : 2
1376 insns size : 8 16-bit code units
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001377001dbc: |[001dbc] TestBadBootstrapArguments.extraArguments:()V
1378001dcc: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1379001dd0: 1a01 2001 |0002: const-string v1, "extraArguments" // string@0120
1380001dd4: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
1381001dda: 0e00 |0007: return-void
Orion Hodson775224d2017-07-05 11:04:01 +01001382 catches : (none)
1383 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001384 0x0000 line=158
1385 0x0007 line=159
Orion Hodson775224d2017-07-05 11:04:01 +01001386 locals :
1387
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001388 #11 : (in LTestBadBootstrapArguments;)
1389 name : 'happy'
Orion Hodson775224d2017-07-05 11:04:01 +01001390 type : '()V'
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001391 access : 0x000a (PRIVATE STATIC)
1392 code -
1393 registers : 2
1394 ins : 0
1395 outs : 2
1396 insns size : 8 16-bit code units
1397001ddc: |[001ddc] TestBadBootstrapArguments.happy:()V
1398001dec: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1399001df0: 1a01 3d01 |0002: const-string v1, "happy" // string@013d
1400001df4: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
1401001dfa: 0e00 |0007: return-void
1402 catches : (none)
1403 positions :
1404 0x0000 line=74
1405 0x0007 line=75
1406 locals :
1407
1408 #12 : (in LTestBadBootstrapArguments;)
1409 name : 'integerReturnType'
1410 type : '()V'
1411 access : 0x000a (PRIVATE STATIC)
Orion Hodson775224d2017-07-05 11:04:01 +01001412 code -
1413 registers : 0
1414 ins : 0
1415 outs : 0
1416 insns size : 4 16-bit code units
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001417001dfc: |[001dfc] TestBadBootstrapArguments.integerReturnType:()V
1418001e0c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1419001e12: 0e00 |0003: return-void
Orion Hodson775224d2017-07-05 11:04:01 +01001420 catches : (none)
1421 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001422 0x0000 line=444
1423 0x0003 line=445
Orion Hodson775224d2017-07-05 11:04:01 +01001424 locals :
1425
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001426 #13 : (in LTestBadBootstrapArguments;)
1427 name : 'invokeBoxingArguments'
Orion Hodson775224d2017-07-05 11:04:01 +01001428 type : '()V'
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001429 access : 0x000a (PRIVATE STATIC)
Orion Hodson775224d2017-07-05 11:04:01 +01001430 code -
1431 registers : 0
1432 ins : 0
1433 outs : 0
1434 insns size : 4 16-bit code units
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001435001e14: |[001e14] TestBadBootstrapArguments.invokeBoxingArguments:()V
1436001e24: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1437001e2a: 0e00 |0003: return-void
Orion Hodson775224d2017-07-05 11:04:01 +01001438 catches : (none)
1439 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001440 0x0000 line=344
1441 0x0003 line=345
Orion Hodson775224d2017-07-05 11:04:01 +01001442 locals :
1443
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001444 #14 : (in LTestBadBootstrapArguments;)
1445 name : 'invokeExtraArguments'
Orion Hodson775224d2017-07-05 11:04:01 +01001446 type : '()V'
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01001447 access : 0x000a (PRIVATE STATIC)
1448 code -
1449 registers : 0
1450 ins : 0
1451 outs : 0
1452 insns size : 4 16-bit code units
1453001e2c: |[001e2c] TestBadBootstrapArguments.invokeExtraArguments:()V
1454001e3c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1455001e42: 0e00 |0003: return-void
1456 catches : (none)
1457 positions :
1458 0x0000 line=154
1459 0x0003 line=155
1460 locals :
1461
1462 #15 : (in LTestBadBootstrapArguments;)
1463 name : 'invokeHappy'
1464 type : '()V'
1465 access : 0x000a (PRIVATE STATIC)
1466 code -
1467 registers : 0
1468 ins : 0
1469 outs : 0
1470 insns size : 4 16-bit code units
1471001e44: |[001e44] TestBadBootstrapArguments.invokeHappy:()V
1472001e54: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1473001e5a: 0e00 |0003: return-void
1474 catches : (none)
1475 positions :
1476 0x0000 line=70
1477 0x0003 line=71
1478 locals :
1479
1480 #16 : (in LTestBadBootstrapArguments;)
1481 name : 'invokeIntegerReturnType'
1482 type : '()V'
1483 access : 0x000a (PRIVATE STATIC)
1484 code -
1485 registers : 0
1486 ins : 0
1487 outs : 0
1488 insns size : 4 16-bit code units
1489001e5c: |[001e5c] TestBadBootstrapArguments.invokeIntegerReturnType:()V
1490001e6c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1491001e72: 0e00 |0003: return-void
1492 catches : (none)
1493 positions :
1494 0x0000 line=440
1495 0x0003 line=441
1496 locals :
1497
1498 #17 : (in LTestBadBootstrapArguments;)
1499 name : 'invokeMissingParameterTypes'
1500 type : '()V'
1501 access : 0x000a (PRIVATE STATIC)
1502 code -
1503 registers : 0
1504 ins : 0
1505 outs : 0
1506 insns size : 4 16-bit code units
1507001e74: |[001e74] TestBadBootstrapArguments.invokeMissingParameterTypes:()V
1508001e84: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1509001e8a: 0e00 |0003: return-void
1510 catches : (none)
1511 positions :
1512 0x0000 line=124
1513 0x0003 line=125
1514 locals :
1515
1516 #18 : (in LTestBadBootstrapArguments;)
1517 name : 'invokeNarrowArguments'
1518 type : '()V'
1519 access : 0x000a (PRIVATE STATIC)
1520 code -
1521 registers : 0
1522 ins : 0
1523 outs : 0
1524 insns size : 4 16-bit code units
1525001e8c: |[001e8c] TestBadBootstrapArguments.invokeNarrowArguments:()V
1526001e9c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1527001ea2: 0e00 |0003: return-void
1528 catches : (none)
1529 positions :
1530 0x0000 line=256
1531 0x0003 line=257
1532 locals :
1533
1534 #19 : (in LTestBadBootstrapArguments;)
1535 name : 'invokeObjectReturnType'
1536 type : '()V'
1537 access : 0x000a (PRIVATE STATIC)
1538 code -
1539 registers : 0
1540 ins : 0
1541 outs : 0
1542 insns size : 4 16-bit code units
1543001ea4: |[001ea4] TestBadBootstrapArguments.invokeObjectReturnType:()V
1544001eb4: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1545001eba: 0e00 |0003: return-void
1546 catches : (none)
1547 positions :
1548 0x0000 line=417
1549 0x0003 line=418
1550 locals :
1551
1552 #20 : (in LTestBadBootstrapArguments;)
1553 name : 'invokeViaCustomCallSiteClass'
1554 type : '()V'
1555 access : 0x000a (PRIVATE STATIC)
1556 code -
1557 registers : 0
1558 ins : 0
1559 outs : 0
1560 insns size : 4 16-bit code units
1561001ebc: |[001ebc] TestBadBootstrapArguments.invokeViaCustomCallSiteClass:()V
1562001ecc: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1563001ed2: 0e00 |0003: return-void
1564 catches : (none)
1565 positions :
1566 0x0000 line=469
1567 0x0003 line=470
1568 locals :
1569
1570 #21 : (in LTestBadBootstrapArguments;)
1571 name : 'invokeVoidReturnType'
1572 type : '()V'
1573 access : 0x000a (PRIVATE STATIC)
1574 code -
1575 registers : 0
1576 ins : 0
1577 outs : 0
1578 insns size : 4 16-bit code units
1579001ed4: |[001ed4] TestBadBootstrapArguments.invokeVoidReturnType:()V
1580001ee4: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1581001eea: 0e00 |0003: return-void
1582 catches : (none)
1583 positions :
1584 0x0000 line=394
1585 0x0003 line=395
1586 locals :
1587
1588 #22 : (in LTestBadBootstrapArguments;)
1589 name : 'invokeWideningArguments'
1590 type : '()V'
1591 access : 0x000a (PRIVATE STATIC)
1592 code -
1593 registers : 0
1594 ins : 0
1595 outs : 0
1596 insns size : 4 16-bit code units
1597001eec: |[001eec] TestBadBootstrapArguments.invokeWideningArguments:()V
1598001efc: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1599001f02: 0e00 |0003: return-void
1600 catches : (none)
1601 positions :
1602 0x0000 line=300
1603 0x0003 line=301
1604 locals :
1605
1606 #23 : (in LTestBadBootstrapArguments;)
1607 name : 'invokeWideningBoxingArguments'
1608 type : '()V'
1609 access : 0x000a (PRIVATE STATIC)
1610 code -
1611 registers : 0
1612 ins : 0
1613 outs : 0
1614 insns size : 4 16-bit code units
1615001f04: |[001f04] TestBadBootstrapArguments.invokeWideningBoxingArguments:()V
1616001f14: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1617001f1a: 0e00 |0003: return-void
1618 catches : (none)
1619 positions :
1620 0x0000 line=372
1621 0x0003 line=373
1622 locals :
1623
1624 #24 : (in LTestBadBootstrapArguments;)
1625 name : 'invokeWrongArguments'
1626 type : '()V'
1627 access : 0x000a (PRIVATE STATIC)
1628 code -
1629 registers : 0
1630 ins : 0
1631 outs : 0
1632 insns size : 4 16-bit code units
1633001f1c: |[001f1c] TestBadBootstrapArguments.invokeWrongArguments:()V
1634001f2c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1635001f32: 0e00 |0003: return-void
1636 catches : (none)
1637 positions :
1638 0x0000 line=182
1639 0x0003 line=183
1640 locals :
1641
1642 #25 : (in LTestBadBootstrapArguments;)
1643 name : 'invokeWrongArgumentsAgain'
1644 type : '()V'
1645 access : 0x000a (PRIVATE STATIC)
1646 code -
1647 registers : 0
1648 ins : 0
1649 outs : 0
1650 insns size : 4 16-bit code units
1651001f34: |[001f34] TestBadBootstrapArguments.invokeWrongArgumentsAgain:()V
1652001f44: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1653001f4a: 0e00 |0003: return-void
1654 catches : (none)
1655 positions :
1656 0x0000 line=210
1657 0x0003 line=211
1658 locals :
1659
1660 #26 : (in LTestBadBootstrapArguments;)
1661 name : 'invokeWrongParameterTypes'
1662 type : '()V'
1663 access : 0x000a (PRIVATE STATIC)
1664 code -
1665 registers : 0
1666 ins : 0
1667 outs : 0
1668 insns size : 4 16-bit code units
1669001f4c: |[001f4c] TestBadBootstrapArguments.invokeWrongParameterTypes:()V
1670001f5c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1671001f62: 0e00 |0003: return-void
1672 catches : (none)
1673 positions :
1674 0x0000 line=98
1675 0x0003 line=99
1676 locals :
1677
1678 #27 : (in LTestBadBootstrapArguments;)
1679 name : 'missingParameterTypes'
1680 type : '()V'
1681 access : 0x000a (PRIVATE STATIC)
1682 code -
1683 registers : 2
1684 ins : 0
1685 outs : 2
1686 insns size : 8 16-bit code units
1687001f64: |[001f64] TestBadBootstrapArguments.missingParameterTypes:()V
1688001f74: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1689001f78: 1a01 8c01 |0002: const-string v1, "missingParameterTypes" // string@018c
1690001f7c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
1691001f82: 0e00 |0007: return-void
1692 catches : (none)
1693 positions :
1694 0x0000 line=128
1695 0x0007 line=129
1696 locals :
1697
1698 #28 : (in LTestBadBootstrapArguments;)
1699 name : 'narrowArguments'
1700 type : '()V'
1701 access : 0x000a (PRIVATE STATIC)
1702 code -
1703 registers : 0
1704 ins : 0
1705 outs : 0
1706 insns size : 4 16-bit code units
1707001f84: |[001f84] TestBadBootstrapArguments.narrowArguments:()V
1708001f94: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1709001f9a: 0e00 |0003: return-void
1710 catches : (none)
1711 positions :
1712 0x0000 line=260
1713 0x0003 line=261
1714 locals :
1715
1716 #29 : (in LTestBadBootstrapArguments;)
1717 name : 'objectReturnType'
1718 type : '()V'
1719 access : 0x000a (PRIVATE STATIC)
1720 code -
1721 registers : 0
1722 ins : 0
1723 outs : 0
1724 insns size : 4 16-bit code units
1725001f9c: |[001f9c] TestBadBootstrapArguments.objectReturnType:()V
1726001fac: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1727001fb2: 0e00 |0003: return-void
1728 catches : (none)
1729 positions :
1730 0x0000 line=421
1731 0x0003 line=422
1732 locals :
1733
1734 #30 : (in LTestBadBootstrapArguments;)
1735 name : 'sayHello'
1736 type : '()V'
1737 access : 0x000a (PRIVATE STATIC)
1738 code -
1739 registers : 2
1740 ins : 0
1741 outs : 2
1742 insns size : 8 16-bit code units
1743001fb4: |[001fb4] TestBadBootstrapArguments.sayHello:()V
1744001fc4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1745001fc8: 1a01 2d00 |0002: const-string v1, "Hello!" // string@002d
1746001fcc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
1747001fd2: 0e00 |0007: return-void
1748 catches : (none)
1749 positions :
1750 0x0000 line=473
1751 0x0007 line=474
1752 locals :
1753
1754 #31 : (in LTestBadBootstrapArguments;)
1755 name : 'test'
1756 type : '()V'
1757 access : 0x0008 (STATIC)
1758 code -
1759 registers : 3
1760 ins : 0
1761 outs : 2
1762 insns size : 529 16-bit code units
1763001fd4: |[001fd4] TestBadBootstrapArguments.test:()V
1764001fe4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1765001fe8: 1a01 8f00 |0002: const-string v1, "TestBadBootstrapArguments" // string@008f
1766001fec: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
1767001ff2: fc00 0000 0000 |0007: invoke-custom {}, call_site@0000
1768001ff8: fc00 0100 0000 |000a: invoke-custom {}, call_site@0001
1769001ffe: 7100 0b00 0000 |000d: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1770002004: 2812 |0010: goto 0022 // +0012
1771002006: 0d00 |0011: move-exception v0
1772002008: 6201 1300 |0012: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
177300200c: 1a02 6101 |0014: const-string v2, "invokeWrongParameterTypes => " // string@0161
1774002010: 6e20 b000 2100 |0016: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1775002016: 6201 1300 |0019: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
177600201a: 6e10 c000 0000 |001b: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
1777002020: 0c02 |001e: move-result-object v2
1778002022: 6e20 b200 2100 |001f: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
1779002028: fc00 0200 0000 |0022: invoke-custom {}, call_site@0002
178000202e: 7100 0b00 0000 |0025: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1781002034: 2812 |0028: goto 003a // +0012
1782002036: 0d00 |0029: move-exception v0
1783002038: 6201 1300 |002a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
178400203c: 1a02 5101 |002c: const-string v2, "invokeMissingParameterTypes => " // string@0151
1785002040: 6e20 b000 2100 |002e: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1786002046: 6201 1300 |0031: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
178700204a: 6e10 c000 0000 |0033: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
1788002050: 0c02 |0036: move-result-object v2
1789002052: 6e20 b200 2100 |0037: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
1790002058: fc00 0300 0000 |003a: invoke-custom {}, call_site@0003
179100205e: 7100 0b00 0000 |003d: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1792002064: 2833 |0040: goto 0073 // +0033
1793002066: 0d00 |0041: move-exception v0
1794002068: 1c01 3a00 |0042: const-class v1, Ljava/lang/invoke/WrongMethodTypeException; // type@003a
179500206c: 6e10 b600 0000 |0044: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
1796002072: 0c02 |0047: move-result-object v2
1797002074: 6e10 c000 0200 |0048: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
179800207a: 0c02 |004b: move-result-object v2
179900207c: 7120 0a00 2100 |004c: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a
1800002082: 6201 1300 |004f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1801002086: 1a02 4c01 |0051: const-string v2, "invokeExtraArguments => " // string@014c
180200208a: 6e20 b000 2100 |0053: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1803002090: 6201 1300 |0056: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1804002094: 6e10 c000 0000 |0058: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
180500209a: 0c02 |005b: move-result-object v2
180600209c: 6e20 af00 2100 |005c: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
18070020a2: 6201 1300 |005f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
18080020a6: 1a02 0200 |0061: const-string v2, " => " // string@0002
18090020aa: 6e20 b000 2100 |0063: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
18100020b0: 6201 1300 |0066: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
18110020b4: 6e10 b600 0000 |0068: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
18120020ba: 0c02 |006b: move-result-object v2
18130020bc: 6e10 c000 0200 |006c: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
18140020c2: 0c02 |006f: move-result-object v2
18150020c4: 6e20 b200 2100 |0070: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
18160020ca: fc00 0400 0000 |0073: invoke-custom {}, call_site@0004
18170020d0: 7100 0b00 0000 |0076: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
18180020d6: 2833 |0079: goto 00ac // +0033
18190020d8: 0d00 |007a: move-exception v0
18200020da: 1c01 2200 |007b: const-class v1, Ljava/lang/ClassCastException; // type@0022
18210020de: 6e10 b600 0000 |007d: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
18220020e4: 0c02 |0080: move-result-object v2
18230020e6: 6e10 c000 0200 |0081: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
18240020ec: 0c02 |0084: move-result-object v2
18250020ee: 7120 0a00 2100 |0085: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a
18260020f4: 6201 1300 |0088: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
18270020f8: 1a02 5d01 |008a: const-string v2, "invokeWrongArguments => " // string@015d
18280020fc: 6e20 b000 2100 |008c: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1829002102: 6201 1300 |008f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1830002106: 6e10 c000 0000 |0091: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
183100210c: 0c02 |0094: move-result-object v2
183200210e: 6e20 af00 2100 |0095: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
1833002114: 6201 1300 |0098: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1834002118: 1a02 0200 |009a: const-string v2, " => " // string@0002
183500211c: 6e20 b000 2100 |009c: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1836002122: 6201 1300 |009f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1837002126: 6e10 b600 0000 |00a1: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
183800212c: 0c02 |00a4: move-result-object v2
183900212e: 6e10 c000 0200 |00a5: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
1840002134: 0c02 |00a8: move-result-object v2
1841002136: 6e20 b200 2100 |00a9: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
184200213c: fc00 0500 0000 |00ac: invoke-custom {}, call_site@0005
1843002142: 7100 0b00 0000 |00af: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1844002148: 2833 |00b2: goto 00e5 // +0033
184500214a: 0d00 |00b3: move-exception v0
184600214c: 1c01 2200 |00b4: const-class v1, Ljava/lang/ClassCastException; // type@0022
1847002150: 6e10 b600 0000 |00b6: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
1848002156: 0c02 |00b9: move-result-object v2
1849002158: 6e10 c000 0200 |00ba: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
185000215e: 0c02 |00bd: move-result-object v2
1851002160: 7120 0a00 2100 |00be: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a
1852002166: 6201 1300 |00c1: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
185300216a: 1a02 5d01 |00c3: const-string v2, "invokeWrongArguments => " // string@015d
185400216e: 6e20 b000 2100 |00c5: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1855002174: 6201 1300 |00c8: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1856002178: 6e10 c000 0000 |00ca: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
185700217e: 0c02 |00cd: move-result-object v2
1858002180: 6e20 af00 2100 |00ce: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
1859002186: 6201 1300 |00d1: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
186000218a: 1a02 0200 |00d3: const-string v2, " => " // string@0002
186100218e: 6e20 b000 2100 |00d5: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1862002194: 6201 1300 |00d8: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1863002198: 6e10 b600 0000 |00da: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
186400219e: 0c02 |00dd: move-result-object v2
18650021a0: 6e10 c000 0200 |00de: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
18660021a6: 0c02 |00e1: move-result-object v2
18670021a8: 6e20 b200 2100 |00e2: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
18680021ae: fc00 0600 0000 |00e5: invoke-custom {}, call_site@0006
18690021b4: 7100 0b00 0000 |00e8: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
18700021ba: 2833 |00eb: goto 011e // +0033
18710021bc: 0d00 |00ec: move-exception v0
18720021be: 1c01 2200 |00ed: const-class v1, Ljava/lang/ClassCastException; // type@0022
18730021c2: 6e10 b600 0000 |00ef: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
18740021c8: 0c02 |00f2: move-result-object v2
18750021ca: 6e10 c000 0200 |00f3: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
18760021d0: 0c02 |00f6: move-result-object v2
18770021d2: 7120 0a00 2100 |00f7: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a
18780021d8: 6201 1300 |00fa: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
18790021dc: 1a02 5f01 |00fc: const-string v2, "invokeWrongArgumentsAgain => " // string@015f
18800021e0: 6e20 b000 2100 |00fe: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
18810021e6: 6201 1300 |0101: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
18820021ea: 6e10 c000 0000 |0103: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
18830021f0: 0c02 |0106: move-result-object v2
18840021f2: 6e20 af00 2100 |0107: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
18850021f8: 6201 1300 |010a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
18860021fc: 1a02 0200 |010c: const-string v2, " => " // string@0002
1887002200: 6e20 b000 2100 |010e: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1888002206: 6201 1300 |0111: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
188900220a: 6e10 b600 0000 |0113: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
1890002210: 0c02 |0116: move-result-object v2
1891002212: 6e10 c000 0200 |0117: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
1892002218: 0c02 |011a: move-result-object v2
189300221a: 6e20 b200 2100 |011b: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
1894002220: fc00 0700 0000 |011e: invoke-custom {}, call_site@0007
1895002226: 7100 0b00 0000 |0121: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
189600222c: 2833 |0124: goto 0157 // +0033
189700222e: 0d00 |0125: move-exception v0
1898002230: 1c01 2200 |0126: const-class v1, Ljava/lang/ClassCastException; // type@0022
1899002234: 6e10 b600 0000 |0128: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
190000223a: 0c02 |012b: move-result-object v2
190100223c: 6e10 c000 0200 |012c: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
1902002242: 0c02 |012f: move-result-object v2
1903002244: 7120 0a00 2100 |0130: invoke-static {v1, v2}, LTestBadBootstrapArguments;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000a
190400224a: 6201 1300 |0133: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
190500224e: 1a02 5301 |0135: const-string v2, "invokeNarrowArguments => " // string@0153
1906002252: 6e20 b000 2100 |0137: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1907002258: 6201 1300 |013a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
190800225c: 6e10 c000 0000 |013c: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
1909002262: 0c02 |013f: move-result-object v2
1910002264: 6e20 af00 2100 |0140: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
191100226a: 6201 1300 |0143: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
191200226e: 1a02 0200 |0145: const-string v2, " => " // string@0002
1913002272: 6e20 b000 2100 |0147: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1914002278: 6201 1300 |014a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
191500227c: 6e10 b600 0000 |014c: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
1916002282: 0c02 |014f: move-result-object v2
1917002284: 6e10 c000 0200 |0150: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
191800228a: 0c02 |0153: move-result-object v2
191900228c: 6e20 b200 2100 |0154: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
1920002292: fc00 0800 0000 |0157: invoke-custom {}, call_site@0008
1921002298: fc00 0900 0000 |015a: invoke-custom {}, call_site@0009
192200229e: fc00 0a00 0000 |015d: invoke-custom {}, call_site@000a
19230022a4: 7100 0b00 0000 |0160: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
19240022aa: 2826 |0163: goto 0189 // +0026
19250022ac: 0d00 |0164: move-exception v0
19260022ae: 6201 1300 |0165: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
19270022b2: 1a02 5b01 |0167: const-string v2, "invokeWideningBoxingArguments => " // string@015b
19280022b6: 6e20 b000 2100 |0169: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
19290022bc: 6201 1300 |016c: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
19300022c0: 6e10 c000 0000 |016e: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
19310022c6: 0c02 |0171: move-result-object v2
19320022c8: 6e20 af00 2100 |0172: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
19330022ce: 6201 1300 |0175: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
19340022d2: 1a02 0200 |0177: const-string v2, " => " // string@0002
19350022d6: 6e20 b000 2100 |0179: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
19360022dc: 6201 1300 |017c: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
19370022e0: 6e10 b600 0000 |017e: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
19380022e6: 0c02 |0181: move-result-object v2
19390022e8: 6e10 c000 0200 |0182: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
19400022ee: 0c02 |0185: move-result-object v2
19410022f0: 6e20 b200 2100 |0186: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
19420022f6: fc00 0b00 0000 |0189: invoke-custom {}, call_site@000b
19430022fc: 7100 0b00 0000 |018c: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
1944002302: 2826 |018f: goto 01b5 // +0026
1945002304: 0d00 |0190: move-exception v0
1946002306: 6201 1300 |0191: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
194700230a: 1a02 5801 |0193: const-string v2, "invokeVoidReturnType() => " // string@0158
194800230e: 6e20 b000 2100 |0195: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1949002314: 6201 1300 |0198: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1950002318: 6e10 c000 0000 |019a: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
195100231e: 0c02 |019d: move-result-object v2
1952002320: 6e20 af00 2100 |019e: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
1953002326: 6201 1300 |01a1: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
195400232a: 1a02 0200 |01a3: const-string v2, " => " // string@0002
195500232e: 6e20 b000 2100 |01a5: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
1956002334: 6201 1300 |01a8: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1957002338: 6e10 b600 0000 |01aa: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
195800233e: 0c02 |01ad: move-result-object v2
1959002340: 6e10 c000 0200 |01ae: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
1960002346: 0c02 |01b1: move-result-object v2
1961002348: 6e20 b200 2100 |01b2: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
196200234e: fc00 0c00 0000 |01b5: invoke-custom {}, call_site@000c
1963002354: 7100 0b00 0000 |01b8: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
196400235a: 2826 |01bb: goto 01e1 // +0026
196500235c: 0d00 |01bc: move-exception v0
196600235e: 6201 1300 |01bd: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1967002362: 1a02 5501 |01bf: const-string v2, "invokeObjectReturnType() => " // string@0155
1968002366: 6e20 b000 2100 |01c1: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
196900236c: 6201 1300 |01c4: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1970002370: 6e10 c000 0000 |01c6: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
1971002376: 0c02 |01c9: move-result-object v2
1972002378: 6e20 af00 2100 |01ca: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
197300237e: 6201 1300 |01cd: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1974002382: 1a02 0200 |01cf: const-string v2, " => " // string@0002
1975002386: 6e20 b000 2100 |01d1: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
197600238c: 6201 1300 |01d4: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
1977002390: 6e10 b600 0000 |01d6: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
1978002396: 0c02 |01d9: move-result-object v2
1979002398: 6e10 c000 0200 |01da: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
198000239e: 0c02 |01dd: move-result-object v2
19810023a0: 6e20 b200 2100 |01de: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
19820023a6: fc00 0d00 0000 |01e1: invoke-custom {}, call_site@000d
19830023ac: 7100 0b00 0000 |01e4: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
19840023b2: 2826 |01e7: goto 020d // +0026
19850023b4: 0d00 |01e8: move-exception v0
19860023b6: 6201 1300 |01e9: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
19870023ba: 1a02 4f01 |01eb: const-string v2, "invokeIntegerReturnType() => " // string@014f
19880023be: 6e20 b000 2100 |01ed: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
19890023c4: 6201 1300 |01f0: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
19900023c8: 6e10 c000 0000 |01f2: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
19910023ce: 0c02 |01f5: move-result-object v2
19920023d0: 6e20 af00 2100 |01f6: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
19930023d6: 6201 1300 |01f9: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
19940023da: 1a02 0200 |01fb: const-string v2, " => " // string@0002
19950023de: 6e20 b000 2100 |01fd: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
19960023e4: 6201 1300 |0200: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
19970023e8: 6e10 b600 0000 |0202: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
19980023ee: 0c02 |0205: move-result-object v2
19990023f0: 6e10 c000 0200 |0206: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
20000023f6: 0c02 |0209: move-result-object v2
20010023f8: 6e20 b200 2100 |020a: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
20020023fe: fc00 0e00 0000 |020d: invoke-custom {}, call_site@000e
2003002404: 0e00 |0210: return-void
2004 catches : 11
2005 0x000a - 0x0010
2006 Ljava/lang/NoSuchMethodError; -> 0x0011
2007 0x0022 - 0x0028
2008 Ljava/lang/NoSuchMethodError; -> 0x0029
2009 0x003a - 0x0040
2010 Ljava/lang/BootstrapMethodError; -> 0x0041
2011 0x0073 - 0x0079
2012 Ljava/lang/BootstrapMethodError; -> 0x007a
2013 0x00ac - 0x00b2
2014 Ljava/lang/BootstrapMethodError; -> 0x00b3
2015 0x00e5 - 0x00eb
2016 Ljava/lang/BootstrapMethodError; -> 0x00ec
2017 0x011e - 0x0124
2018 Ljava/lang/BootstrapMethodError; -> 0x0125
2019 0x015d - 0x0163
2020 Ljava/lang/BootstrapMethodError; -> 0x0164
2021 0x0189 - 0x018f
2022 Ljava/lang/BootstrapMethodError; -> 0x0190
2023 0x01b5 - 0x01bb
2024 Ljava/lang/BootstrapMethodError; -> 0x01bc
2025 0x01e1 - 0x01e7
2026 Ljava/lang/BootstrapMethodError; -> 0x01e8
2027 positions :
2028 0x0000 line=477
2029 0x0007 line=478
2030 0x000a line=480
2031 0x000d line=481
2032 0x0010 line=485
2033 0x0011 line=482
2034 0x0012 line=483
2035 0x0019 line=484
2036 0x0022 line=487
2037 0x0025 line=488
2038 0x0028 line=492
2039 0x0029 line=489
2040 0x002a line=490
2041 0x0031 line=491
2042 0x003a line=494
2043 0x003d line=495
2044 0x0040 line=502
2045 0x0041 line=496
2046 0x0042 line=497
2047 0x004f line=498
2048 0x0056 line=499
2049 0x005f line=500
2050 0x0066 line=501
2051 0x0073 line=504
2052 0x0076 line=505
2053 0x0079 line=512
2054 0x007a line=506
2055 0x007b line=507
2056 0x0088 line=508
2057 0x008f line=509
2058 0x0098 line=510
2059 0x009f line=511
2060 0x00ac line=514
2061 0x00af line=515
2062 0x00b2 line=522
2063 0x00b3 line=516
2064 0x00b4 line=517
2065 0x00c1 line=518
2066 0x00c8 line=519
2067 0x00d1 line=520
2068 0x00d8 line=521
2069 0x00e5 line=524
2070 0x00e8 line=525
2071 0x00eb line=532
2072 0x00ec line=526
2073 0x00ed line=527
2074 0x00fa line=528
2075 0x0101 line=529
2076 0x010a line=530
2077 0x0111 line=531
2078 0x011e line=534
2079 0x0121 line=535
2080 0x0124 line=542
2081 0x0125 line=536
2082 0x0126 line=537
2083 0x0133 line=538
2084 0x013a line=539
2085 0x0143 line=540
2086 0x014a line=541
2087 0x0157 line=543
2088 0x015a line=544
2089 0x015d line=546
2090 0x0160 line=547
2091 0x0163 line=553
2092 0x0164 line=548
2093 0x0165 line=549
2094 0x016c line=550
2095 0x0175 line=551
2096 0x017c line=552
2097 0x0189 line=555
2098 0x018c line=556
2099 0x018f line=562
2100 0x0190 line=557
2101 0x0191 line=558
2102 0x0198 line=559
2103 0x01a1 line=560
2104 0x01a8 line=561
2105 0x01b5 line=564
2106 0x01b8 line=565
2107 0x01bb line=571
2108 0x01bc line=566
2109 0x01bd line=567
2110 0x01c4 line=568
2111 0x01cd line=569
2112 0x01d4 line=570
2113 0x01e1 line=573
2114 0x01e4 line=574
2115 0x01e7 line=580
2116 0x01e8 line=575
2117 0x01e9 line=576
2118 0x01f0 line=577
2119 0x01f9 line=578
2120 0x0200 line=579
2121 0x020d line=581
2122 0x0210 line=582
2123 locals :
2124 0x0012 - 0x0022 reg=0 expected Ljava/lang/NoSuchMethodError;
2125 0x002a - 0x003a reg=0 expected Ljava/lang/NoSuchMethodError;
2126 0x0042 - 0x0073 reg=0 expected Ljava/lang/BootstrapMethodError;
2127 0x007b - 0x00ac reg=0 expected Ljava/lang/BootstrapMethodError;
2128 0x00b4 - 0x00e5 reg=0 expected Ljava/lang/BootstrapMethodError;
2129 0x00ed - 0x011e reg=0 expected Ljava/lang/BootstrapMethodError;
2130 0x0126 - 0x0157 reg=0 expected Ljava/lang/BootstrapMethodError;
2131 0x0165 - 0x0189 reg=0 expected Ljava/lang/BootstrapMethodError;
2132 0x0191 - 0x01b5 reg=0 expected Ljava/lang/BootstrapMethodError;
2133 0x01bd - 0x01e1 reg=0 expected Ljava/lang/BootstrapMethodError;
2134 0x01e9 - 0x020d reg=0 expected Ljava/lang/BootstrapMethodError;
2135
2136 #32 : (in LTestBadBootstrapArguments;)
2137 name : 'voidReturnType'
2138 type : '()V'
2139 access : 0x000a (PRIVATE STATIC)
2140 code -
2141 registers : 0
2142 ins : 0
2143 outs : 0
2144 insns size : 4 16-bit code units
214500248c: |[00248c] TestBadBootstrapArguments.voidReturnType:()V
214600249c: 7100 0b00 0000 |0000: invoke-static {}, LTestBadBootstrapArguments;.assertNotReached:()V // method@000b
21470024a2: 0e00 |0003: return-void
2148 catches : (none)
2149 positions :
2150 0x0000 line=398
2151 0x0003 line=399
2152 locals :
2153
2154 #33 : (in LTestBadBootstrapArguments;)
2155 name : 'wideningArguments'
2156 type : '()V'
2157 access : 0x000a (PRIVATE STATIC)
2158 code -
2159 registers : 2
2160 ins : 0
2161 outs : 2
2162 insns size : 8 16-bit code units
21630024a4: |[0024a4] TestBadBootstrapArguments.wideningArguments:()V
21640024b4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
21650024b8: 1a01 d101 |0002: const-string v1, "wideningArguments" // string@01d1
21660024bc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
21670024c2: 0e00 |0007: return-void
2168 catches : (none)
2169 positions :
2170 0x0000 line=304
2171 0x0007 line=305
2172 locals :
2173
2174 #34 : (in LTestBadBootstrapArguments;)
2175 name : 'wideningBoxingArguments'
2176 type : '()V'
2177 access : 0x000a (PRIVATE STATIC)
2178 code -
2179 registers : 2
2180 ins : 0
2181 outs : 2
2182 insns size : 8 16-bit code units
21830024c4: |[0024c4] TestBadBootstrapArguments.wideningBoxingArguments:()V
21840024d4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
21850024d8: 1a01 d201 |0002: const-string v1, "wideningBoxingArguments" // string@01d2
21860024dc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
21870024e2: 0e00 |0007: return-void
2188 catches : (none)
2189 positions :
2190 0x0000 line=376
2191 0x0007 line=377
2192 locals :
2193
2194 #35 : (in LTestBadBootstrapArguments;)
2195 name : 'wrongArguments'
2196 type : '()V'
2197 access : 0x000a (PRIVATE STATIC)
2198 code -
2199 registers : 2
2200 ins : 0
2201 outs : 2
2202 insns size : 8 16-bit code units
22030024e4: |[0024e4] TestBadBootstrapArguments.wrongArguments:()V
22040024f4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
22050024f8: 1a01 d401 |0002: const-string v1, "wrongArguments" // string@01d4
22060024fc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
2207002502: 0e00 |0007: return-void
2208 catches : (none)
2209 positions :
2210 0x0000 line=186
2211 0x0007 line=187
2212 locals :
2213
2214 #36 : (in LTestBadBootstrapArguments;)
2215 name : 'wrongArgumentsAgain'
2216 type : '()V'
2217 access : 0x000a (PRIVATE STATIC)
2218 code -
2219 registers : 2
2220 ins : 0
2221 outs : 2
2222 insns size : 8 16-bit code units
2223002504: |[002504] TestBadBootstrapArguments.wrongArgumentsAgain:()V
2224002514: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
2225002518: 1a01 d501 |0002: const-string v1, "wrongArgumentsAgain" // string@01d5
222600251c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
2227002522: 0e00 |0007: return-void
2228 catches : (none)
2229 positions :
2230 0x0000 line=214
2231 0x0007 line=215
2232 locals :
2233
2234 #37 : (in LTestBadBootstrapArguments;)
2235 name : 'wrongParameterTypes'
2236 type : '()V'
2237 access : 0x000a (PRIVATE STATIC)
2238 code -
2239 registers : 2
2240 ins : 0
2241 outs : 2
2242 insns size : 8 16-bit code units
2243002524: |[002524] TestBadBootstrapArguments.wrongParameterTypes:()V
2244002534: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
2245002538: 1a01 d601 |0002: const-string v1, "wrongParameterTypes" // string@01d6
224600253c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
2247002542: 0e00 |0007: return-void
2248 catches : (none)
2249 positions :
2250 0x0000 line=102
2251 0x0007 line=103
2252 locals :
2253
2254 Virtual methods -
2255 source_file_idx : 144 (TestBadBootstrapArguments.java)
2256
2257Class #7 header:
2258class_idx : 10
2259access_flags : 0 (0x0000)
2260superclass_idx : 9
2261interfaces_off : 0 (0x000000)
2262source_file_idx : 147
2263annotations_off : 30988 (0x00790c)
2264class_data_off : 29220 (0x007224)
2265static_fields_size : 1
2266instance_fields_size: 0
2267direct_methods_size : 7
2268virtual_methods_size: 0
2269
2270Class #7 annotations:
2271Annotations on method #67 'bsm'
2272 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
2273Annotations on method #71 'testDynamic'
2274 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
2275
2276Class #7 -
2277 Class descriptor : 'LTestDynamicBootstrapArguments;'
2278 Access flags : 0x0000 ()
2279 Superclass : 'LTestBase;'
2280 Interfaces -
2281 Static fields -
2282 #0 : (in LTestDynamicBootstrapArguments;)
2283 name : 'bsmCalls'
2284 type : 'I'
2285 access : 0x000a (PRIVATE STATIC)
2286 Instance fields -
2287 Direct methods -
2288 #0 : (in LTestDynamicBootstrapArguments;)
2289 name : '<clinit>'
2290 type : '()V'
2291 access : 0x10008 (STATIC CONSTRUCTOR)
Orion Hodson775224d2017-07-05 11:04:01 +01002292 code -
2293 registers : 1
2294 ins : 0
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002295 outs : 0
2296 insns size : 4 16-bit code units
22970029c8: |[0029c8] TestDynamicBootstrapArguments.<clinit>:()V
22980029d8: 1200 |0000: const/4 v0, #int 0 // #0
22990029da: 6700 0000 |0001: sput v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000
23000029de: 0e00 |0003: return-void
Orion Hodson775224d2017-07-05 11:04:01 +01002301 catches : (none)
2302 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002303 0x0000 line=27
Orion Hodson775224d2017-07-05 11:04:01 +01002304 locals :
2305
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002306 #1 : (in LTestDynamicBootstrapArguments;)
2307 name : '<init>'
Orion Hodson775224d2017-07-05 11:04:01 +01002308 type : '()V'
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002309 access : 0x10000 (CONSTRUCTOR)
Orion Hodson775224d2017-07-05 11:04:01 +01002310 code -
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002311 registers : 1
2312 ins : 1
2313 outs : 1
2314 insns size : 4 16-bit code units
23150029e0: |[0029e0] TestDynamicBootstrapArguments.<init>:()V
23160029f0: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032
23170029f6: 0e00 |0003: return-void
2318 catches : (none)
2319 positions :
2320 0x0000 line=26
2321 locals :
2322 0x0000 - 0x0004 reg=0 this LTestDynamicBootstrapArguments;
2323
2324 #2 : (in LTestDynamicBootstrapArguments;)
2325 name : 'bsm'
2326 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;J)Ljava/lang/invoke/CallSite;'
2327 access : 0x0008 (STATIC)
2328 code -
2329 registers : 11
2330 ins : 6
2331 outs : 4
2332 insns size : 43 16-bit code units
2333002960: |[002960] TestDynamicBootstrapArguments.bsm:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;J)Ljava/lang/invoke/CallSite;
2334002970: 6000 0000 |0000: sget v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000
2335002974: d800 0001 |0002: add-int/lit8 v0, v0, #int 1 // #01
2336002978: 6700 0000 |0004: sput v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000
233700297c: 1c00 0a00 |0006: const-class v0, LTestDynamicBootstrapArguments; // type@000a
2338002980: 2201 2d00 |0008: new-instance v1, Ljava/lang/StringBuilder; // type@002d
2339002984: 7010 c100 0100 |000a: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
234000298a: 6e20 c800 6100 |000d: invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
2341002990: 6e20 c800 8100 |0010: invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
2342002996: 6e30 c600 910a |0013: invoke-virtual {v1, v9, v10}, Ljava/lang/StringBuilder;.append:(J)Ljava/lang/StringBuilder; // method@00c6
234300299c: 6e10 ca00 0100 |0016: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
23440029a2: 0c01 |0019: move-result-object v1
23450029a4: 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
23460029aa: 0c02 |001d: move-result-object v2
23470029ac: 6203 1300 |001e: sget-object v3, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
23480029b0: 1a04 ea00 |0020: const-string v4, "bsm" // string@00ea
23490029b4: 6e20 b300 4300 |0022: invoke-virtual {v3, v4}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
23500029ba: 2203 3400 |0025: new-instance v3, Ljava/lang/invoke/ConstantCallSite; // type@0034
23510029be: 7020 d200 2300 |0027: invoke-direct {v3, v2}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
23520029c4: 1103 |002a: return-object v3
2353 catches : (none)
2354 positions :
2355 0x0000 line=36
2356 0x0006 line=37
2357 0x0008 line=38
2358 0x001a line=39
2359 0x001e line=40
2360 0x0025 line=41
2361 locals :
2362 0x0008 - 0x002b reg=0 definingClass Ljava/lang/Class; Ljava/lang/Class<*>;
2363 0x001a - 0x002b reg=1 methodName Ljava/lang/String;
2364 0x001e - 0x002b reg=2 mh Ljava/lang/invoke/MethodHandle;
2365 0x0000 - 0x002b reg=5 lookup Ljava/lang/invoke/MethodHandles$Lookup;
2366 0x0000 - 0x002b reg=6 name Ljava/lang/String;
2367 0x0000 - 0x002b reg=7 methodType Ljava/lang/invoke/MethodType;
2368 0x0000 - 0x002b reg=8 otherNameComponent Ljava/lang/String;
2369 0x0000 - 0x002b reg=9 nameSuffix J
2370
2371 #3 : (in LTestDynamicBootstrapArguments;)
2372 name : 'targetA100000000'
2373 type : '(ILjava/lang/String;Ljava/lang/Double;)I'
2374 access : 0x000a (PRIVATE STATIC)
2375 code -
2376 registers : 5
2377 ins : 3
2378 outs : 2
2379 insns size : 30 16-bit code units
23800028f8: |[0028f8] TestDynamicBootstrapArguments.targetA100000000:(ILjava/lang/String;Ljava/lang/Double;)I
2381002908: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
238200290c: 6e20 ad00 2000 |0002: invoke-virtual {v0, v2}, Ljava/io/PrintStream;.print:(I)V // method@00ad
2383002912: 6200 1300 |0005: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
2384002916: 1a01 0c00 |0007: const-string v1, ", " // string@000c
238500291a: 6e20 b000 1000 |0009: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
2386002920: 6200 1300 |000c: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
2387002924: 6e20 b000 3000 |000e: invoke-virtual {v0, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
238800292a: 6200 1300 |0011: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
238900292e: 1a01 0c00 |0013: const-string v1, ", " // string@000c
2390002932: 6e20 b000 1000 |0015: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
2391002938: 6200 1300 |0018: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
239200293c: 6e20 b200 4000 |001a: invoke-virtual {v0, v4}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
2393002942: 0f02 |001d: return v2
2394 catches : (none)
2395 positions :
2396 0x0000 line=71
2397 0x0005 line=72
2398 0x000c line=73
2399 0x0011 line=74
2400 0x0018 line=75
2401 0x001d line=76
2402 locals :
2403 0x0000 - 0x001e reg=2 i I
2404 0x0000 - 0x001e reg=3 s Ljava/lang/String;
2405 0x0000 - 0x001e reg=4 d Ljava/lang/Double;
2406
2407 #4 : (in LTestDynamicBootstrapArguments;)
2408 name : 'test'
2409 type : '()V'
2410 access : 0x0008 (STATIC)
2411 code -
2412 registers : 2
2413 ins : 0
2414 outs : 2
2415 insns size : 25 16-bit code units
24160029f8: |[0029f8] TestDynamicBootstrapArguments.test:()V
2417002a08: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
2418002a0c: 1a01 9200 |0002: const-string v1, "TestDynamicArguments" // string@0092
2419002a10: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
2420002a16: 7100 4600 0000 |0007: invoke-static {}, LTestDynamicBootstrapArguments;.testCallSites:()V // method@0046
2421002a1c: 6000 0000 |000a: sget v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000
2422002a20: 1231 |000c: const/4 v1, #int 3 // #3
2423002a22: 7120 4100 0100 |000d: invoke-static {v1, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041
2424002a28: 7100 4600 0000 |0010: invoke-static {}, LTestDynamicBootstrapArguments;.testCallSites:()V // method@0046
2425002a2e: 6000 0000 |0013: sget v0, LTestDynamicBootstrapArguments;.bsmCalls:I // field@0000
2426002a32: 7120 4100 0100 |0015: invoke-static {v1, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041
2427002a38: 0e00 |0018: return-void
2428 catches : (none)
2429 positions :
2430 0x0000 line=86
2431 0x0007 line=87
2432 0x000a line=88
2433 0x0010 line=89
2434 0x0013 line=90
2435 0x0018 line=91
2436 locals :
2437
2438 #5 : (in LTestDynamicBootstrapArguments;)
2439 name : 'testCallSites'
2440 type : '()V'
2441 access : 0x0008 (STATIC)
2442 code -
2443 registers : 3
Orion Hodson775224d2017-07-05 11:04:01 +01002444 ins : 0
2445 outs : 3
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002446 insns size : 55 16-bit code units
2447002a3c: |[002a3c] TestDynamicBootstrapArguments.testCallSites:()V
2448002a4c: 1a00 8b00 |0000: const-string v0, "One" // string@008b
2449002a50: 1801 182d 4454 fb21 0940 |0002: const-wide v1, #double 3.14159 // #400921fb54442d18
2450002a5a: 7120 b900 2100 |0007: invoke-static {v1, v2}, Ljava/lang/Double;.valueOf:(D)Ljava/lang/Double; // method@00b9
2451002a60: 0c01 |000a: move-result-object v1
2452002a62: 1202 |000b: const/4 v2, #int 0 // #0
2453002a64: fc30 0f00 0201 |000c: invoke-custom {v2, v0, v1}, call_site@000f
2454002a6a: 0a00 |000f: move-result v0
2455002a6c: 7120 4100 0200 |0010: invoke-static {v2, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041
2456002a72: 1a00 a200 |0013: const-string v0, "Two" // string@00a2
2457002a76: 1801 6957 148b 0abf 0540 |0015: const-wide v1, #double 2.71828 // #4005bf0a8b145769
2458002a80: 7120 b900 2100 |001a: invoke-static {v1, v2}, Ljava/lang/Double;.valueOf:(D)Ljava/lang/Double; // method@00b9
2459002a86: 0c01 |001d: move-result-object v1
2460002a88: 1212 |001e: const/4 v2, #int 1 // #1
2461002a8a: fc30 1000 0201 |001f: invoke-custom {v2, v0, v1}, call_site@0010
2462002a90: 0a00 |0022: move-result v0
2463002a92: 7120 4100 0200 |0023: invoke-static {v2, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041
2464002a98: 1a00 9f00 |0026: const-string v0, "Three" // string@009f
2465002a9c: 1601 0000 |0028: const-wide/16 v1, #int 0 // #0
2466002aa0: 7120 b900 2100 |002a: invoke-static {v1, v2}, Ljava/lang/Double;.valueOf:(D)Ljava/lang/Double; // method@00b9
2467002aa6: 0c01 |002d: move-result-object v1
2468002aa8: 1222 |002e: const/4 v2, #int 2 // #2
2469002aaa: fc30 1100 0201 |002f: invoke-custom {v2, v0, v1}, call_site@0011
2470002ab0: 0a00 |0032: move-result v0
2471002ab2: 7120 4100 0200 |0033: invoke-static {v2, v0}, LTestDynamicBootstrapArguments;.assertEquals:(II)V // method@0041
2472002ab8: 0e00 |0036: return-void
Orion Hodson775224d2017-07-05 11:04:01 +01002473 catches : (none)
2474 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002475 0x0000 line=80
2476 0x0013 line=81
2477 0x0026 line=82
2478 0x0036 line=83
Orion Hodson775224d2017-07-05 11:04:01 +01002479 locals :
2480
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002481 #6 : (in LTestDynamicBootstrapArguments;)
2482 name : 'testDynamic'
2483 type : '(ILjava/lang/String;Ljava/lang/Double;)I'
2484 access : 0x000a (PRIVATE STATIC)
2485 code -
2486 registers : 4
2487 ins : 3
2488 outs : 0
2489 insns size : 5 16-bit code units
2490002944: |[002944] TestDynamicBootstrapArguments.testDynamic:(ILjava/lang/String;Ljava/lang/Double;)I
2491002954: 7100 4200 0000 |0000: invoke-static {}, LTestDynamicBootstrapArguments;.assertNotReached:()V // method@0042
249200295a: 1200 |0003: const/4 v0, #int 0 // #0
249300295c: 0f00 |0004: return v0
2494 catches : (none)
2495 positions :
2496 0x0000 line=66
2497 0x0003 line=67
2498 locals :
2499 0x0000 - 0x0005 reg=1 i I
2500 0x0000 - 0x0005 reg=2 s Ljava/lang/String;
2501 0x0000 - 0x0005 reg=3 d Ljava/lang/Double;
2502
2503 Virtual methods -
2504 source_file_idx : 147 (TestDynamicBootstrapArguments.java)
2505
2506Class #8 header:
2507class_idx : 12
2508access_flags : 0 (0x0000)
2509superclass_idx : 9
2510interfaces_off : 0 (0x000000)
2511source_file_idx : 148
2512annotations_off : 31020 (0x00792c)
2513class_data_off : 29258 (0x00724a)
2514static_fields_size : 1
2515instance_fields_size: 1
2516direct_methods_size : 18
2517virtual_methods_size: 1
2518
2519Class #8 annotations:
2520Annotations on class
2521 VISIBILITY_SYSTEM Ldalvik/annotation/MemberClasses; value={ LTestInvocationKinds$Widget; }
2522Annotations on method #78 'getInstanceField'
2523 VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupInstanceFieldGetter" } fieldOrMethodName="instance_field" parameterTypes={ LTestInvocationKinds; } returnType=D
2524Annotations on method #80 'getStaticField'
2525 VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupStaticFieldGetter" } fieldOrMethodName="static_field" parameterTypes={ } returnType=I
2526Annotations on method #81 'lookupConstructor'
2527 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
2528Annotations on method #82 'lookupInstanceFieldGetter'
2529 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
2530Annotations on method #83 'lookupInstanceFieldSetter'
2531 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
2532Annotations on method #84 'lookupStaticFieldGetter'
2533 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
2534Annotations on method #85 'lookupStaticFieldSetter'
2535 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
2536Annotations on method #86 'lookupVirtual'
2537 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
2538Annotations on method #87 'makeWidget'
2539 VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupConstructor" } fieldOrMethodName="unused" parameterTypes={ I } returnType=LTestInvocationKinds$Widget;
2540Annotations on method #88 'maxIntegerValue'
2541 VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupVirtual" } fieldOrMethodName="getMaxIntegerValue" parameterTypes={ LTestInvocationKinds; I I } returnType=I
2542Annotations on method #89 'setInstanceField'
2543 VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupInstanceFieldSetter" } fieldOrMethodName="instance_field" parameterTypes={ LTestInvocationKinds; D } returnType=V
2544Annotations on method #90 'setStaticField'
2545 VISIBILITY_RUNTIME Lannotations/CalledByIndy; bootstrapMethod={ Lannotations/BootstrapMethod; enclosingType=LTestInvocationKinds; name="lookupStaticFieldSetter" } fieldOrMethodName="static_field" parameterTypes={ I } returnType=V
2546
2547Class #8 -
2548 Class descriptor : 'LTestInvocationKinds;'
2549 Access flags : 0x0000 ()
2550 Superclass : 'LTestBase;'
2551 Interfaces -
2552 Static fields -
2553 #0 : (in LTestInvocationKinds;)
2554 name : 'static_field'
2555 type : 'I'
2556 access : 0x000a (PRIVATE STATIC)
2557 Instance fields -
2558 #0 : (in LTestInvocationKinds;)
2559 name : 'instance_field'
2560 type : 'D'
2561 access : 0x0002 (PRIVATE)
2562 Direct methods -
2563 #0 : (in LTestInvocationKinds;)
2564 name : '<init>'
2565 type : '()V'
2566 access : 0x10000 (CONSTRUCTOR)
2567 code -
2568 registers : 1
2569 ins : 1
2570 outs : 1
2571 insns size : 4 16-bit code units
2572002ca4: |[002ca4] TestInvocationKinds.<init>:()V
2573002cb4: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032
2574002cba: 0e00 |0003: return-void
2575 catches : (none)
2576 positions :
2577 0x0000 line=25
2578 locals :
2579 0x0000 - 0x0004 reg=0 this LTestInvocationKinds;
2580
2581 #1 : (in LTestInvocationKinds;)
2582 name : 'getInstanceField'
2583 type : '(LTestInvocationKinds;)D'
2584 access : 0x000a (PRIVATE STATIC)
2585 code -
2586 registers : 3
2587 ins : 1
2588 outs : 0
2589 insns size : 6 16-bit code units
2590002af0: |[002af0] TestInvocationKinds.getInstanceField:(LTestInvocationKinds;)D
2591002b00: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d
2592002b06: 1900 f87f |0003: const-wide/high16 v0, #long 9221120237041090560 // #7ff8
2593002b0a: 1000 |0005: return-wide v0
2594 catches : (none)
2595 positions :
2596 0x0000 line=117
2597 0x0003 line=118
2598 locals :
2599 0x0000 - 0x0006 reg=2 instance LTestInvocationKinds;
2600
2601 #2 : (in LTestInvocationKinds;)
2602 name : 'getStaticField'
2603 type : '()I'
2604 access : 0x000a (PRIVATE STATIC)
2605 code -
2606 registers : 1
2607 ins : 0
2608 outs : 0
2609 insns size : 5 16-bit code units
2610002b28: |[002b28] TestInvocationKinds.getStaticField:()I
2611002b38: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d
2612002b3e: 1200 |0003: const/4 v0, #int 0 // #0
2613002b40: 0f00 |0004: return v0
2614 catches : (none)
2615 positions :
2616 0x0000 line=71
2617 0x0003 line=72
2618 locals :
2619
2620 #3 : (in LTestInvocationKinds;)
2621 name : 'lookupConstructor'
2622 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;'
2623 access : 0x000a (PRIVATE STATIC)
2624 code -
2625 registers : 7
2626 ins : 3
2627 outs : 3
2628 insns size : 20 16-bit code units
2629002b60: |[002b60] TestInvocationKinds.lookupConstructor:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
2630002b70: 6e10 e500 0600 |0000: invoke-virtual {v6}, Ljava/lang/invoke/MethodType;.returnType:()Ljava/lang/Class; // method@00e5
2631002b76: 0c00 |0003: move-result-object v0
2632002b78: 6201 1400 |0004: sget-object v1, Ljava/lang/Void;.TYPE:Ljava/lang/Class; // field@0014
2633002b7c: 6e20 df00 1600 |0006: invoke-virtual {v6, v1}, Ljava/lang/invoke/MethodType;.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType; // method@00df
2634002b82: 0c01 |0009: move-result-object v1
2635002b84: 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
2636002b8a: 0c02 |000d: move-result-object v2
2637002b8c: 2203 3400 |000e: new-instance v3, Ljava/lang/invoke/ConstantCallSite; // type@0034
2638002b90: 7020 d200 2300 |0010: invoke-direct {v3, v2}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
2639002b96: 1103 |0013: return-object v3
2640 catches : (none)
2641 positions :
2642 0x0000 line=183
2643 0x0004 line=184
2644 0x000a line=185
2645 0x000e line=186
2646 locals :
2647 0x0004 - 0x0014 reg=0 cls Ljava/lang/Class; Ljava/lang/Class<*>;
2648 0x000a - 0x0014 reg=1 constructorMethodType Ljava/lang/invoke/MethodType;
2649 0x000e - 0x0014 reg=2 mh Ljava/lang/invoke/MethodHandle;
2650 0x0000 - 0x0014 reg=4 lookup Ljava/lang/invoke/MethodHandles$Lookup;
2651 0x0000 - 0x0014 reg=5 name Ljava/lang/String;
2652 0x0000 - 0x0014 reg=6 methodType Ljava/lang/invoke/MethodType;
2653
2654 #4 : (in LTestInvocationKinds;)
2655 name : 'lookupInstanceFieldGetter'
2656 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;'
2657 access : 0x0008 (STATIC)
2658 code -
2659 registers : 5
2660 ins : 3
2661 outs : 4
2662 insns size : 20 16-bit code units
2663002b98: |[002b98] TestInvocationKinds.lookupInstanceFieldGetter:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
2664002ba8: 0000 |0000: nop // spacer
2665002baa: 1200 |0001: const/4 v0, #int 0 // #0
2666002bac: 6e20 e400 0400 |0002: invoke-virtual {v4, v0}, Ljava/lang/invoke/MethodType;.parameterType:(I)Ljava/lang/Class; // method@00e4
2667002bb2: 0c00 |0005: move-result-object v0
2668002bb4: 6e10 e500 0400 |0006: invoke-virtual {v4}, Ljava/lang/invoke/MethodType;.returnType:()Ljava/lang/Class; // method@00e5
2669002bba: 0c01 |0009: move-result-object v1
2670002bbc: 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
2671002bc2: 0c00 |000d: move-result-object v0
2672002bc4: 2201 3400 |000e: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
2673002bc8: 7020 d200 0100 |0010: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
2674002bce: 1101 |0013: return-object v1
2675 catches : (none)
2676 positions :
2677 0x0000 line=101
2678 0x0001 line=102
2679 0x000e line=103
2680 locals :
2681 0x000e - 0x0014 reg=0 mh Ljava/lang/invoke/MethodHandle;
2682 0x0000 - 0x0014 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup;
2683 0x0000 - 0x0014 reg=3 name Ljava/lang/String;
2684 0x0000 - 0x0014 reg=4 methodType Ljava/lang/invoke/MethodType;
2685
2686 #5 : (in LTestInvocationKinds;)
2687 name : 'lookupInstanceFieldSetter'
2688 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;'
2689 access : 0x0008 (STATIC)
2690 code -
2691 registers : 5
2692 ins : 3
2693 outs : 4
2694 insns size : 21 16-bit code units
2695002bd0: |[002bd0] TestInvocationKinds.lookupInstanceFieldSetter:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
2696002be0: 0000 |0000: nop // spacer
2697002be2: 1200 |0001: const/4 v0, #int 0 // #0
2698002be4: 6e20 e400 0400 |0002: invoke-virtual {v4, v0}, Ljava/lang/invoke/MethodType;.parameterType:(I)Ljava/lang/Class; // method@00e4
2699002bea: 0c00 |0005: move-result-object v0
2700002bec: 1211 |0006: const/4 v1, #int 1 // #1
2701002bee: 6e20 e400 1400 |0007: invoke-virtual {v4, v1}, Ljava/lang/invoke/MethodType;.parameterType:(I)Ljava/lang/Class; // method@00e4
2702002bf4: 0c01 |000a: move-result-object v1
2703002bf6: 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
2704002bfc: 0c00 |000e: move-result-object v0
2705002bfe: 2201 3400 |000f: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
2706002c02: 7020 d200 0100 |0011: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
2707002c08: 1101 |0014: return-object v1
2708 catches : (none)
2709 positions :
2710 0x0000 line=78
2711 0x0001 line=79
2712 0x000f line=80
2713 locals :
2714 0x000f - 0x0015 reg=0 mh Ljava/lang/invoke/MethodHandle;
2715 0x0000 - 0x0015 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup;
2716 0x0000 - 0x0015 reg=3 name Ljava/lang/String;
2717 0x0000 - 0x0015 reg=4 methodType Ljava/lang/invoke/MethodType;
2718
2719 #6 : (in LTestInvocationKinds;)
2720 name : 'lookupStaticFieldGetter'
2721 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;'
2722 access : 0x0008 (STATIC)
2723 code -
2724 registers : 5
2725 ins : 3
2726 outs : 4
2727 insns size : 16 16-bit code units
2728002c0c: |[002c0c] TestInvocationKinds.lookupStaticFieldGetter:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
2729002c1c: 1c00 0c00 |0000: const-class v0, LTestInvocationKinds; // type@000c
2730002c20: 6e10 e500 0400 |0002: invoke-virtual {v4}, Ljava/lang/invoke/MethodType;.returnType:()Ljava/lang/Class; // method@00e5
2731002c26: 0c01 |0005: move-result-object v1
2732002c28: 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
2733002c2e: 0c00 |0009: move-result-object v0
2734002c30: 2201 3400 |000a: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
2735002c34: 7020 d200 0100 |000c: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
2736002c3a: 1101 |000f: return-object v1
2737 catches : (none)
2738 positions :
2739 0x0000 line=32
2740 0x0002 line=33
2741 0x000a line=34
2742 locals :
2743 0x000a - 0x0010 reg=0 mh Ljava/lang/invoke/MethodHandle;
2744 0x0000 - 0x0010 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup;
2745 0x0000 - 0x0010 reg=3 name Ljava/lang/String;
2746 0x0000 - 0x0010 reg=4 methodType Ljava/lang/invoke/MethodType;
2747
2748 #7 : (in LTestInvocationKinds;)
2749 name : 'lookupStaticFieldSetter'
2750 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;'
2751 access : 0x0008 (STATIC)
2752 code -
2753 registers : 5
2754 ins : 3
2755 outs : 4
2756 insns size : 17 16-bit code units
2757002c3c: |[002c3c] TestInvocationKinds.lookupStaticFieldSetter:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
2758002c4c: 1c00 0c00 |0000: const-class v0, LTestInvocationKinds; // type@000c
2759002c50: 1201 |0002: const/4 v1, #int 0 // #0
2760002c52: 6e20 e400 1400 |0003: invoke-virtual {v4, v1}, Ljava/lang/invoke/MethodType;.parameterType:(I)Ljava/lang/Class; // method@00e4
2761002c58: 0c01 |0006: move-result-object v1
2762002c5a: 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
2763002c60: 0c00 |000a: move-result-object v0
2764002c62: 2201 3400 |000b: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
2765002c66: 7020 d200 0100 |000d: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
2766002c6c: 1101 |0010: return-object v1
2767 catches : (none)
2768 positions :
2769 0x0000 line=54
2770 0x0002 line=56
2771 0x0007 line=55
2772 0x000b line=57
2773 locals :
2774 0x000b - 0x0011 reg=0 mh Ljava/lang/invoke/MethodHandle;
2775 0x0000 - 0x0011 reg=2 lookup Ljava/lang/invoke/MethodHandles$Lookup;
2776 0x0000 - 0x0011 reg=3 name Ljava/lang/String;
2777 0x0000 - 0x0011 reg=4 methodType Ljava/lang/invoke/MethodType;
2778
2779 #8 : (in LTestInvocationKinds;)
2780 name : 'lookupVirtual'
2781 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;'
2782 access : 0x000a (PRIVATE STATIC)
2783 code -
2784 registers : 6
2785 ins : 3
2786 outs : 4
2787 insns size : 18 16-bit code units
2788002c70: |[002c70] TestInvocationKinds.lookupVirtual:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
2789002c80: 1200 |0000: const/4 v0, #int 0 // #0
2790002c82: 1211 |0001: const/4 v1, #int 1 // #1
2791002c84: 6e30 e000 0501 |0002: invoke-virtual {v5, v0, v1}, Ljava/lang/invoke/MethodType;.dropParameterTypes:(II)Ljava/lang/invoke/MethodType; // method@00e0
2792002c8a: 0c00 |0005: move-result-object v0
2793002c8c: 1c01 0c00 |0006: const-class v1, LTestInvocationKinds; // type@000c
2794002c90: 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
2795002c96: 0c01 |000b: move-result-object v1
2796002c98: 2202 3400 |000c: new-instance v2, Ljava/lang/invoke/ConstantCallSite; // type@0034
2797002c9c: 7020 d200 1200 |000e: invoke-direct {v2, v1}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
2798002ca2: 1102 |0011: return-object v2
2799 catches : (none)
2800 positions :
2801 0x0000 line=146
2802 0x0006 line=147
2803 0x000c line=148
2804 locals :
2805 0x0006 - 0x0012 reg=0 mt Ljava/lang/invoke/MethodType;
2806 0x000c - 0x0012 reg=1 mh Ljava/lang/invoke/MethodHandle;
2807 0x0000 - 0x0012 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup;
2808 0x0000 - 0x0012 reg=4 name Ljava/lang/String;
2809 0x0000 - 0x0012 reg=5 methodType Ljava/lang/invoke/MethodType;
2810
2811 #9 : (in LTestInvocationKinds;)
2812 name : 'makeWidget'
2813 type : '(I)LTestInvocationKinds$Widget;'
2814 access : 0x000a (PRIVATE STATIC)
2815 code -
2816 registers : 2
2817 ins : 1
2818 outs : 0
2819 insns size : 5 16-bit code units
2820002ad4: |[002ad4] TestInvocationKinds.makeWidget:(I)LTestInvocationKinds$Widget;
2821002ae4: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d
2822002aea: 1200 |0003: const/4 v0, #int 0 // #0
2823002aec: 1100 |0004: return-object v0
2824 catches : (none)
2825 positions :
2826 0x0000 line=200
2827 0x0003 line=201
2828 locals :
2829 0x0000 - 0x0005 reg=1 v I
2830
2831 #10 : (in LTestInvocationKinds;)
2832 name : 'maxIntegerValue'
2833 type : '(LTestInvocationKinds;II)I'
2834 access : 0x000a (PRIVATE STATIC)
2835 code -
2836 registers : 4
2837 ins : 3
2838 outs : 0
2839 insns size : 5 16-bit code units
2840002b44: |[002b44] TestInvocationKinds.maxIntegerValue:(LTestInvocationKinds;II)I
2841002b54: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d
2842002b5a: 1200 |0003: const/4 v0, #int 0 // #0
2843002b5c: 0f00 |0004: return v0
2844 catches : (none)
2845 positions :
2846 0x0000 line=159
2847 0x0003 line=160
2848 locals :
2849 0x0000 - 0x0005 reg=1 receiver LTestInvocationKinds;
2850 0x0000 - 0x0005 reg=2 x I
2851 0x0000 - 0x0005 reg=3 y I
2852
2853 #11 : (in LTestInvocationKinds;)
2854 name : 'setInstanceField'
2855 type : '(LTestInvocationKinds;D)V'
2856 access : 0x000a (PRIVATE STATIC)
2857 code -
2858 registers : 5
2859 ins : 3
2860 outs : 0
2861 insns size : 8 16-bit code units
2862002cbc: |[002cbc] TestInvocationKinds.setInstanceField:(LTestInvocationKinds;D)V
2863002ccc: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d
2864002cd2: 1900 f87f |0003: const-wide/high16 v0, #long 9221120237041090560 // #7ff8
2865002cd6: 5a20 0200 |0005: iput-wide v0, v2, LTestInvocationKinds;.instance_field:D // field@0002
2866002cda: 0e00 |0007: return-void
2867 catches : (none)
2868 positions :
2869 0x0000 line=94
2870 0x0003 line=95
2871 0x0007 line=96
2872 locals :
2873 0x0000 - 0x0008 reg=2 instance LTestInvocationKinds;
2874 0x0000 - 0x0008 reg=3 value D
2875
2876 #12 : (in LTestInvocationKinds;)
2877 name : 'setStaticField'
2878 type : '(I)V'
2879 access : 0x000a (PRIVATE STATIC)
2880 code -
2881 registers : 1
2882 ins : 1
2883 outs : 0
2884 insns size : 4 16-bit code units
2885002cdc: |[002cdc] TestInvocationKinds.setStaticField:(I)V
2886002cec: 7100 4d00 0000 |0000: invoke-static {}, LTestInvocationKinds;.assertNotReached:()V // method@004d
2887002cf2: 0e00 |0003: return-void
2888 catches : (none)
2889 positions :
2890 0x0000 line=48
2891 0x0003 line=49
2892 locals :
2893 0x0000 - 0x0004 reg=0 value I
2894
2895 #13 : (in LTestInvocationKinds;)
2896 name : 'test'
Orion Hodson775224d2017-07-05 11:04:01 +01002897 type : '()V'
2898 access : 0x0009 (PUBLIC STATIC)
2899 code -
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002900 registers : 2
Orion Hodson775224d2017-07-05 11:04:01 +01002901 ins : 0
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002902 outs : 2
2903 insns size : 24 16-bit code units
2904002cf4: |[002cf4] TestInvocationKinds.test:()V
2905002d04: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
2906002d08: 1c01 0c00 |0002: const-class v1, LTestInvocationKinds; // type@000c
2907002d0c: 6e10 b700 0100 |0004: invoke-virtual {v1}, Ljava/lang/Class;.getName:()Ljava/lang/String; // method@00b7
2908002d12: 0c01 |0007: move-result-object v1
2909002d14: 6e20 b300 1000 |0008: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
2910002d1a: 7100 5f00 0000 |000b: invoke-static {}, LTestInvocationKinds;.testStaticFieldAccessors:()V // method@005f
2911002d20: 7100 5d00 0000 |000e: invoke-static {}, LTestInvocationKinds;.testInstanceFieldAccessors:()V // method@005d
2912002d26: 7100 5e00 0000 |0011: invoke-static {}, LTestInvocationKinds;.testInvokeVirtual:()V // method@005e
2913002d2c: 7100 5c00 0000 |0014: invoke-static {}, LTestInvocationKinds;.testConstructor:()V // method@005c
2914002d32: 0e00 |0017: return-void
Orion Hodson775224d2017-07-05 11:04:01 +01002915 catches : (none)
2916 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002917 0x0000 line=212
2918 0x000b line=213
2919 0x000e line=214
2920 0x0011 line=215
2921 0x0014 line=216
2922 0x0017 line=217
Orion Hodson775224d2017-07-05 11:04:01 +01002923 locals :
2924
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002925 #14 : (in LTestInvocationKinds;)
2926 name : 'testConstructor'
Orion Hodson775224d2017-07-05 11:04:01 +01002927 type : '()V'
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002928 access : 0x0008 (STATIC)
2929 code -
2930 registers : 3
2931 ins : 0
2932 outs : 2
2933 insns size : 31 16-bit code units
2934002d34: |[002d34] TestInvocationKinds.testConstructor:()V
2935002d44: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
2936002d48: 1a01 b601 |0002: const-string v1, "testConstructor => " // string@01b6
2937002d4c: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
2938002d52: 1230 |0007: const/4 v0, #int 3 // #3
2939002d54: fc10 1200 0000 |0008: invoke-custom {v0}, call_site@0012
2940002d5a: 0c00 |000b: move-result-object v0
2941002d5c: 1c01 0b00 |000c: const-class v1, LTestInvocationKinds$Widget; // type@000b
2942002d60: 6e10 c000 0000 |000e: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
2943002d66: 0c02 |0011: move-result-object v2
2944002d68: 7120 4c00 2100 |0012: invoke-static {v1, v2}, LTestInvocationKinds;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@004c
2945002d6e: 6201 1300 |0015: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
2946002d72: 6e10 c000 0000 |0017: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
2947002d78: 0c02 |001a: move-result-object v2
2948002d7a: 6e20 b200 2100 |001b: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
2949002d80: 0e00 |001e: return-void
2950 catches : (none)
2951 positions :
2952 0x0000 line=205
2953 0x0007 line=206
2954 0x000c line=207
2955 0x0015 line=208
2956 0x001e line=209
2957 locals :
2958 0x000c - 0x001f reg=0 receiver LTestInvocationKinds$Widget;
2959
2960 #15 : (in LTestInvocationKinds;)
2961 name : 'testInstanceFieldAccessors'
2962 type : '()V'
2963 access : 0x000a (PRIVATE STATIC)
Orion Hodson775224d2017-07-05 11:04:01 +01002964 code -
2965 registers : 5
2966 ins : 0
2967 outs : 4
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002968 insns size : 44 16-bit code units
2969002d84: |[002d84] TestInvocationKinds.testInstanceFieldAccessors:()V
2970002d94: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
2971002d98: 1a01 b801 |0002: const-string v1, "testInstanceFieldAccessors" // string@01b8
2972002d9c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
2973002da2: 2200 0c00 |0007: new-instance v0, LTestInvocationKinds; // type@000c
2974002da6: 7010 4900 0000 |0009: invoke-direct {v0}, LTestInvocationKinds;.<init>:()V // method@0049
2975002dac: 1601 0100 |000c: const-wide/16 v1, #int 1 // #1
2976002db0: 5a01 0200 |000e: iput-wide v1, v0, LTestInvocationKinds;.instance_field:D // field@0002
2977002db4: 1801 182d 4454 fb21 0940 |0010: const-wide v1, #double 3.14159 // #400921fb54442d18
2978002dbe: fc30 1300 1002 |0015: invoke-custom {v0, v1, v2}, call_site@0013
2979002dc4: 5303 0200 |0018: iget-wide v3, v0, LTestInvocationKinds;.instance_field:D // field@0002
2980002dc8: 7140 4a00 2143 |001a: invoke-static {v1, v2, v3, v4}, LTestInvocationKinds;.assertEquals:(DD)V // method@004a
2981002dce: 1801 6957 148b 0abf 0540 |001d: const-wide v1, #double 2.71828 // #4005bf0a8b145769
2982002dd8: 5a01 0200 |0022: iput-wide v1, v0, LTestInvocationKinds;.instance_field:D // field@0002
2983002ddc: fc10 1400 0000 |0024: invoke-custom {v0}, call_site@0014
2984002de2: 0b03 |0027: move-result-wide v3
2985002de4: 7140 4a00 2143 |0028: invoke-static {v1, v2, v3, v4}, LTestInvocationKinds;.assertEquals:(DD)V // method@004a
2986002dea: 0e00 |002b: return-void
Orion Hodson775224d2017-07-05 11:04:01 +01002987 catches : (none)
2988 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01002989 0x0000 line=133
2990 0x0007 line=134
2991 0x000c line=135
2992 0x0010 line=136
2993 0x0018 line=137
2994 0x001d line=138
2995 0x0024 line=139
2996 0x002b line=140
2997 locals :
2998 0x000c - 0x002c reg=0 instance LTestInvocationKinds;
2999
3000 #16 : (in LTestInvocationKinds;)
3001 name : 'testInvokeVirtual'
3002 type : '()V'
3003 access : 0x0008 (STATIC)
3004 code -
3005 registers : 3
3006 ins : 0
3007 outs : 3
3008 insns size : 25 16-bit code units
3009002dec: |[002dec] TestInvocationKinds.testInvokeVirtual:()V
3010002dfc: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
3011002e00: 1a01 ba01 |0002: const-string v1, "testInvokeVirtual => max(77, -3) = " // string@01ba
3012002e04: 6e20 b000 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
3013002e0a: 2200 0c00 |0007: new-instance v0, LTestInvocationKinds; // type@000c
3014002e0e: 7010 4900 0000 |0009: invoke-direct {v0}, LTestInvocationKinds;.<init>:()V // method@0049
3015002e14: 1301 4d00 |000c: const/16 v1, #int 77 // #4d
3016002e18: 12d2 |000e: const/4 v2, #int -3 // #fd
3017002e1a: fc30 1500 1002 |000f: invoke-custom {v0, v1, v2}, call_site@0015
3018002e20: 0a01 |0012: move-result v1
3019002e22: 6202 1300 |0013: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
3020002e26: 6e20 b100 1200 |0015: invoke-virtual {v2, v1}, Ljava/io/PrintStream;.println:(I)V // method@00b1
3021002e2c: 0e00 |0018: return-void
3022 catches : (none)
3023 positions :
3024 0x0000 line=168
3025 0x0007 line=169
3026 0x000c line=170
3027 0x0013 line=171
3028 0x0018 line=172
3029 locals :
3030 0x000c - 0x0019 reg=0 receiver LTestInvocationKinds;
3031 0x0013 - 0x0019 reg=1 result I
3032
3033 #17 : (in LTestInvocationKinds;)
3034 name : 'testStaticFieldAccessors'
3035 type : '()V'
3036 access : 0x000a (PRIVATE STATIC)
3037 code -
3038 registers : 2
3039 ins : 0
3040 outs : 2
3041 insns size : 47 16-bit code units
3042002e30: |[002e30] TestInvocationKinds.testStaticFieldAccessors:()V
3043002e40: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
3044002e44: 1a01 bb01 |0002: const-string v1, "testStaticFieldAccessors" // string@01bb
3045002e48: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
3046002e4e: 1230 |0007: const/4 v0, #int 3 // #3
3047002e50: fc10 1600 0000 |0008: invoke-custom {v0}, call_site@0016
3048002e56: 6001 0300 |000b: sget v1, LTestInvocationKinds;.static_field:I // field@0003
3049002e5a: 7120 4b00 0100 |000d: invoke-static {v1, v0}, LTestInvocationKinds;.assertEquals:(II)V // method@004b
3050002e60: 1240 |0010: const/4 v0, #int 4 // #4
3051002e62: fc10 1700 0000 |0011: invoke-custom {v0}, call_site@0017
3052002e68: 6001 0300 |0014: sget v1, LTestInvocationKinds;.static_field:I // field@0003
3053002e6c: 7120 4b00 0100 |0016: invoke-static {v1, v0}, LTestInvocationKinds;.assertEquals:(II)V // method@004b
3054002e72: 6000 0300 |0019: sget v0, LTestInvocationKinds;.static_field:I // field@0003
3055002e76: fc00 1800 0000 |001b: invoke-custom {}, call_site@0018
3056002e7c: 0a01 |001e: move-result v1
3057002e7e: 7120 4b00 1000 |001f: invoke-static {v0, v1}, LTestInvocationKinds;.assertEquals:(II)V // method@004b
3058002e84: 1400 ffff ff7f |0022: const v0, #float nan // #7fffffff
3059002e8a: 6700 0300 |0025: sput v0, LTestInvocationKinds;.static_field:I // field@0003
3060002e8e: fc00 1900 0000 |0027: invoke-custom {}, call_site@0019
3061002e94: 0a01 |002a: move-result v1
3062002e96: 7120 4b00 1000 |002b: invoke-static {v0, v1}, LTestInvocationKinds;.assertEquals:(II)V // method@004b
3063002e9c: 0e00 |002e: return-void
3064 catches : (none)
3065 positions :
3066 0x0000 line=122
3067 0x0007 line=123
3068 0x000b line=124
3069 0x0010 line=125
3070 0x0014 line=126
3071 0x0019 line=127
3072 0x0022 line=128
3073 0x0027 line=129
3074 0x002e line=130
Orion Hodson775224d2017-07-05 11:04:01 +01003075 locals :
3076
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01003077 Virtual methods -
3078 #0 : (in LTestInvocationKinds;)
3079 name : 'getMaxIntegerValue'
3080 type : '(II)I'
3081 access : 0x0001 (PUBLIC)
3082 code -
3083 registers : 4
3084 ins : 3
3085 outs : 0
3086 insns size : 6 16-bit code units
3087002b0c: |[002b0c] TestInvocationKinds.getMaxIntegerValue:(II)I
3088002b1c: 3732 0400 |0000: if-le v2, v3, 0004 // +0004
3089002b20: 0120 |0002: move v0, v2
3090002b22: 2802 |0003: goto 0005 // +0002
3091002b24: 0130 |0004: move v0, v3
3092002b26: 0f00 |0005: return v0
3093 catches : (none)
3094 positions :
3095 0x0000 line=164
3096 locals :
3097 0x0000 - 0x0006 reg=1 this LTestInvocationKinds;
3098 0x0000 - 0x0006 reg=2 x I
3099 0x0000 - 0x0006 reg=3 y I
3100
3101 source_file_idx : 148 (TestInvocationKinds.java)
3102
3103Class #9 header:
3104class_idx : 14
3105access_flags : 1 (0x0001)
3106superclass_idx : 9
3107interfaces_off : 18256 (0x004750)
3108source_file_idx : 149
3109annotations_off : 31132 (0x00799c)
3110class_data_off : 29344 (0x0072a0)
3111static_fields_size : 7
3112instance_fields_size: 0
3113direct_methods_size : 8
3114virtual_methods_size: 1
3115
3116Class #9 annotations:
3117Annotations on field #10 'threadIndex'
3118 VISIBILITY_SYSTEM Ldalvik/annotation/Signature; value={ "Ljava/lang/ThreadLocal<" "Ljava/lang/Integer;" ">;" }
3119Annotations on method #106 'linkerMethod'
3120 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
3121Annotations on method #109 'setCalled'
3122 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
3123Annotations on method #110 'test'
3124 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
3125
3126Class #9 -
3127 Class descriptor : 'LTestInvokeCustomWithConcurrentThreads;'
3128 Access flags : 0x0001 (PUBLIC)
3129 Superclass : 'LTestBase;'
3130 Interfaces -
3131 #0 : 'Ljava/lang/Runnable;'
3132 Static fields -
3133 #0 : (in LTestInvokeCustomWithConcurrentThreads;)
3134 name : 'NUMBER_OF_THREADS'
3135 type : 'I'
3136 access : 0x001a (PRIVATE STATIC FINAL)
3137 value : 16
3138 #1 : (in LTestInvokeCustomWithConcurrentThreads;)
3139 name : 'barrier'
3140 type : 'Ljava/util/concurrent/CyclicBarrier;'
3141 access : 0x001a (PRIVATE STATIC FINAL)
3142 #2 : (in LTestInvokeCustomWithConcurrentThreads;)
3143 name : 'called'
3144 type : '[Ljava/util/concurrent/atomic/AtomicInteger;'
3145 access : 0x001a (PRIVATE STATIC FINAL)
3146 #3 : (in LTestInvokeCustomWithConcurrentThreads;)
3147 name : 'instantiated'
3148 type : '[Ljava/lang/invoke/CallSite;'
3149 access : 0x001a (PRIVATE STATIC FINAL)
3150 #4 : (in LTestInvokeCustomWithConcurrentThreads;)
3151 name : 'nextIndex'
3152 type : 'Ljava/util/concurrent/atomic/AtomicInteger;'
3153 access : 0x001a (PRIVATE STATIC FINAL)
3154 #5 : (in LTestInvokeCustomWithConcurrentThreads;)
3155 name : 'targetted'
3156 type : '[Ljava/util/concurrent/atomic/AtomicInteger;'
3157 access : 0x001a (PRIVATE STATIC FINAL)
3158 #6 : (in LTestInvokeCustomWithConcurrentThreads;)
3159 name : 'threadIndex'
3160 type : 'Ljava/lang/ThreadLocal;'
3161 access : 0x001a (PRIVATE STATIC FINAL)
3162 Instance fields -
3163 Direct methods -
3164 #0 : (in LTestInvokeCustomWithConcurrentThreads;)
3165 name : '<clinit>'
Orion Hodson775224d2017-07-05 11:04:01 +01003166 type : '()V'
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01003167 access : 0x10008 (STATIC CONSTRUCTOR)
3168 code -
3169 registers : 2
3170 ins : 0
3171 outs : 2
3172 insns size : 37 16-bit code units
3173003064: |[003064] TestInvokeCustomWithConcurrentThreads.<clinit>:()V
3174003074: 2200 3e00 |0000: new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger; // type@003e
3175003078: 1201 |0002: const/4 v1, #int 0 // #0
317600307a: 7020 ef00 1000 |0003: invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicInteger;.<init>:(I)V // method@00ef
3177003080: 6900 0800 |0006: sput-object v0, LTestInvokeCustomWithConcurrentThreads;.nextIndex:Ljava/util/concurrent/atomic/AtomicInteger; // field@0008
3178003084: 2200 0d00 |0008: new-instance v0, LTestInvokeCustomWithConcurrentThreads$1; // type@000d
3179003088: 7010 6000 0000 |000a: invoke-direct {v0}, LTestInvokeCustomWithConcurrentThreads$1;.<init>:()V // method@0060
318000308e: 6900 0a00 |000d: sput-object v0, LTestInvokeCustomWithConcurrentThreads;.threadIndex:Ljava/lang/ThreadLocal; // field@000a
3181003092: 1300 1000 |000f: const/16 v0, #int 16 // #10
3182003096: 2301 4b00 |0011: new-array v1, v0, [Ljava/lang/invoke/CallSite; // type@004b
318300309a: 6901 0700 |0013: sput-object v1, LTestInvokeCustomWithConcurrentThreads;.instantiated:[Ljava/lang/invoke/CallSite; // field@0007
318400309e: 2301 4c00 |0015: new-array v1, v0, [Ljava/util/concurrent/atomic/AtomicInteger; // type@004c
31850030a2: 6901 0600 |0017: sput-object v1, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006
31860030a6: 2301 4c00 |0019: new-array v1, v0, [Ljava/util/concurrent/atomic/AtomicInteger; // type@004c
31870030aa: 6901 0900 |001b: sput-object v1, LTestInvokeCustomWithConcurrentThreads;.targetted:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0009
31880030ae: 2201 3d00 |001d: new-instance v1, Ljava/util/concurrent/CyclicBarrier; // type@003d
31890030b2: 7020 ed00 0100 |001f: invoke-direct {v1, v0}, Ljava/util/concurrent/CyclicBarrier;.<init>:(I)V // method@00ed
31900030b8: 6901 0500 |0022: sput-object v1, LTestInvokeCustomWithConcurrentThreads;.barrier:Ljava/util/concurrent/CyclicBarrier; // field@0005
31910030bc: 0e00 |0024: return-void
3192 catches : (none)
3193 positions :
3194 0x0000 line=30
3195 0x0008 line=32
3196 0x000f line=41
3197 0x0015 line=44
3198 0x0019 line=47
3199 0x001d line=50
3200 locals :
3201
3202 #1 : (in LTestInvokeCustomWithConcurrentThreads;)
3203 name : '<init>'
3204 type : '()V'
3205 access : 0x10002 (PRIVATE CONSTRUCTOR)
3206 code -
3207 registers : 1
3208 ins : 1
3209 outs : 1
3210 insns size : 4 16-bit code units
32110030c0: |[0030c0] TestInvokeCustomWithConcurrentThreads.<init>:()V
32120030d0: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032
32130030d6: 0e00 |0003: return-void
3214 catches : (none)
3215 positions :
3216 0x0000 line=52
3217 locals :
3218 0x0000 - 0x0004 reg=0 this LTestInvokeCustomWithConcurrentThreads;
3219
3220 #2 : (in LTestInvokeCustomWithConcurrentThreads;)
3221 name : 'access$000'
3222 type : '()Ljava/util/concurrent/atomic/AtomicInteger;'
3223 access : 0x1008 (STATIC SYNTHETIC)
3224 code -
3225 registers : 1
3226 ins : 0
3227 outs : 0
3228 insns size : 3 16-bit code units
322900304c: |[00304c] TestInvokeCustomWithConcurrentThreads.access$000:()Ljava/util/concurrent/atomic/AtomicInteger;
323000305c: 6200 0800 |0000: sget-object v0, LTestInvokeCustomWithConcurrentThreads;.nextIndex:Ljava/util/concurrent/atomic/AtomicInteger; // field@0008
3231003060: 1100 |0002: return-object v0
3232 catches : (none)
3233 positions :
3234 0x0000 line=27
3235 locals :
3236
3237 #3 : (in LTestInvokeCustomWithConcurrentThreads;)
3238 name : 'getThreadIndex'
3239 type : '()I'
3240 access : 0x000a (PRIVATE STATIC)
Orion Hodson775224d2017-07-05 11:04:01 +01003241 code -
3242 registers : 1
3243 ins : 0
3244 outs : 1
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01003245 insns size : 13 16-bit code units
3246002f00: |[002f00] TestInvokeCustomWithConcurrentThreads.getThreadIndex:()I
3247002f10: 6200 0a00 |0000: sget-object v0, LTestInvokeCustomWithConcurrentThreads;.threadIndex:Ljava/lang/ThreadLocal; // field@000a
3248002f14: 6e10 d000 0000 |0002: invoke-virtual {v0}, Ljava/lang/ThreadLocal;.get:()Ljava/lang/Object; // method@00d0
3249002f1a: 0c00 |0005: move-result-object v0
3250002f1c: 1f00 2700 |0006: check-cast v0, Ljava/lang/Integer; // type@0027
3251002f20: 6e10 bc00 0000 |0008: invoke-virtual {v0}, Ljava/lang/Integer;.intValue:()I // method@00bc
3252002f26: 0a00 |000b: move-result v0
3253002f28: 0f00 |000c: return v0
Orion Hodson775224d2017-07-05 11:04:01 +01003254 catches : (none)
3255 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01003256 0x0000 line=55
Orion Hodson775224d2017-07-05 11:04:01 +01003257 locals :
3258
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01003259 #4 : (in LTestInvokeCustomWithConcurrentThreads;)
3260 name : 'linkerMethod'
3261 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;'
3262 access : 0x000a (PRIVATE STATIC)
3263 code -
3264 registers : 8
3265 ins : 3
3266 outs : 4
3267 insns size : 97 16-bit code units
3268002f78: |[002f78] TestInvokeCustomWithConcurrentThreads.linkerMethod:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
3269002f88: 1c00 0e00 |0000: const-class v0, LTestInvokeCustomWithConcurrentThreads; // type@000e
3270002f8c: 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
3271002f92: 0c00 |0005: move-result-object v0
3272002f94: 6e10 d400 0000 |0006: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandle;.type:()Ljava/lang/invoke/MethodType; // method@00d4
3273002f9a: 0c01 |0009: move-result-object v1
3274002f9c: 7120 6700 1700 |000a: invoke-static {v7, v1}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0067
3275002fa2: 6e10 d400 0000 |000d: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandle;.type:()Ljava/lang/invoke/MethodType; // method@00d4
3276002fa8: 0c01 |0010: move-result-object v1
3277002faa: 6e10 e300 0100 |0011: invoke-virtual {v1}, Ljava/lang/invoke/MethodType;.parameterCount:()I // method@00e3
3278002fb0: 0a01 |0014: move-result v1
3279002fb2: 1212 |0015: const/4 v2, #int 1 // #1
3280002fb4: 7120 6600 2100 |0016: invoke-static {v1, v2}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(II)V // method@0066
3281002fba: 2321 4800 |0019: new-array v1, v2, [Ljava/lang/Object; // type@0048
3282002fbe: 7100 6900 0000 |001b: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.getThreadIndex:()I // method@0069
3283002fc4: 0a03 |001e: move-result v3
3284002fc6: 7110 bd00 0300 |001f: invoke-static {v3}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd
3285002fcc: 0c03 |0022: move-result-object v3
3286002fce: 1204 |0023: const/4 v4, #int 0 // #0
3287002fd0: 4d03 0104 |0024: aput-object v3, v1, v4
3288002fd4: 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
3289002fda: 0c00 |0029: move-result-object v0
3290002fdc: 2321 4600 |002a: new-array v1, v2, [Ljava/lang/Class; // type@0046
3291002fe0: 6203 1200 |002c: sget-object v3, Ljava/lang/Integer;.TYPE:Ljava/lang/Class; // field@0012
3292002fe4: 4d03 0104 |002e: aput-object v3, v1, v4
3293002fe8: 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
3294002fee: 0c00 |0033: move-result-object v0
3295002ff0: 6e10 d400 0000 |0034: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandle;.type:()Ljava/lang/invoke/MethodType; // method@00d4
3296002ff6: 0c01 |0037: move-result-object v1
3297002ff8: 6e10 e300 0100 |0038: invoke-virtual {v1}, Ljava/lang/invoke/MethodType;.parameterCount:()I // method@00e3
3298002ffe: 0a01 |003b: move-result v1
3299003000: 7120 6600 2100 |003c: invoke-static {v1, v2}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(II)V // method@0066
3300003006: 6e10 d400 0000 |003f: invoke-virtual {v0}, Ljava/lang/invoke/MethodHandle;.type:()Ljava/lang/invoke/MethodType; // method@00d4
330100300c: 0c01 |0042: move-result-object v1
330200300e: 7120 6700 1700 |0043: invoke-static {v7, v1}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0067
3303003014: 6201 0500 |0046: sget-object v1, LTestInvokeCustomWithConcurrentThreads;.barrier:Ljava/util/concurrent/CyclicBarrier; // field@0005
3304003018: 6e10 ee00 0100 |0048: invoke-virtual {v1}, Ljava/util/concurrent/CyclicBarrier;.await:()I // method@00ee
330500301e: 6201 0700 |004b: sget-object v1, LTestInvokeCustomWithConcurrentThreads;.instantiated:[Ljava/lang/invoke/CallSite; // field@0007
3306003022: 7100 6900 0000 |004d: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.getThreadIndex:()I // method@0069
3307003028: 0a02 |0050: move-result v2
330800302a: 2203 3400 |0051: new-instance v3, Ljava/lang/invoke/ConstantCallSite; // type@0034
330900302e: 7020 d200 0300 |0053: invoke-direct {v3, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
3310003034: 4d03 0102 |0056: aput-object v3, v1, v2
3311003038: 6201 0700 |0058: sget-object v1, LTestInvokeCustomWithConcurrentThreads;.instantiated:[Ljava/lang/invoke/CallSite; // field@0007
331200303c: 7100 6900 0000 |005a: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.getThreadIndex:()I // method@0069
3313003042: 0a02 |005d: move-result v2
3314003044: 4601 0102 |005e: aget-object v1, v1, v2
3315003048: 1101 |0060: return-object v1
3316 catches : (none)
3317 positions :
3318 0x0000 line=87
3319 0x0002 line=88
3320 0x0006 line=89
3321 0x000d line=90
3322 0x0019 line=91
3323 0x002a line=92
3324 0x0034 line=93
3325 0x003f line=94
3326 0x0046 line=99
3327 0x004b line=101
3328 0x0058 line=102
3329 locals :
3330 0x0006 - 0x0061 reg=0 mh Ljava/lang/invoke/MethodHandle;
3331 0x0000 - 0x0061 reg=5 caller Ljava/lang/invoke/MethodHandles$Lookup;
3332 0x0000 - 0x0061 reg=6 name Ljava/lang/String;
3333 0x0000 - 0x0061 reg=7 methodType Ljava/lang/invoke/MethodType;
3334
3335 #5 : (in LTestInvokeCustomWithConcurrentThreads;)
3336 name : 'notUsed'
3337 type : '(I)I'
3338 access : 0x0009 (PUBLIC STATIC)
3339 code -
3340 registers : 1
3341 ins : 1
3342 outs : 0
3343 insns size : 1 16-bit code units
3344002f2c: |[002f2c] TestInvokeCustomWithConcurrentThreads.notUsed:(I)I
3345002f3c: 0f00 |0000: return v0
3346 catches : (none)
3347 positions :
3348 0x0000 line=59
3349 locals :
3350 0x0000 - 0x0001 reg=0 x I
3351
3352 #6 : (in LTestInvokeCustomWithConcurrentThreads;)
3353 name : 'setCalled'
3354 type : '(I)I'
3355 access : 0x000a (PRIVATE STATIC)
3356 code -
3357 registers : 3
3358 ins : 1
3359 outs : 2
3360 insns size : 20 16-bit code units
3361002f40: |[002f40] TestInvokeCustomWithConcurrentThreads.setCalled:(I)I
3362002f50: 6200 0600 |0000: sget-object v0, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006
3363002f54: 4600 0002 |0002: aget-object v0, v0, v2
3364002f58: 6e10 f100 0000 |0004: invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;.getAndIncrement:()I // method@00f1
3365002f5e: 6200 0900 |0007: sget-object v0, LTestInvokeCustomWithConcurrentThreads;.targetted:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0009
3366002f62: 7100 6900 0000 |0009: invoke-static {}, LTestInvokeCustomWithConcurrentThreads;.getThreadIndex:()I // method@0069
3367002f68: 0a01 |000c: move-result v1
3368002f6a: 4600 0001 |000d: aget-object v0, v0, v1
3369002f6e: 6e20 f200 2000 |000f: invoke-virtual {v0, v2}, Ljava/util/concurrent/atomic/AtomicInteger;.set:(I)V // method@00f2
3370002f74: 1200 |0012: const/4 v0, #int 0 // #0
3371002f76: 0f00 |0013: return v0
3372 catches : (none)
3373 positions :
3374 0x0000 line=79
3375 0x0007 line=80
3376 0x0012 line=81
3377 locals :
3378 0x0000 - 0x0014 reg=2 index I
3379
3380 #7 : (in LTestInvokeCustomWithConcurrentThreads;)
3381 name : 'test'
Orion Hodson775224d2017-07-05 11:04:01 +01003382 type : '()V'
3383 access : 0x0009 (PUBLIC STATIC)
3384 code -
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01003385 registers : 12
3386 ins : 0
3387 outs : 3
3388 insns size : 229 16-bit code units
33890030fc: |[0030fc] TestInvokeCustomWithConcurrentThreads.test:()V
339000310c: 1200 |0000: const/4 v0, #int 0 // #0
339100310e: 0101 |0001: move v1, v0
3392003110: 1302 1000 |0002: const/16 v2, #int 16 // #10
3393003114: 3521 1700 |0004: if-ge v1, v2, 001b // +0017
3394003118: 6202 0600 |0006: sget-object v2, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006
339500311c: 2203 3e00 |0008: new-instance v3, Ljava/util/concurrent/atomic/AtomicInteger; // type@003e
3396003120: 7020 ef00 0300 |000a: invoke-direct {v3, v0}, Ljava/util/concurrent/atomic/AtomicInteger;.<init>:(I)V // method@00ef
3397003126: 4d03 0201 |000d: aput-object v3, v2, v1
339800312a: 6202 0900 |000f: sget-object v2, LTestInvokeCustomWithConcurrentThreads;.targetted:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0009
339900312e: 2203 3e00 |0011: new-instance v3, Ljava/util/concurrent/atomic/AtomicInteger; // type@003e
3400003132: 7020 ef00 0300 |0013: invoke-direct {v3, v0}, Ljava/util/concurrent/atomic/AtomicInteger;.<init>:(I)V // method@00ef
3401003138: 4d03 0201 |0016: aput-object v3, v2, v1
340200313c: d801 0101 |0018: add-int/lit8 v1, v1, #int 1 // #01
3403003140: 28e8 |001a: goto 0002 // -0018
3404003142: 2321 4a00 |001b: new-array v1, v2, [Ljava/lang/Thread; // type@004a
3405003146: 0103 |001d: move v3, v0
3406003148: 3523 1600 |001e: if-ge v3, v2, 0034 // +0016
340700314c: 2204 2f00 |0020: new-instance v4, Ljava/lang/Thread; // type@002f
3408003150: 2205 0e00 |0022: new-instance v5, LTestInvokeCustomWithConcurrentThreads; // type@000e
3409003154: 7010 6400 0500 |0024: invoke-direct {v5}, LTestInvokeCustomWithConcurrentThreads;.<init>:()V // method@0064
341000315a: 7020 cb00 5400 |0027: invoke-direct {v4, v5}, Ljava/lang/Thread;.<init>:(Ljava/lang/Runnable;)V // method@00cb
3411003160: 4d04 0103 |002a: aput-object v4, v1, v3
3412003164: 4604 0103 |002c: aget-object v4, v1, v3
3413003168: 6e10 ce00 0400 |002e: invoke-virtual {v4}, Ljava/lang/Thread;.start:()V // method@00ce
341400316e: d803 0301 |0031: add-int/lit8 v3, v3, #int 1 // #01
3415003172: 28eb |0033: goto 001e // -0015
3416003174: 0103 |0034: move v3, v0
3417003176: 3523 0a00 |0035: if-ge v3, v2, 003f // +000a
341800317a: 4604 0103 |0037: aget-object v4, v1, v3
341900317e: 6e10 cd00 0400 |0039: invoke-virtual {v4}, Ljava/lang/Thread;.join:()V // method@00cd
3420003184: d803 0301 |003c: add-int/lit8 v3, v3, #int 1 // #01
3421003188: 28f7 |003e: goto 0035 // -0009
342200318a: 1203 |003f: const/4 v3, #int 0 // #0
342300318c: 1204 |0040: const/4 v4, #int 0 // #0
342400318e: 0145 |0041: move v5, v4
3425003190: 0134 |0042: move v4, v3
3426003192: 0103 |0043: move v3, v0
3427003194: 3523 2200 |0044: if-ge v3, v2, 0066 // +0022
3428003198: 6206 0700 |0046: sget-object v6, LTestInvokeCustomWithConcurrentThreads;.instantiated:[Ljava/lang/invoke/CallSite; // field@0007
342900319c: 4606 0603 |0048: aget-object v6, v6, v3
34300031a0: 1207 |004a: const/4 v7, #int 0 // #0
34310031a2: 7120 6800 7600 |004b: invoke-static {v6, v7}, LTestInvokeCustomWithConcurrentThreads;.assertNotEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0068
34320031a8: 6206 0600 |004e: sget-object v6, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006
34330031ac: 4606 0603 |0050: aget-object v6, v6, v3
34340031b0: 6e10 f000 0600 |0052: invoke-virtual {v6}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@00f0
34350031b6: 0a06 |0055: move-result v6
34360031b8: 3806 0d00 |0056: if-eqz v6, 0063 // +000d
34370031bc: d804 0401 |0058: add-int/lit8 v4, v4, #int 1 // #01
34380031c0: 6206 0600 |005a: sget-object v6, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006
34390031c4: 4606 0603 |005c: aget-object v6, v6, v3
34400031c8: 6e10 f000 0600 |005e: invoke-virtual {v6}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@00f0
34410031ce: 0a06 |0061: move-result v6
34420031d0: b065 |0062: add-int/2addr v5, v6
34430031d2: d803 0301 |0063: add-int/lit8 v3, v3, #int 1 // #01
34440031d6: 28df |0065: goto 0044 // -0021
34450031d8: 6203 1300 |0066: sget-object v3, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
34460031dc: 2206 2d00 |0068: new-instance v6, Ljava/lang/StringBuilder; // type@002d
34470031e0: 7010 c100 0600 |006a: invoke-direct {v6}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
34480031e6: 1a07 b800 |006d: const-string v7, "Winners " // string@00b8
34490031ea: 6e20 c800 7600 |006f: invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
34500031f0: 6e20 c500 4600 |0072: invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5
34510031f6: 1a07 0500 |0075: const-string v7, " Votes " // string@0005
34520031fa: 6e20 c800 7600 |0077: invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
3453003200: 6e20 c500 5600 |007a: invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5
3454003206: 6e10 ca00 0600 |007d: invoke-virtual {v6}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
345500320c: 0c06 |0080: move-result-object v6
345600320e: 6e20 b300 6300 |0081: invoke-virtual {v3, v6}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
3457003214: 1223 |0084: const/4 v3, #int 2 // #2
3458003216: 1216 |0085: const/4 v6, #int 1 // #1
3459003218: 3264 2c00 |0086: if-eq v4, v6, 00b2 // +002c
346000321c: 6207 1300 |0088: sget-object v7, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
3461003220: 1a08 9e00 |008a: const-string v8, "Threads did not the same call-sites:" // string@009e
3462003224: 6e20 b300 8700 |008c: invoke-virtual {v7, v8}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
346300322a: 0107 |008f: move v7, v0
346400322c: 3527 2200 |0090: if-ge v7, v2, 00b2 // +0022
3465003230: 6208 1300 |0092: sget-object v8, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
3466003234: 1a09 0400 |0094: const-string v9, " Thread % 2d invoked call site instance #%02d
3467" // string@0004
3468003238: 233a 4800 |0096: new-array v10, v3, [Ljava/lang/Object; // type@0048
346900323c: 7110 bd00 0700 |0098: invoke-static {v7}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd
3470003242: 0c0b |009b: move-result-object v11
3471003244: 4d0b 0a00 |009c: aput-object v11, v10, v0
3472003248: 620b 0900 |009e: sget-object v11, LTestInvokeCustomWithConcurrentThreads;.targetted:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0009
347300324c: 460b 0b07 |00a0: aget-object v11, v11, v7
3474003250: 6e10 f000 0b00 |00a2: invoke-virtual {v11}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@00f0
3475003256: 0a0b |00a5: move-result v11
3476003258: 7110 bd00 0b00 |00a6: invoke-static {v11}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd
347700325e: 0c0b |00a9: move-result-object v11
3478003260: 4d0b 0a06 |00aa: aput-object v11, v10, v6
3479003264: 6e30 ab00 980a |00ac: invoke-virtual {v8, v9, v10}, Ljava/io/PrintStream;.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; // method@00ab
348000326a: d807 0701 |00af: add-int/lit8 v7, v7, #int 1 // #01
348100326e: 28df |00b1: goto 0090 // -0021
3482003270: 3225 2c00 |00b2: if-eq v5, v2, 00de // +002c
3483003274: 6207 1300 |00b4: sget-object v7, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
3484003278: 1a08 2000 |00b6: const-string v8, "Call-sites invocations :" // string@0020
348500327c: 6e20 b300 8700 |00b8: invoke-virtual {v7, v8}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
3486003282: 0107 |00bb: move v7, v0
3487003284: 3527 2200 |00bc: if-ge v7, v2, 00de // +0022
3488003288: 6208 1300 |00be: sget-object v8, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
348900328c: 1a09 0300 |00c0: const-string v9, " Call site instance #%02d was invoked % 2d times
3490" // string@0003
3491003290: 233a 4800 |00c2: new-array v10, v3, [Ljava/lang/Object; // type@0048
3492003294: 7110 bd00 0700 |00c4: invoke-static {v7}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd
349300329a: 0c0b |00c7: move-result-object v11
349400329c: 4d0b 0a00 |00c8: aput-object v11, v10, v0
34950032a0: 620b 0600 |00ca: sget-object v11, LTestInvokeCustomWithConcurrentThreads;.called:[Ljava/util/concurrent/atomic/AtomicInteger; // field@0006
34960032a4: 460b 0b07 |00cc: aget-object v11, v11, v7
34970032a8: 6e10 f000 0b00 |00ce: invoke-virtual {v11}, Ljava/util/concurrent/atomic/AtomicInteger;.get:()I // method@00f0
34980032ae: 0a0b |00d1: move-result v11
34990032b0: 7110 bd00 0b00 |00d2: invoke-static {v11}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd
35000032b6: 0c0b |00d5: move-result-object v11
35010032b8: 4d0b 0a06 |00d6: aput-object v11, v10, v6
35020032bc: 6e30 ab00 980a |00d8: invoke-virtual {v8, v9, v10}, Ljava/io/PrintStream;.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream; // method@00ab
35030032c2: d807 0701 |00db: add-int/lit8 v7, v7, #int 1 // #01
35040032c6: 28df |00dd: goto 00bc // -0021
35050032c8: 7120 6600 6400 |00de: invoke-static {v4, v6}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(II)V // method@0066
35060032ce: 7120 6600 2500 |00e1: invoke-static {v5, v2}, LTestInvokeCustomWithConcurrentThreads;.assertEquals:(II)V // method@0066
35070032d4: 0e00 |00e4: return-void
3508 catches : (none)
3509 positions :
3510 0x0000 line=107
3511 0x0006 line=108
3512 0x000f line=109
3513 0x0018 line=107
3514 0x001b line=113
3515 0x001d line=114
3516 0x0020 line=115
3517 0x002c line=116
3518 0x0031 line=114
3519 0x0034 line=120
3520 0x0037 line=121
3521 0x003c line=120
3522 0x003f line=125
3523 0x0040 line=126
3524 0x0041 line=127
3525 0x0046 line=128
3526 0x004e line=129
3527 0x0058 line=130
3528 0x005a line=131
3529 0x0063 line=127
3530 0x0066 line=135
3531 0x0084 line=139
3532 0x0088 line=140
3533 0x008f line=141
3534 0x0092 line=142
3535 0x0098 line=143
3536 0x00ac line=142
3537 0x00af line=141
3538 0x00b2 line=149
3539 0x00b4 line=150
3540 0x00bb line=151
3541 0x00be line=152
3542 0x00c4 line=153
3543 0x00d8 line=152
3544 0x00db line=151
3545 0x00de line=157
3546 0x00e1 line=158
3547 0x00e4 line=159
3548 locals :
3549 0x0002 - 0x001b reg=1 i I
3550 0x001e - 0x0034 reg=3 i I
3551 0x0035 - 0x003f reg=3 i I
3552 0x0040 - 0x0044 reg=3 winners I
3553 0x0041 - 0x0044 reg=4 votes I
3554 0x0044 - 0x0066 reg=3 i I
3555 0x0090 - 0x00b2 reg=7 i I
3556 0x00bc - 0x00de reg=7 i I
3557 0x001d - 0x00e5 reg=1 threads [Ljava/lang/Thread;
3558 0x0044 - 0x00e5 reg=4 winners I
3559 0x0044 - 0x00e5 reg=5 votes I
3560
3561 Virtual methods -
3562 #0 : (in LTestInvokeCustomWithConcurrentThreads;)
3563 name : 'run'
3564 type : '()V'
3565 access : 0x0001 (PUBLIC)
3566 code -
3567 registers : 2
3568 ins : 1
3569 outs : 1
3570 insns size : 9 16-bit code units
35710030d8: |[0030d8] TestInvokeCustomWithConcurrentThreads.run:()V
35720030e8: 12f0 |0000: const/4 v0, #int -1 // #ff
35730030ea: fc10 1a00 0000 |0001: invoke-custom {v0}, call_site@001a
35740030f0: 0a00 |0004: move-result v0
35750030f2: 7110 6b00 0000 |0005: invoke-static {v0}, LTestInvokeCustomWithConcurrentThreads;.notUsed:(I)I // method@006b
35760030f8: 0e00 |0008: return-void
3577 catches : (none)
3578 positions :
3579 0x0000 line=63
3580 0x0005 line=64
3581 0x0008 line=65
3582 locals :
3583 0x0005 - 0x0009 reg=0 x I
3584 0x0000 - 0x0009 reg=1 this LTestInvokeCustomWithConcurrentThreads;
3585
3586 source_file_idx : 149 (TestInvokeCustomWithConcurrentThreads.java)
3587
3588Class #10 header:
3589class_idx : 15
3590access_flags : 1 (0x0001)
3591superclass_idx : 9
3592interfaces_off : 0 (0x000000)
3593source_file_idx : 151
3594annotations_off : 31180 (0x0079cc)
3595class_data_off : 29403 (0x0072db)
3596static_fields_size : 5
3597instance_fields_size: 0
3598direct_methods_size : 6
3599virtual_methods_size: 0
3600
3601Class #10 annotations:
3602Annotations on method #114 'add'
3603 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
3604Annotations on method #118 'linkerMethod'
3605 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
3606Annotations on method #119 'test'
3607 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
3608
3609Class #10 -
3610 Class descriptor : 'LTestLinkerMethodMinimalArguments;'
3611 Access flags : 0x0001 (PUBLIC)
3612 Superclass : 'LTestBase;'
3613 Interfaces -
3614 Static fields -
3615 #0 : (in LTestLinkerMethodMinimalArguments;)
3616 name : 'FAILURE_TYPE_LINKER_METHOD_RETURNS_NULL'
3617 type : 'I'
3618 access : 0x0018 (STATIC FINAL)
3619 value : 1
3620 #1 : (in LTestLinkerMethodMinimalArguments;)
3621 name : 'FAILURE_TYPE_LINKER_METHOD_THROWS'
3622 type : 'I'
3623 access : 0x0018 (STATIC FINAL)
3624 value : 2
3625 #2 : (in LTestLinkerMethodMinimalArguments;)
3626 name : 'FAILURE_TYPE_NONE'
3627 type : 'I'
3628 access : 0x0018 (STATIC FINAL)
3629 value : 0
3630 #3 : (in LTestLinkerMethodMinimalArguments;)
3631 name : 'FAILURE_TYPE_TARGET_METHOD_THROWS'
3632 type : 'I'
3633 access : 0x0018 (STATIC FINAL)
3634 value : 3
3635 #4 : (in LTestLinkerMethodMinimalArguments;)
3636 name : 'forceFailureType'
3637 type : 'I'
3638 access : 0x000a (PRIVATE STATIC)
3639 Instance fields -
3640 Direct methods -
3641 #0 : (in LTestLinkerMethodMinimalArguments;)
3642 name : '<clinit>'
3643 type : '()V'
3644 access : 0x10008 (STATIC CONSTRUCTOR)
3645 code -
3646 registers : 1
3647 ins : 0
3648 outs : 0
3649 insns size : 4 16-bit code units
3650003404: |[003404] TestLinkerMethodMinimalArguments.<clinit>:()V
3651003414: 1200 |0000: const/4 v0, #int 0 // #0
3652003416: 6700 0f00 |0001: sput v0, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f
365300341a: 0e00 |0003: return-void
3654 catches : (none)
3655 positions :
3656 0x0000 line=26
3657 locals :
3658
3659 #1 : (in LTestLinkerMethodMinimalArguments;)
3660 name : '<init>'
3661 type : '()V'
3662 access : 0x10001 (PUBLIC CONSTRUCTOR)
3663 code -
3664 registers : 1
3665 ins : 1
3666 outs : 1
3667 insns size : 4 16-bit code units
366800341c: |[00341c] TestLinkerMethodMinimalArguments.<init>:()V
366900342c: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032
3670003432: 0e00 |0003: return-void
3671 catches : (none)
3672 positions :
3673 0x0000 line=25
3674 locals :
3675 0x0000 - 0x0004 reg=0 this LTestLinkerMethodMinimalArguments;
3676
3677 #2 : (in LTestLinkerMethodMinimalArguments;)
3678 name : '_add'
3679 type : '(II)I'
3680 access : 0x0008 (STATIC)
3681 code -
3682 registers : 4
3683 ins : 2
3684 outs : 2
3685 insns size : 23 16-bit code units
36860032d8: |[0032d8] TestLinkerMethodMinimalArguments._add:(II)I
36870032e8: 6000 0f00 |0000: sget v0, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f
36880032ec: 1231 |0002: const/4 v1, #int 3 // #3
36890032ee: 3210 0500 |0003: if-eq v0, v1, 0008 // +0005
36900032f2: 9000 0203 |0005: add-int v0, v2, v3
36910032f6: 0f00 |0007: return v0
36920032f8: 6200 1300 |0008: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
36930032fc: 1a01 a000 |000a: const-string v1, "Throwing ArithmeticException in add()" // string@00a0
3694003300: 6e20 b300 1000 |000c: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
3695003306: 2200 1d00 |000f: new-instance v0, Ljava/lang/ArithmeticException; // type@001d
369600330a: 1a01 cc00 |0011: const-string v1, "add" // string@00cc
369700330e: 7020 b400 1000 |0013: invoke-direct {v0, v1}, Ljava/lang/ArithmeticException;.<init>:(Ljava/lang/String;)V // method@00b4
3698003314: 2700 |0016: throw v0
3699 catches : (none)
3700 positions :
3701 0x0000 line=51
3702 0x0005 line=55
3703 0x0008 line=52
3704 0x000f line=53
3705 locals :
3706 0x0000 - 0x0017 reg=2 a I
3707 0x0000 - 0x0017 reg=3 b I
3708
3709 #3 : (in LTestLinkerMethodMinimalArguments;)
3710 name : 'add'
3711 type : '(II)I'
3712 access : 0x000a (PRIVATE STATIC)
3713 code -
3714 registers : 3
3715 ins : 2
3716 outs : 0
3717 insns size : 5 16-bit code units
3718003318: |[003318] TestLinkerMethodMinimalArguments.add:(II)I
3719003328: 7100 7400 0000 |0000: invoke-static {}, LTestLinkerMethodMinimalArguments;.assertNotReached:()V // method@0074
372000332e: 12f0 |0003: const/4 v0, #int -1 // #ff
3721003330: 0f00 |0004: return v0
3722 catches : (none)
3723 positions :
3724 0x0000 line=45
3725 0x0003 line=46
3726 locals :
3727 0x0000 - 0x0005 reg=1 a I
3728 0x0000 - 0x0005 reg=2 b I
3729
3730 #4 : (in LTestLinkerMethodMinimalArguments;)
3731 name : 'linkerMethod'
3732 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;'
3733 access : 0x000a (PRIVATE STATIC)
3734 code -
3735 registers : 7
3736 ins : 3
3737 outs : 4
3738 insns size : 96 16-bit code units
3739003334: |[003334] TestLinkerMethodMinimalArguments.linkerMethod:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
3740003344: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
3741003348: 2201 2d00 |0002: new-instance v1, Ljava/lang/StringBuilder; // type@002d
374200334c: 7010 c100 0100 |0004: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
3743003352: 1a02 6701 |0007: const-string v2, "linkerMethod failure type " // string@0167
3744003356: 6e20 c800 2100 |0009: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
374500335c: 6002 0f00 |000c: sget v2, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f
3746003360: 6e20 c500 2100 |000e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5
3747003366: 6e10 ca00 0100 |0011: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
374800336c: 0c01 |0014: move-result-object v1
374900336e: 6e20 b300 1000 |0015: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
3750003374: 1c00 0f00 |0018: const-class v0, LTestLinkerMethodMinimalArguments; // type@000f
3751003378: 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
375200337e: 0c00 |001d: move-result-object v0
3753003380: 6001 0f00 |001e: sget v1, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f
3754003384: 2b01 3800 0000 |0020: packed-switch v1, 00000058 // +00000038
375500338a: 2201 3400 |0023: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
375600338e: 7020 d200 0100 |0025: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
3757003394: 1101 |0028: return-object v1
3758003396: 6201 1300 |0029: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
375900339a: 1a02 a100 |002b: const-string v2, "Throwing InstantiationException in linkerMethod()" // string@00a1
376000339e: 6e20 b300 2100 |002d: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
37610033a4: 2201 2600 |0030: new-instance v1, Ljava/lang/InstantiationException; // type@0026
37620033a8: 1a02 6601 |0032: const-string v2, "linkerMethod" // string@0166
37630033ac: 7020 bb00 2100 |0034: invoke-direct {v1, v2}, Ljava/lang/InstantiationException;.<init>:(Ljava/lang/String;)V // method@00bb
37640033b2: 2701 |0037: throw v1
37650033b4: 6201 1300 |0038: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
37660033b8: 2202 2d00 |003a: new-instance v2, Ljava/lang/StringBuilder; // type@002d
37670033bc: 7010 c100 0200 |003c: invoke-direct {v2}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
37680033c2: 1a03 8c00 |003f: const-string v3, "Returning null instead of CallSite for " // string@008c
37690033c6: 6e20 c800 3200 |0041: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
37700033cc: 6e20 c800 5200 |0044: invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
37710033d2: 1a03 0000 |0047: const-string v3, " " // string@0000
37720033d6: 6e20 c800 3200 |0049: invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
37730033dc: 6e20 c700 6200 |004c: invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7
37740033e2: 6e10 ca00 0200 |004f: invoke-virtual {v2}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
37750033e8: 0c02 |0052: move-result-object v2
37760033ea: 6e20 b300 2100 |0053: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
37770033f0: 1201 |0056: const/4 v1, #int 0 // #0
37780033f2: 1101 |0057: return-object v1
37790033f4: 0001 0200 0100 0000 1800 0000 0900 ... |0058: packed-switch-data (8 units)
3780 catches : (none)
3781 positions :
3782 0x0000 line=61
3783 0x0018 line=62
3784 0x001a line=63
3785 0x001e line=64
3786 0x0023 line=73
3787 0x0029 line=70
3788 0x0030 line=71
3789 0x0038 line=66
3790 0x0056 line=68
3791 locals :
3792 0x001e - 0x0060 reg=0 mh_add Ljava/lang/invoke/MethodHandle;
3793 0x0000 - 0x0060 reg=4 caller Ljava/lang/invoke/MethodHandles$Lookup;
3794 0x0000 - 0x0060 reg=5 name Ljava/lang/String;
3795 0x0000 - 0x0060 reg=6 methodType Ljava/lang/invoke/MethodType;
3796
3797 #5 : (in LTestLinkerMethodMinimalArguments;)
3798 name : 'test'
3799 type : '(III)V'
3800 access : 0x0009 (PUBLIC STATIC)
3801 code -
3802 registers : 6
3803 ins : 3
3804 outs : 2
3805 insns size : 68 16-bit code units
3806003434: |[003434] TestLinkerMethodMinimalArguments.test:(III)V
3807003444: 1200 |0000: const/4 v0, #int 0 // #0
3808003446: 1211 |0001: const/4 v1, #int 1 // #1
3809003448: 3a03 0400 |0002: if-ltz v3, 0006 // +0004
381000344c: 0112 |0004: move v2, v1
381100344e: 2802 |0005: goto 0007 // +0002
3812003450: 0102 |0006: move v2, v0
3813003452: 7110 7500 0200 |0007: invoke-static {v2}, LTestLinkerMethodMinimalArguments;.assertTrue:(Z)V // method@0075
3814003458: 1232 |000a: const/4 v2, #int 3 // #3
381500345a: 3623 0400 |000b: if-gt v3, v2, 000f // +0004
381600345e: 0110 |000d: move v0, v1
3817003460: 0000 |000e: nop // spacer
3818003462: 7110 7500 0000 |000f: invoke-static {v0}, LTestLinkerMethodMinimalArguments;.assertTrue:(Z)V // method@0075
3819003468: 6703 0f00 |0012: sput v3, LTestLinkerMethodMinimalArguments;.forceFailureType:I // field@000f
382000346c: 9000 0405 |0014: add-int v0, v4, v5
3821003470: fc20 1b00 5400 |0016: invoke-custom {v4, v5}, call_site@001b
3822003476: 0a01 |0019: move-result v1
3823003478: 7120 7300 1000 |001a: invoke-static {v0, v1}, LTestLinkerMethodMinimalArguments;.assertEquals:(II)V // method@0073
382400347e: 6200 1300 |001d: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
3825003482: 2201 2d00 |001f: new-instance v1, Ljava/lang/StringBuilder; // type@002d
3826003486: 7010 c100 0100 |0021: invoke-direct {v1}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
382700348c: 1a02 2a00 |0024: const-string v2, "Failure Type + " // string@002a
3828003490: 6e20 c800 2100 |0026: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
3829003496: 6e20 c500 3100 |0029: invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5
383000349c: 1a02 0100 |002c: const-string v2, " (" // string@0001
38310034a0: 6e20 c800 2100 |002e: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
38320034a6: 6e20 c500 4100 |0031: invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5
38330034ac: 6e20 c500 5100 |0034: invoke-virtual {v1, v5}, Ljava/lang/StringBuilder;.append:(I)Ljava/lang/StringBuilder; // method@00c5
38340034b2: 1a02 0700 |0037: const-string v2, ")" // string@0007
38350034b6: 6e20 c800 2100 |0039: invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
38360034bc: 6e10 ca00 0100 |003c: invoke-virtual {v1}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
38370034c2: 0c01 |003f: move-result-object v1
38380034c4: 6e20 b300 1000 |0040: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
38390034ca: 0e00 |0043: return-void
3840 catches : (none)
3841 positions :
3842 0x0000 line=78
3843 0x000a line=79
3844 0x0012 line=80
3845 0x0014 line=81
3846 0x001d line=82
3847 0x0043 line=83
3848 locals :
3849 0x0000 - 0x0044 reg=3 failureType I
3850 0x0000 - 0x0044 reg=4 x I
3851 0x0000 - 0x0044 reg=5 y I
3852
3853 Virtual methods -
3854 source_file_idx : 151 (TestLinkerMethodMinimalArguments.java)
3855
3856Class #11 header:
3857class_idx : 16
3858access_flags : 1 (0x0001)
3859superclass_idx : 9
3860interfaces_off : 0 (0x000000)
3861source_file_idx : 153
3862annotations_off : 31220 (0x0079f4)
3863class_data_off : 29445 (0x007305)
3864static_fields_size : 1
3865instance_fields_size: 0
3866direct_methods_size : 6
3867virtual_methods_size: 1
3868
3869Class #11 annotations:
3870Annotations on method #124 'add'
3871 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
3872Annotations on method #131 'linkerMethod'
3873 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;" }
3874 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
3875Annotations on method #132 'test'
3876 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
3877
3878Class #11 -
3879 Class descriptor : 'LTestLinkerMethodMultipleArgumentTypes;'
3880 Access flags : 0x0001 (PUBLIC)
3881 Superclass : 'LTestBase;'
3882 Interfaces -
3883 Static fields -
3884 #0 : (in LTestLinkerMethodMultipleArgumentTypes;)
3885 name : 'bootstrapRunCount'
3886 type : 'I'
3887 access : 0x000a (PRIVATE STATIC)
3888 Instance fields -
3889 Direct methods -
3890 #0 : (in LTestLinkerMethodMultipleArgumentTypes;)
3891 name : '<clinit>'
3892 type : '()V'
3893 access : 0x10008 (STATIC CONSTRUCTOR)
3894 code -
3895 registers : 1
3896 ins : 0
3897 outs : 0
3898 insns size : 4 16-bit code units
3899003618: |[003618] TestLinkerMethodMultipleArgumentTypes.<clinit>:()V
3900003628: 1200 |0000: const/4 v0, #int 0 // #0
390100362a: 6700 1000 |0001: sput v0, LTestLinkerMethodMultipleArgumentTypes;.bootstrapRunCount:I // field@0010
390200362e: 0e00 |0003: return-void
3903 catches : (none)
3904 positions :
3905 0x0000 line=28
3906 locals :
3907
3908 #1 : (in LTestLinkerMethodMultipleArgumentTypes;)
3909 name : '<init>'
3910 type : '()V'
3911 access : 0x10001 (PUBLIC CONSTRUCTOR)
3912 code -
3913 registers : 1
3914 ins : 1
3915 outs : 1
3916 insns size : 4 16-bit code units
3917003630: |[003630] TestLinkerMethodMultipleArgumentTypes.<init>:()V
3918003640: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032
3919003646: 0e00 |0003: return-void
3920 catches : (none)
3921 positions :
3922 0x0000 line=26
3923 locals :
3924 0x0000 - 0x0004 reg=0 this LTestLinkerMethodMultipleArgumentTypes;
3925
3926 #2 : (in LTestLinkerMethodMultipleArgumentTypes;)
3927 name : '_add'
3928 type : '(II)I'
3929 access : 0x000a (PRIVATE STATIC)
3930 code -
3931 registers : 3
3932 ins : 2
3933 outs : 0
3934 insns size : 3 16-bit code units
39350034e4: |[0034e4] TestLinkerMethodMultipleArgumentTypes._add:(II)I
39360034f4: 9000 0102 |0000: add-int v0, v1, v2
39370034f8: 0f00 |0002: return v0
3938 catches : (none)
3939 positions :
3940 0x0000 line=74
3941 locals :
3942 0x0000 - 0x0003 reg=1 a I
3943 0x0000 - 0x0003 reg=2 b I
3944
3945 #3 : (in LTestLinkerMethodMultipleArgumentTypes;)
3946 name : 'add'
3947 type : '(II)I'
3948 access : 0x000a (PRIVATE STATIC)
3949 code -
3950 registers : 3
3951 ins : 2
3952 outs : 0
3953 insns size : 5 16-bit code units
39540034fc: |[0034fc] TestLinkerMethodMultipleArgumentTypes.add:(II)I
395500350c: 7100 8200 0000 |0000: invoke-static {}, LTestLinkerMethodMultipleArgumentTypes;.assertNotReached:()V // method@0082
3956003512: 12f0 |0003: const/4 v0, #int -1 // #ff
3957003514: 0f00 |0004: return v0
3958 catches : (none)
3959 positions :
3960 0x0000 line=68
3961 0x0003 line=69
3962 locals :
3963 0x0000 - 0x0005 reg=1 a I
3964 0x0000 - 0x0005 reg=2 b I
3965
3966 #4 : (in LTestLinkerMethodMultipleArgumentTypes;)
3967 name : 'linkerMethod'
3968 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;IIIIIFDLjava/lang/String;Ljava/lang/Class;J)Ljava/lang/invoke/CallSite;'
3969 access : 0x000a (PRIVATE STATIC)
3970 code -
3971 registers : 31
3972 ins : 15
3973 outs : 4
3974 insns size : 119 16-bit code units
3975003518: |[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;
3976003528: 0800 1100 |0000: move-object/from16 v0, v17
397700352c: 0801 1200 |0002: move-object/from16 v1, v18
3978003530: 6202 1300 |0004: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
3979003534: 2203 2d00 |0006: new-instance v3, Ljava/lang/StringBuilder; // type@002d
3980003538: 7010 c100 0300 |0008: invoke-direct {v3}, Ljava/lang/StringBuilder;.<init>:()V // method@00c1
398100353e: 1a04 6100 |000b: const-string v4, "Linking " // string@0061
3982003542: 6e20 c800 4300 |000d: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
3983003548: 6e20 c800 0300 |0010: invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
398400354e: 1a04 0000 |0013: const-string v4, " " // string@0000
3985003552: 6e20 c800 4300 |0015: invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; // method@00c8
3986003558: 6e20 c700 1300 |0018: invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; // method@00c7
398700355e: 6e10 ca00 0300 |001b: invoke-virtual {v3}, Ljava/lang/StringBuilder;.toString:()Ljava/lang/String; // method@00ca
3988003564: 0c03 |001e: move-result-object v3
3989003566: 6e20 b300 3200 |001f: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
399000356c: 12f2 |0022: const/4 v2, #int -1 // #ff
399100356e: 0203 1300 |0023: move/from16 v3, v19
3992003572: 7120 7f00 3200 |0025: invoke-static {v2, v3}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f
3993003578: 1212 |0028: const/4 v2, #int 1 // #1
399400357a: 0204 1400 |0029: move/from16 v4, v20
399500357e: 7120 7f00 4200 |002b: invoke-static {v2, v4}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f
3996003584: 1305 6100 |002e: const/16 v5, #int 97 // #61
3997003588: 0206 1500 |0030: move/from16 v6, v21
399800358c: 7120 7f00 6500 |0032: invoke-static {v5, v6}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f
3999003592: 1305 0004 |0035: const/16 v5, #int 1024 // #400
4000003596: 0207 1600 |0037: move/from16 v7, v22
400100359a: 7120 7f00 7500 |0039: invoke-static {v5, v7}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f
40020035a0: 0205 1700 |003c: move/from16 v5, v23
40030035a4: 7120 7f00 5200 |003e: invoke-static {v2, v5}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f
40040035aa: 1402 9a99 3141 |0041: const v2, #float 11.1 // #4131999a
40050035b0: 0208 1800 |0044: move/from16 v8, v24
40060035b4: 7120 7e00 8200 |0046: invoke-static {v2, v8}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(FF)V // method@007e
40070035ba: 1809 9a99 9999 9999 0140 |0049: const-wide v9, #double 2.2 // #400199999999999a
40080035c4: 050b 1900 |004e: move-wide/from16 v11, v25
40090035c8: 7140 7d00 a9cb |0050: invoke-static {v9, v10, v11, v12}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(DD)V // method@007d
40100035ce: 1a02 2c00 |0053: const-string v2, "Hello" // string@002c
40110035d2: 0809 1b00 |0055: move-object/from16 v9, v27
40120035d6: 7120 8100 9200 |0057: invoke-static {v2, v9}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0081
40130035dc: 1c02 1000 |005a: const-class v2, LTestLinkerMethodMultipleArgumentTypes; // type@0010
40140035e0: 080a 1c00 |005c: move-object/from16 v10, v28
40150035e4: 7120 8100 a200 |005e: invoke-static {v2, v10}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@0081
40160035ea: 170d 15cd 5b07 |0061: const-wide/32 v13, #float 1.6536e-34 // #075bcd15
40170035f0: 0502 1d00 |0064: move-wide/from16 v2, v29
40180035f4: 7140 8000 ed32 |0066: invoke-static {v13, v14, v2, v3}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(JJ)V // method@0080
40190035fa: 1c0d 1000 |0069: const-class v13, LTestLinkerMethodMultipleArgumentTypes; // type@0010
40200035fe: 080e 1000 |006b: move-object/from16 v14, v16
4021003602: 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
4022003608: 0c0d |0070: move-result-object v13
402300360a: 220f 3400 |0071: new-instance v15, Ljava/lang/invoke/ConstantCallSite; // type@0034
402400360e: 7020 d200 df00 |0073: invoke-direct {v15, v13}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
4025003614: 110f |0076: return-object v15
4026 catches : (none)
4027 positions :
4028 0x0000 line=93
4029 0x0022 line=94
4030 0x0028 line=95
4031 0x002e line=96
4032 0x0035 line=97
4033 0x003c line=98
4034 0x0041 line=99
4035 0x0049 line=100
4036 0x0053 line=101
4037 0x005a line=102
4038 0x0061 line=103
4039 0x0069 line=104
4040 0x006b line=105
4041 0x0071 line=106
4042 locals :
4043 0x0000 - 0x0000 reg=28 (null) Ljava/lang/Class;
4044 0x0071 - 0x0077 reg=13 mh_add Ljava/lang/invoke/MethodHandle;
4045 0x0000 - 0x0077 reg=16 caller Ljava/lang/invoke/MethodHandles$Lookup;
4046 0x0000 - 0x0077 reg=17 name Ljava/lang/String;
4047 0x0000 - 0x0077 reg=18 methodType Ljava/lang/invoke/MethodType;
4048 0x0000 - 0x0077 reg=19 v1 I
4049 0x0000 - 0x0077 reg=20 v2 I
4050 0x0000 - 0x0077 reg=21 v3 I
4051 0x0000 - 0x0077 reg=22 v4 I
4052 0x0000 - 0x0077 reg=23 v5 I
4053 0x0000 - 0x0077 reg=24 v6 F
4054 0x0000 - 0x0077 reg=25 v7 D
4055 0x0000 - 0x0077 reg=27 v8 Ljava/lang/String;
4056 0x0000 - 0x0077 reg=28 v9 Ljava/lang/Class; Ljava/lang/Class<*>;
4057 0x0000 - 0x0077 reg=29 v10 J
4058
4059 #5 : (in LTestLinkerMethodMultipleArgumentTypes;)
4060 name : 'test'
4061 type : '(II)V'
4062 access : 0x0009 (PUBLIC STATIC)
4063 code -
4064 registers : 4
4065 ins : 2
4066 outs : 2
4067 insns size : 17 16-bit code units
4068003648: |[003648] TestLinkerMethodMultipleArgumentTypes.test:(II)V
4069003658: 9000 0203 |0000: add-int v0, v2, v3
407000365c: fc20 1c00 3200 |0002: invoke-custom {v2, v3}, call_site@001c
4071003662: 0a01 |0005: move-result v1
4072003664: 7120 7f00 1000 |0006: invoke-static {v0, v1}, LTestLinkerMethodMultipleArgumentTypes;.assertEquals:(II)V // method@007f
407300366a: 6200 1300 |0009: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
407400366e: 9001 0203 |000b: add-int v1, v2, v3
4075003672: 6e20 b100 1000 |000d: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(I)V // method@00b1
4076003678: 0e00 |0010: return-void
4077 catches : (none)
4078 positions :
4079 0x0000 line=114
4080 0x0009 line=115
4081 0x0010 line=116
4082 locals :
4083 0x0000 - 0x0011 reg=2 x I
4084 0x0000 - 0x0011 reg=3 y I
4085
4086 Virtual methods -
4087 #0 : (in LTestLinkerMethodMultipleArgumentTypes;)
4088 name : 'GetBootstrapRunCount'
4089 type : '()I'
4090 access : 0x0001 (PUBLIC)
4091 code -
4092 registers : 2
4093 ins : 1
4094 outs : 0
4095 insns size : 3 16-bit code units
40960034cc: |[0034cc] TestLinkerMethodMultipleArgumentTypes.GetBootstrapRunCount:()I
40970034dc: 6000 1000 |0000: sget v0, LTestLinkerMethodMultipleArgumentTypes;.bootstrapRunCount:I // field@0010
40980034e0: 0f00 |0002: return v0
4099 catches : (none)
4100 positions :
4101 0x0000 line=110
4102 locals :
4103 0x0000 - 0x0003 reg=1 this LTestLinkerMethodMultipleArgumentTypes;
4104
4105 source_file_idx : 153 (TestLinkerMethodMultipleArgumentTypes.java)
4106
4107Class #12 header:
4108class_idx : 17
4109access_flags : 0 (0x0000)
4110superclass_idx : 9
4111interfaces_off : 0 (0x000000)
4112source_file_idx : 154
4113annotations_off : 31260 (0x007a1c)
4114class_data_off : 29483 (0x00732b)
4115static_fields_size : 0
4116instance_fields_size: 0
4117direct_methods_size : 6
4118virtual_methods_size: 0
4119
4120Class #12 annotations:
4121Annotations on method #136 'addf'
4122 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
4123Annotations on method #139 'subf'
4124 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
4125
4126Class #12 -
4127 Class descriptor : 'LTestLinkerUnrelatedBSM;'
4128 Access flags : 0x0000 ()
4129 Superclass : 'LTestBase;'
4130 Interfaces -
4131 Static fields -
4132 Instance fields -
4133 Direct methods -
4134 #0 : (in LTestLinkerUnrelatedBSM;)
4135 name : '<init>'
4136 type : '()V'
4137 access : 0x10000 (CONSTRUCTOR)
4138 code -
4139 registers : 1
4140 ins : 1
4141 outs : 1
4142 insns size : 4 16-bit code units
41430036e4: |[0036e4] TestLinkerUnrelatedBSM.<init>:()V
41440036f4: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032
41450036fa: 0e00 |0003: return-void
4146 catches : (none)
4147 positions :
4148 0x0000 line=23
4149 locals :
4150 0x0000 - 0x0004 reg=0 this LTestLinkerUnrelatedBSM;
4151
4152 #1 : (in LTestLinkerUnrelatedBSM;)
4153 name : '_addf'
4154 type : '(FF)F'
4155 access : 0x0009 (PUBLIC STATIC)
4156 code -
4157 registers : 3
4158 ins : 2
4159 outs : 0
4160 insns size : 3 16-bit code units
416100367c: |[00367c] TestLinkerUnrelatedBSM._addf:(FF)F
416200368c: a600 0102 |0000: add-float v0, v1, v2
4163003690: 0f00 |0002: return v0
4164 catches : (none)
4165 positions :
4166 0x0000 line=47
4167 locals :
4168 0x0000 - 0x0003 reg=1 a F
4169 0x0000 - 0x0003 reg=2 b F
4170
4171 #2 : (in LTestLinkerUnrelatedBSM;)
4172 name : '_subf'
4173 type : '(FF)F'
4174 access : 0x000a (PRIVATE STATIC)
4175 code -
4176 registers : 3
4177 ins : 2
4178 outs : 0
4179 insns size : 3 16-bit code units
4180003694: |[003694] TestLinkerUnrelatedBSM._subf:(FF)F
41810036a4: a700 0102 |0000: sub-float v0, v1, v2
41820036a8: 0f00 |0002: return v0
4183 catches : (none)
4184 positions :
4185 0x0000 line=73
4186 locals :
4187 0x0000 - 0x0003 reg=1 a F
4188 0x0000 - 0x0003 reg=2 b F
4189
4190 #3 : (in LTestLinkerUnrelatedBSM;)
4191 name : 'addf'
4192 type : '(FF)F'
4193 access : 0x000a (PRIVATE STATIC)
4194 code -
4195 registers : 3
4196 ins : 2
4197 outs : 0
4198 insns size : 5 16-bit code units
41990036ac: |[0036ac] TestLinkerUnrelatedBSM.addf:(FF)F
42000036bc: 7100 8a00 0000 |0000: invoke-static {}, LTestLinkerUnrelatedBSM;.assertNotReached:()V // method@008a
42010036c2: 1210 |0003: const/4 v0, #int 1 // #1
42020036c4: 0f00 |0004: return v0
4203 catches : (none)
4204 positions :
4205 0x0000 line=42
4206 0x0003 line=43
4207 locals :
4208 0x0000 - 0x0005 reg=1 a F
4209 0x0000 - 0x0005 reg=2 b F
4210
4211 #4 : (in LTestLinkerUnrelatedBSM;)
4212 name : 'subf'
4213 type : '(FF)F'
4214 access : 0x000a (PRIVATE STATIC)
4215 code -
4216 registers : 3
4217 ins : 2
4218 outs : 0
4219 insns size : 5 16-bit code units
42200036c8: |[0036c8] TestLinkerUnrelatedBSM.subf:(FF)F
42210036d8: 7100 8a00 0000 |0000: invoke-static {}, LTestLinkerUnrelatedBSM;.assertNotReached:()V // method@008a
42220036de: 1210 |0003: const/4 v0, #int 1 // #1
42230036e0: 0f00 |0004: return v0
4224 catches : (none)
4225 positions :
4226 0x0000 line=68
4227 0x0003 line=69
4228 locals :
4229 0x0000 - 0x0005 reg=1 a F
4230 0x0000 - 0x0005 reg=2 b F
4231
4232 #5 : (in LTestLinkerUnrelatedBSM;)
4233 name : 'test'
4234 type : '()V'
4235 access : 0x0009 (PUBLIC STATIC)
4236 code -
4237 registers : 4
4238 ins : 0
4239 outs : 2
4240 insns size : 34 16-bit code units
42410036fc: |[0036fc] TestLinkerUnrelatedBSM.test:()V
424200370c: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
4243003710: 1c01 1100 |0002: const-class v1, LTestLinkerUnrelatedBSM; // type@0011
4244003714: 6e10 b700 0100 |0004: invoke-virtual {v1}, Ljava/lang/Class;.getName:()Ljava/lang/String; // method@00b7
424500371a: 0c01 |0007: move-result-object v1
424600371c: 6e20 b300 1000 |0008: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
4247003722: 1500 003f |000b: const/high16 v0, #int 1056964608 // #3f00
4248003726: 1501 0040 |000d: const/high16 v1, #int 1073741824 // #4000
424900372a: fc20 1d00 0100 |000f: invoke-custom {v1, v0}, call_site@001d
4250003730: 0a02 |0012: move-result v2
4251003732: 1503 2040 |0013: const/high16 v3, #int 1075838976 // #4020
4252003736: 7120 8900 2300 |0015: invoke-static {v3, v2}, LTestLinkerUnrelatedBSM;.assertEquals:(FF)V // method@0089
425300373c: fc20 1e00 0100 |0018: invoke-custom {v1, v0}, call_site@001e
4254003742: 0a00 |001b: move-result v0
4255003744: 1501 c03f |001c: const/high16 v1, #int 1069547520 // #3fc0
4256003748: 7120 8900 0100 |001e: invoke-static {v1, v0}, LTestLinkerUnrelatedBSM;.assertEquals:(FF)V // method@0089
425700374e: 0e00 |0021: return-void
4258 catches : (none)
4259 positions :
4260 0x0000 line=77
4261 0x000b line=78
4262 0x0018 line=79
4263 0x0021 line=80
4264 locals :
4265
4266 Virtual methods -
4267 source_file_idx : 154 (TestLinkerUnrelatedBSM.java)
4268
4269Class #13 header:
4270class_idx : 18
4271access_flags : 1 (0x0001)
4272superclass_idx : 9
4273interfaces_off : 0 (0x000000)
4274source_file_idx : 156
4275annotations_off : 31292 (0x007a3c)
4276class_data_off : 29514 (0x00734a)
4277static_fields_size : 0
4278instance_fields_size: 0
4279direct_methods_size : 27
4280virtual_methods_size: 0
4281
4282Class #13 annotations:
4283Annotations on method #143 'bsmWithBoxedArray'
4284 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
4285Annotations on method #144 'bsmWithClassAndFloatArray'
4286 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;" }
4287 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
4288Annotations on method #145 'bsmWithClassArray'
4289 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
4290Annotations on method #146 'bsmWithDoubleArray'
4291 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
4292Annotations on method #147 'bsmWithFloatAndLongArray'
4293 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
4294Annotations on method #148 'bsmWithIntAndStringArray'
4295 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
4296Annotations on method #149 'bsmWithLongAndIntArray'
4297 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
4298Annotations on method #150 'bsmWithStringArray'
4299 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
4300Annotations on method #151 'bsmWithWiderArray'
4301 VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
4302Annotations on method #152 'methodA'
4303 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"
4304Annotations on method #153 'methodB'
4305 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"
4306Annotations on method #154 'methodC'
4307 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"
4308Annotations on method #155 'methodD'
4309 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"
4310Annotations on method #156 'methodE'
4311 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"
4312Annotations on method #157 'methodF'
4313 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"
4314Annotations on method #158 'methodG'
4315 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"
4316Annotations on method #159 'methodH'
4317 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"
4318Annotations on method #160 'methodI'
4319 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"
4320Annotations on method #161 'methodJ'
4321 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"
4322Annotations on method #162 'methodK'
4323 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"
4324Annotations on method #163 'methodO'
4325 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"
4326Annotations on method #164 'methodP'
4327 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"
4328Annotations on method #165 'methodQ'
4329 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"
4330Annotations on method #166 'methodR'
4331 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"
4332
4333Class #13 -
4334 Class descriptor : 'LTestVariableArityLinkerMethod;'
4335 Access flags : 0x0001 (PUBLIC)
4336 Superclass : 'LTestBase;'
4337 Interfaces -
4338 Static fields -
4339 Instance fields -
4340 Direct methods -
4341 #0 : (in LTestVariableArityLinkerMethod;)
4342 name : '<init>'
4343 type : '()V'
4344 access : 0x10001 (PUBLIC CONSTRUCTOR)
4345 code -
4346 registers : 1
4347 ins : 1
4348 outs : 1
4349 insns size : 4 16-bit code units
4350003a7c: |[003a7c] TestVariableArityLinkerMethod.<init>:()V
4351003a8c: 7010 3200 0000 |0000: invoke-direct {v0}, LTestBase;.<init>:()V // method@0032
4352003a92: 0e00 |0003: return-void
4353 catches : (none)
4354 positions :
4355 0x0000 line=27
4356 locals :
4357 0x0000 - 0x0004 reg=0 this LTestVariableArityLinkerMethod;
4358
4359 #1 : (in LTestVariableArityLinkerMethod;)
4360 name : 'bsmWithBoxedArray'
4361 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Integer;)Ljava/lang/invoke/CallSite;'
4362 access : 0x000a (PRIVATE STATIC)
4363 code -
4364 registers : 7
4365 ins : 4
4366 outs : 4
4367 insns size : 34 16-bit code units
4368003750: |[003750] TestVariableArityLinkerMethod.bsmWithBoxedArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Integer;)Ljava/lang/invoke/CallSite;
4369003760: 1a00 f800 |0000: const-string v0, "bsmWithBoxedArray" // string@00f8
4370003764: 1241 |0002: const/4 v1, #int 4 // #4
4371003766: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048
437200376a: 1202 |0005: const/4 v2, #int 0 // #0
437300376c: 4d03 0102 |0006: aput-object v3, v1, v2
4374003770: 1212 |0008: const/4 v2, #int 1 // #1
4375003772: 4d04 0102 |0009: aput-object v4, v1, v2
4376003776: 1222 |000b: const/4 v2, #int 2 // #2
4377003778: 4d05 0102 |000c: aput-object v5, v1, v2
437800377c: 1232 |000e: const/4 v2, #int 3 // #3
437900377e: 4d06 0102 |000f: aput-object v6, v1, v2
4380003782: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7
4381003788: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc
438200378e: 0c00 |0017: move-result-object v0
4383003790: 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
4384003796: 0c00 |001b: move-result-object v0
4385003798: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
438600379c: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
43870037a2: 1101 |0021: return-object v1
4388 catches : (none)
4389 positions :
4390 0x0000 line=477
4391 0x0014 line=478
4392 0x001c line=479
4393 locals :
4394 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle;
4395 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup;
4396 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String;
4397 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType;
4398 0x0000 - 0x0022 reg=6 extraArgs [Ljava/lang/Integer;
4399
4400 #2 : (in LTestVariableArityLinkerMethod;)
4401 name : 'bsmWithClassAndFloatArray'
4402 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;[F)Ljava/lang/invoke/CallSite;'
4403 access : 0x008a (PRIVATE STATIC VARARGS)
4404 code -
4405 registers : 8
4406 ins : 5
4407 outs : 4
4408 insns size : 37 16-bit code units
44090037a4: |[0037a4] TestVariableArityLinkerMethod.bsmWithClassAndFloatArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;[F)Ljava/lang/invoke/CallSite;
44100037b4: 1a00 f900 |0000: const-string v0, "bsmWithClassAndFloatArray" // string@00f9
44110037b8: 1251 |0002: const/4 v1, #int 5 // #5
44120037ba: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048
44130037be: 1202 |0005: const/4 v2, #int 0 // #0
44140037c0: 4d03 0102 |0006: aput-object v3, v1, v2
44150037c4: 1212 |0008: const/4 v2, #int 1 // #1
44160037c6: 4d04 0102 |0009: aput-object v4, v1, v2
44170037ca: 1222 |000b: const/4 v2, #int 2 // #2
44180037cc: 4d05 0102 |000c: aput-object v5, v1, v2
44190037d0: 1232 |000e: const/4 v2, #int 3 // #3
44200037d2: 4d06 0102 |000f: aput-object v6, v1, v2
44210037d6: 1242 |0011: const/4 v2, #int 4 // #4
44220037d8: 4d07 0102 |0012: aput-object v7, v1, v2
44230037dc: 7120 a700 1000 |0014: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7
44240037e2: 6e10 dc00 0300 |0017: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc
44250037e8: 0c00 |001a: move-result-object v0
44260037ea: 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
44270037f0: 0c00 |001e: move-result-object v0
44280037f2: 2201 3400 |001f: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
44290037f6: 7020 d200 0100 |0021: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
44300037fc: 1101 |0024: return-object v1
4431 catches : (none)
4432 positions :
4433 0x0000 line=294
4434 0x0017 line=296
4435 0x001f line=297
4436 locals :
4437 0x0000 - 0x0000 reg=6 (null) Ljava/lang/Class;
4438 0x001f - 0x0025 reg=0 mh Ljava/lang/invoke/MethodHandle;
4439 0x0000 - 0x0025 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup;
4440 0x0000 - 0x0025 reg=4 methodName Ljava/lang/String;
4441 0x0000 - 0x0025 reg=5 methodType Ljava/lang/invoke/MethodType;
4442 0x0000 - 0x0025 reg=6 extraArg Ljava/lang/Class; Ljava/lang/Class<*>;
4443 0x0000 - 0x0025 reg=7 arityArgs [F
4444
4445 #3 : (in LTestVariableArityLinkerMethod;)
4446 name : 'bsmWithClassArray'
4447 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Class;)Ljava/lang/invoke/CallSite;'
4448 access : 0x008a (PRIVATE STATIC VARARGS)
4449 code -
4450 registers : 7
4451 ins : 4
4452 outs : 4
4453 insns size : 34 16-bit code units
4454003800: |[003800] TestVariableArityLinkerMethod.bsmWithClassArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Class;)Ljava/lang/invoke/CallSite;
4455003810: 1a00 fa00 |0000: const-string v0, "bsmWithClassArray" // string@00fa
4456003814: 1241 |0002: const/4 v1, #int 4 // #4
4457003816: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048
445800381a: 1202 |0005: const/4 v2, #int 0 // #0
445900381c: 4d03 0102 |0006: aput-object v3, v1, v2
4460003820: 1212 |0008: const/4 v2, #int 1 // #1
4461003822: 4d04 0102 |0009: aput-object v4, v1, v2
4462003826: 1222 |000b: const/4 v2, #int 2 // #2
4463003828: 4d05 0102 |000c: aput-object v5, v1, v2
446400382c: 1232 |000e: const/4 v2, #int 3 // #3
446500382e: 4d06 0102 |000f: aput-object v6, v1, v2
4466003832: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7
4467003838: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc
446800383e: 0c00 |0017: move-result-object v0
4469003840: 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
4470003846: 0c00 |001b: move-result-object v0
4471003848: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
447200384c: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
4473003852: 1101 |0021: return-object v1
4474 catches : (none)
4475 positions :
4476 0x0000 line=367
4477 0x0014 line=368
4478 0x001c line=369
4479 locals :
4480 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle;
4481 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup;
4482 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String;
4483 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType;
4484 0x0000 - 0x0022 reg=6 arityArgs [Ljava/lang/Class;
4485
4486 #4 : (in LTestVariableArityLinkerMethod;)
4487 name : 'bsmWithDoubleArray'
4488 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[D)Ljava/lang/invoke/CallSite;'
4489 access : 0x008a (PRIVATE STATIC VARARGS)
4490 code -
4491 registers : 7
4492 ins : 4
4493 outs : 4
4494 insns size : 34 16-bit code units
4495003854: |[003854] TestVariableArityLinkerMethod.bsmWithDoubleArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[D)Ljava/lang/invoke/CallSite;
4496003864: 1a00 fb00 |0000: const-string v0, "bsmWithDoubleArray" // string@00fb
4497003868: 1241 |0002: const/4 v1, #int 4 // #4
449800386a: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048
449900386e: 1202 |0005: const/4 v2, #int 0 // #0
4500003870: 4d03 0102 |0006: aput-object v3, v1, v2
4501003874: 1212 |0008: const/4 v2, #int 1 // #1
4502003876: 4d04 0102 |0009: aput-object v4, v1, v2
450300387a: 1222 |000b: const/4 v2, #int 2 // #2
450400387c: 4d05 0102 |000c: aput-object v5, v1, v2
4505003880: 1232 |000e: const/4 v2, #int 3 // #3
4506003882: 4d06 0102 |000f: aput-object v6, v1, v2
4507003886: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7
450800388c: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc
4509003892: 0c00 |0017: move-result-object v0
4510003894: 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
451100389a: 0c00 |001b: move-result-object v0
451200389c: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
45130038a0: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
45140038a6: 1101 |0021: return-object v1
4515 catches : (none)
4516 positions :
4517 0x0000 line=332
4518 0x0014 line=333
4519 0x001c line=334
4520 locals :
4521 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle;
4522 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup;
4523 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String;
4524 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType;
4525 0x0000 - 0x0022 reg=6 arityArgs [D
4526
4527 #5 : (in LTestVariableArityLinkerMethod;)
4528 name : 'bsmWithFloatAndLongArray'
4529 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;F[J)Ljava/lang/invoke/CallSite;'
4530 access : 0x008a (PRIVATE STATIC VARARGS)
4531 code -
4532 registers : 9
4533 ins : 5
4534 outs : 4
4535 insns size : 41 16-bit code units
45360038a8: |[0038a8] TestVariableArityLinkerMethod.bsmWithFloatAndLongArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;F[J)Ljava/lang/invoke/CallSite;
45370038b8: 1a00 fc00 |0000: const-string v0, "bsmWithFloatAndLongArray" // string@00fc
45380038bc: 1251 |0002: const/4 v1, #int 5 // #5
45390038be: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048
45400038c2: 1202 |0005: const/4 v2, #int 0 // #0
45410038c4: 4d04 0102 |0006: aput-object v4, v1, v2
45420038c8: 1212 |0008: const/4 v2, #int 1 // #1
45430038ca: 4d05 0102 |0009: aput-object v5, v1, v2
45440038ce: 1222 |000b: const/4 v2, #int 2 // #2
45450038d0: 4d06 0102 |000c: aput-object v6, v1, v2
45460038d4: 7110 ba00 0700 |000e: invoke-static {v7}, Ljava/lang/Float;.valueOf:(F)Ljava/lang/Float; // method@00ba
45470038da: 0c02 |0011: move-result-object v2
45480038dc: 1233 |0012: const/4 v3, #int 3 // #3
45490038de: 4d02 0103 |0013: aput-object v2, v1, v3
45500038e2: 1242 |0015: const/4 v2, #int 4 // #4
45510038e4: 4d08 0102 |0016: aput-object v8, v1, v2
45520038e8: 7120 a700 1000 |0018: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7
45530038ee: 6e10 dc00 0400 |001b: invoke-virtual {v4}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc
45540038f4: 0c00 |001e: move-result-object v0
45550038f6: 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
45560038fc: 0c00 |0022: move-result-object v0
45570038fe: 2201 3400 |0023: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
4558003902: 7020 d200 0100 |0025: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
4559003908: 1101 |0028: return-object v1
4560 catches : (none)
4561 positions :
4562 0x0000 line=257
4563 0x000e line=258
4564 0x0018 line=257
4565 0x001b line=259
4566 0x0023 line=260
4567 locals :
4568 0x0023 - 0x0029 reg=0 mh Ljava/lang/invoke/MethodHandle;
4569 0x0000 - 0x0029 reg=4 lookup Ljava/lang/invoke/MethodHandles$Lookup;
4570 0x0000 - 0x0029 reg=5 methodName Ljava/lang/String;
4571 0x0000 - 0x0029 reg=6 methodType Ljava/lang/invoke/MethodType;
4572 0x0000 - 0x0029 reg=7 extraArg F
4573 0x0000 - 0x0029 reg=8 arityArgs [J
4574
4575 #6 : (in LTestVariableArityLinkerMethod;)
4576 name : 'bsmWithIntAndStringArray'
4577 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I[Ljava/lang/String;)Ljava/lang/invoke/CallSite;'
4578 access : 0x008a (PRIVATE STATIC VARARGS)
4579 code -
4580 registers : 9
4581 ins : 5
4582 outs : 4
4583 insns size : 41 16-bit code units
458400390c: |[00390c] TestVariableArityLinkerMethod.bsmWithIntAndStringArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I[Ljava/lang/String;)Ljava/lang/invoke/CallSite;
458500391c: 1a00 fd00 |0000: const-string v0, "bsmWithIntAndStringArray" // string@00fd
4586003920: 1251 |0002: const/4 v1, #int 5 // #5
4587003922: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048
4588003926: 1202 |0005: const/4 v2, #int 0 // #0
4589003928: 4d04 0102 |0006: aput-object v4, v1, v2
459000392c: 1212 |0008: const/4 v2, #int 1 // #1
459100392e: 4d05 0102 |0009: aput-object v5, v1, v2
4592003932: 1222 |000b: const/4 v2, #int 2 // #2
4593003934: 4d06 0102 |000c: aput-object v6, v1, v2
4594003938: 7110 bd00 0700 |000e: invoke-static {v7}, Ljava/lang/Integer;.valueOf:(I)Ljava/lang/Integer; // method@00bd
459500393e: 0c02 |0011: move-result-object v2
4596003940: 1233 |0012: const/4 v3, #int 3 // #3
4597003942: 4d02 0103 |0013: aput-object v2, v1, v3
4598003946: 1242 |0015: const/4 v2, #int 4 // #4
4599003948: 4d08 0102 |0016: aput-object v8, v1, v2
460000394c: 7120 a700 1000 |0018: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7
4601003952: 6e10 dc00 0400 |001b: invoke-virtual {v4}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc
4602003958: 0c00 |001e: move-result-object v0
460300395a: 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
4604003960: 0c00 |0022: move-result-object v0
4605003962: 2201 3400 |0023: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
4606003966: 7020 d200 0100 |0025: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
460700396c: 1101 |0028: return-object v1
4608 catches : (none)
4609 positions :
4610 0x0000 line=133
4611 0x000e line=138
4612 0x0018 line=133
4613 0x001b line=140
4614 0x0023 line=141
4615 locals :
4616 0x0023 - 0x0029 reg=0 mh Ljava/lang/invoke/MethodHandle;
4617 0x0000 - 0x0029 reg=4 lookup Ljava/lang/invoke/MethodHandles$Lookup;
4618 0x0000 - 0x0029 reg=5 methodName Ljava/lang/String;
4619 0x0000 - 0x0029 reg=6 methodType Ljava/lang/invoke/MethodType;
4620 0x0000 - 0x0029 reg=7 extraInt I
4621 0x0000 - 0x0029 reg=8 extraArityArgs [Ljava/lang/String;
4622
4623 #7 : (in LTestVariableArityLinkerMethod;)
4624 name : 'bsmWithLongAndIntArray'
4625 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;J[I)Ljava/lang/invoke/CallSite;'
4626 access : 0x008a (PRIVATE STATIC VARARGS)
4627 code -
4628 registers : 10
4629 ins : 6
4630 outs : 4
4631 insns size : 41 16-bit code units
4632003970: |[003970] TestVariableArityLinkerMethod.bsmWithLongAndIntArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;J[I)Ljava/lang/invoke/CallSite;
4633003980: 1a00 fe00 |0000: const-string v0, "bsmWithLongAndIntArray" // string@00fe
4634003984: 1251 |0002: const/4 v1, #int 5 // #5
4635003986: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048
463600398a: 1202 |0005: const/4 v2, #int 0 // #0
463700398c: 4d04 0102 |0006: aput-object v4, v1, v2
4638003990: 1212 |0008: const/4 v2, #int 1 // #1
4639003992: 4d05 0102 |0009: aput-object v5, v1, v2
4640003996: 1222 |000b: const/4 v2, #int 2 // #2
4641003998: 4d06 0102 |000c: aput-object v6, v1, v2
464200399c: 7120 be00 8700 |000e: invoke-static {v7, v8}, Ljava/lang/Long;.valueOf:(J)Ljava/lang/Long; // method@00be
46430039a2: 0c02 |0011: move-result-object v2
46440039a4: 1233 |0012: const/4 v3, #int 3 // #3
46450039a6: 4d02 0103 |0013: aput-object v2, v1, v3
46460039aa: 1242 |0015: const/4 v2, #int 4 // #4
46470039ac: 4d09 0102 |0016: aput-object v9, v1, v2
46480039b0: 7120 a700 1000 |0018: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7
46490039b6: 6e10 dc00 0400 |001b: invoke-virtual {v4}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc
46500039bc: 0c00 |001e: move-result-object v0
46510039be: 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
46520039c4: 0c00 |0022: move-result-object v0
46530039c6: 2201 3400 |0023: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
46540039ca: 7020 d200 0100 |0025: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
46550039d0: 1101 |0028: return-object v1
4656 catches : (none)
4657 positions :
4658 0x0000 line=219
4659 0x001b line=220
4660 0x0023 line=221
4661 locals :
4662 0x0023 - 0x0029 reg=0 mh Ljava/lang/invoke/MethodHandle;
4663 0x0000 - 0x0029 reg=4 lookup Ljava/lang/invoke/MethodHandles$Lookup;
4664 0x0000 - 0x0029 reg=5 methodName Ljava/lang/String;
4665 0x0000 - 0x0029 reg=6 methodType Ljava/lang/invoke/MethodType;
4666 0x0000 - 0x0029 reg=7 extraArg J
4667 0x0000 - 0x0029 reg=9 arityArgs [I
4668
4669 #8 : (in LTestVariableArityLinkerMethod;)
4670 name : 'bsmWithStringArray'
4671 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/String;)Ljava/lang/invoke/CallSite;'
4672 access : 0x008a (PRIVATE STATIC VARARGS)
4673 code -
4674 registers : 7
4675 ins : 4
4676 outs : 4
4677 insns size : 34 16-bit code units
46780039d4: |[0039d4] TestVariableArityLinkerMethod.bsmWithStringArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/String;)Ljava/lang/invoke/CallSite;
46790039e4: 1a00 ff00 |0000: const-string v0, "bsmWithStringArray" // string@00ff
46800039e8: 1241 |0002: const/4 v1, #int 4 // #4
46810039ea: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048
46820039ee: 1202 |0005: const/4 v2, #int 0 // #0
46830039f0: 4d03 0102 |0006: aput-object v3, v1, v2
46840039f4: 1212 |0008: const/4 v2, #int 1 // #1
46850039f6: 4d04 0102 |0009: aput-object v4, v1, v2
46860039fa: 1222 |000b: const/4 v2, #int 2 // #2
46870039fc: 4d05 0102 |000c: aput-object v5, v1, v2
4688003a00: 1232 |000e: const/4 v2, #int 3 // #3
4689003a02: 4d06 0102 |000f: aput-object v6, v1, v2
4690003a06: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7
4691003a0c: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc
4692003a12: 0c00 |0017: move-result-object v0
4693003a14: 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
4694003a1a: 0c00 |001b: move-result-object v0
4695003a1c: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
4696003a20: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
4697003a26: 1101 |0021: return-object v1
4698 catches : (none)
4699 positions :
4700 0x0000 line=61
4701 0x0014 line=62
4702 0x001c line=63
4703 locals :
4704 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle;
4705 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup;
4706 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String;
4707 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType;
4708 0x0000 - 0x0022 reg=6 arityArgs [Ljava/lang/String;
4709
4710 #9 : (in LTestVariableArityLinkerMethod;)
4711 name : 'bsmWithWiderArray'
4712 type : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[J)Ljava/lang/invoke/CallSite;'
4713 access : 0x000a (PRIVATE STATIC)
4714 code -
4715 registers : 7
4716 ins : 4
4717 outs : 4
4718 insns size : 34 16-bit code units
4719003a28: |[003a28] TestVariableArityLinkerMethod.bsmWithWiderArray:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[J)Ljava/lang/invoke/CallSite;
4720003a38: 1a00 0001 |0000: const-string v0, "bsmWithWiderArray" // string@0100
4721003a3c: 1241 |0002: const/4 v1, #int 4 // #4
4722003a3e: 2311 4800 |0003: new-array v1, v1, [Ljava/lang/Object; // type@0048
4723003a42: 1202 |0005: const/4 v2, #int 0 // #0
4724003a44: 4d03 0102 |0006: aput-object v3, v1, v2
4725003a48: 1212 |0008: const/4 v2, #int 1 // #1
4726003a4a: 4d04 0102 |0009: aput-object v4, v1, v2
4727003a4e: 1222 |000b: const/4 v2, #int 2 // #2
4728003a50: 4d05 0102 |000c: aput-object v5, v1, v2
4729003a54: 1232 |000e: const/4 v2, #int 3 // #3
4730003a56: 4d06 0102 |000f: aput-object v6, v1, v2
4731003a5a: 7120 a700 1000 |0011: invoke-static {v0, v1}, LTestVariableArityLinkerMethod;.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V // method@00a7
4732003a60: 6e10 dc00 0300 |0014: invoke-virtual {v3}, Ljava/lang/invoke/MethodHandles$Lookup;.lookupClass:()Ljava/lang/Class; // method@00dc
4733003a66: 0c00 |0017: move-result-object v0
4734003a68: 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
4735003a6e: 0c00 |001b: move-result-object v0
4736003a70: 2201 3400 |001c: new-instance v1, Ljava/lang/invoke/ConstantCallSite; // type@0034
4737003a74: 7020 d200 0100 |001e: invoke-direct {v1, v0}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@00d2
4738003a7a: 1101 |0021: return-object v1
4739 catches : (none)
4740 positions :
4741 0x0000 line=447
4742 0x0014 line=448
4743 0x001c line=449
4744 locals :
4745 0x001c - 0x0022 reg=0 mh Ljava/lang/invoke/MethodHandle;
4746 0x0000 - 0x0022 reg=3 lookup Ljava/lang/invoke/MethodHandles$Lookup;
4747 0x0000 - 0x0022 reg=4 methodName Ljava/lang/String;
4748 0x0000 - 0x0022 reg=5 methodType Ljava/lang/invoke/MethodType;
4749 0x0000 - 0x0022 reg=6 extraArgs [J
4750
4751 #10 : (in LTestVariableArityLinkerMethod;)
4752 name : 'methodA'
4753 type : '()V'
4754 access : 0x000a (PRIVATE STATIC)
4755 code -
4756 registers : 2
4757 ins : 0
4758 outs : 2
4759 insns size : 8 16-bit code units
4760003a94: |[003a94] TestVariableArityLinkerMethod.methodA:()V
4761003aa4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
4762003aa8: 1a01 7501 |0002: const-string v1, "methodA" // string@0175
4763003aac: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
4764003ab2: 0e00 |0007: return-void
4765 catches : (none)
4766 positions :
4767 0x0000 line=86
4768 0x0007 line=87
4769 locals :
4770
4771 #11 : (in LTestVariableArityLinkerMethod;)
4772 name : 'methodB'
4773 type : '()V'
4774 access : 0x000a (PRIVATE STATIC)
4775 code -
4776 registers : 2
4777 ins : 0
4778 outs : 2
4779 insns size : 8 16-bit code units
4780003ab4: |[003ab4] TestVariableArityLinkerMethod.methodB:()V
4781003ac4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
4782003ac8: 1a01 7601 |0002: const-string v1, "methodB" // string@0176
4783003acc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
4784003ad2: 0e00 |0007: return-void
4785 catches : (none)
4786 positions :
4787 0x0000 line=105
4788 0x0007 line=106
4789 locals :
4790
4791 #12 : (in LTestVariableArityLinkerMethod;)
4792 name : 'methodC'
4793 type : '()V'
4794 access : 0x000a (PRIVATE STATIC)
4795 code -
4796 registers : 2
4797 ins : 0
4798 outs : 2
4799 insns size : 8 16-bit code units
4800003ad4: |[003ad4] TestVariableArityLinkerMethod.methodC:()V
4801003ae4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
4802003ae8: 1a01 7701 |0002: const-string v1, "methodC" // string@0177
4803003aec: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
4804003af2: 0e00 |0007: return-void
4805 catches : (none)
4806 positions :
4807 0x0000 line=123
4808 0x0007 line=124
4809 locals :
4810
4811 #13 : (in LTestVariableArityLinkerMethod;)
4812 name : 'methodD'
4813 type : '()V'
4814 access : 0x000a (PRIVATE STATIC)
4815 code -
4816 registers : 2
4817 ins : 0
4818 outs : 2
4819 insns size : 8 16-bit code units
4820003af4: |[003af4] TestVariableArityLinkerMethod.methodD:()V
4821003b04: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
4822003b08: 1a01 7801 |0002: const-string v1, "methodD" // string@0178
4823003b0c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
4824003b12: 0e00 |0007: return-void
4825 catches : (none)
4826 positions :
4827 0x0000 line=166
4828 0x0007 line=167
4829 locals :
4830
4831 #14 : (in LTestVariableArityLinkerMethod;)
4832 name : 'methodE'
4833 type : '()V'
4834 access : 0x000a (PRIVATE STATIC)
4835 code -
4836 registers : 2
4837 ins : 0
4838 outs : 2
4839 insns size : 8 16-bit code units
4840003b14: |[003b14] TestVariableArityLinkerMethod.methodE:()V
4841003b24: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
4842003b28: 1a01 7901 |0002: const-string v1, "methodE" // string@0179
4843003b2c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
4844003b32: 0e00 |0007: return-void
4845 catches : (none)
4846 positions :
4847 0x0000 line=189
4848 0x0007 line=190
4849 locals :
4850
4851 #15 : (in LTestVariableArityLinkerMethod;)
4852 name : 'methodF'
4853 type : '()V'
4854 access : 0x000a (PRIVATE STATIC)
4855 code -
4856 registers : 2
4857 ins : 0
4858 outs : 2
4859 insns size : 8 16-bit code units
4860003b34: |[003b34] TestVariableArityLinkerMethod.methodF:()V
4861003b44: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
4862003b48: 1a01 7a01 |0002: const-string v1, "methodF" // string@017a
4863003b4c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
4864003b52: 0e00 |0007: return-void
4865 catches : (none)
4866 positions :
4867 0x0000 line=209
4868 0x0007 line=210
4869 locals :
4870
4871 #16 : (in LTestVariableArityLinkerMethod;)
4872 name : 'methodG'
4873 type : '()V'
4874 access : 0x000a (PRIVATE STATIC)
4875 code -
4876 registers : 2
4877 ins : 0
4878 outs : 2
4879 insns size : 8 16-bit code units
4880003b54: |[003b54] TestVariableArityLinkerMethod.methodG:()V
4881003b64: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
4882003b68: 1a01 7b01 |0002: const-string v1, "methodG" // string@017b
4883003b6c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
4884003b72: 0e00 |0007: return-void
4885 catches : (none)
4886 positions :
4887 0x0000 line=247
4888 0x0007 line=248
4889 locals :
4890
4891 #17 : (in LTestVariableArityLinkerMethod;)
4892 name : 'methodH'
4893 type : '()V'
4894 access : 0x000a (PRIVATE STATIC)
4895 code -
4896 registers : 2
4897 ins : 0
4898 outs : 2
4899 insns size : 8 16-bit code units
4900003b74: |[003b74] TestVariableArityLinkerMethod.methodH:()V
4901003b84: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
4902003b88: 1a01 7c01 |0002: const-string v1, "methodH" // string@017c
4903003b8c: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
4904003b92: 0e00 |0007: return-void
4905 catches : (none)
4906 positions :
4907 0x0000 line=284
4908 0x0007 line=285
4909 locals :
4910
4911 #18 : (in LTestVariableArityLinkerMethod;)
4912 name : 'methodI'
4913 type : '()V'
4914 access : 0x000a (PRIVATE STATIC)
4915 code -
4916 registers : 2
4917 ins : 0
4918 outs : 2
4919 insns size : 8 16-bit code units
4920003b94: |[003b94] TestVariableArityLinkerMethod.methodI:()V
4921003ba4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
4922003ba8: 1a01 7d01 |0002: const-string v1, "methodI" // string@017d
4923003bac: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
4924003bb2: 0e00 |0007: return-void
4925 catches : (none)
4926 positions :
4927 0x0000 line=323
4928 0x0007 line=324
4929 locals :
4930
4931 #19 : (in LTestVariableArityLinkerMethod;)
4932 name : 'methodJ'
4933 type : '()V'
4934 access : 0x000a (PRIVATE STATIC)
4935 code -
4936 registers : 2
4937 ins : 0
4938 outs : 2
4939 insns size : 8 16-bit code units
4940003bb4: |[003bb4] TestVariableArityLinkerMethod.methodJ:()V
4941003bc4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
4942003bc8: 1a01 7e01 |0002: const-string v1, "methodJ" // string@017e
4943003bcc: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
4944003bd2: 0e00 |0007: return-void
4945 catches : (none)
4946 positions :
4947 0x0000 line=358
4948 0x0007 line=359
4949 locals :
4950
4951 #20 : (in LTestVariableArityLinkerMethod;)
4952 name : 'methodK'
4953 type : '()V'
4954 access : 0x000a (PRIVATE STATIC)
4955 code -
4956 registers : 2
4957 ins : 0
4958 outs : 2
4959 insns size : 8 16-bit code units
4960003bd4: |[003bd4] TestVariableArityLinkerMethod.methodK:()V
4961003be4: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
4962003be8: 1a01 7f01 |0002: const-string v1, "methodK" // string@017f
4963003bec: 6e20 b300 1000 |0004: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
4964003bf2: 0e00 |0007: return-void
4965 catches : (none)
4966 positions :
4967 0x0000 line=392
4968 0x0007 line=393
4969 locals :
4970
4971 #21 : (in LTestVariableArityLinkerMethod;)
4972 name : 'methodO'
4973 type : '()V'
4974 access : 0x000a (PRIVATE STATIC)
4975 code -
Orion Hodson775224d2017-07-05 11:04:01 +01004976 registers : 0
4977 ins : 0
4978 outs : 0
4979 insns size : 4 16-bit code units
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01004980003bf4: |[003bf4] TestVariableArityLinkerMethod.methodO:()V
4981003c04: 7100 8e00 0000 |0000: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e
4982003c0a: 0e00 |0003: return-void
Orion Hodson775224d2017-07-05 11:04:01 +01004983 catches : (none)
4984 positions :
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01004985 0x0000 line=413
4986 0x0003 line=414
Orion Hodson775224d2017-07-05 11:04:01 +01004987 locals :
4988
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01004989 #22 : (in LTestVariableArityLinkerMethod;)
4990 name : 'methodP'
4991 type : '()V'
4992 access : 0x000a (PRIVATE STATIC)
4993 code -
4994 registers : 0
4995 ins : 0
4996 outs : 0
4997 insns size : 4 16-bit code units
4998003c0c: |[003c0c] TestVariableArityLinkerMethod.methodP:()V
4999003c1c: 7100 8e00 0000 |0000: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e
5000003c22: 0e00 |0003: return-void
5001 catches : (none)
5002 positions :
5003 0x0000 line=441
5004 0x0003 line=442
5005 locals :
5006
5007 #23 : (in LTestVariableArityLinkerMethod;)
5008 name : 'methodQ'
5009 type : '()V'
5010 access : 0x000a (PRIVATE STATIC)
5011 code -
5012 registers : 0
5013 ins : 0
5014 outs : 0
5015 insns size : 4 16-bit code units
5016003c24: |[003c24] TestVariableArityLinkerMethod.methodQ:()V
5017003c34: 7100 8e00 0000 |0000: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e
5018003c3a: 0e00 |0003: return-void
5019 catches : (none)
5020 positions :
5021 0x0000 line=468
5022 0x0003 line=469
5023 locals :
5024
5025 #24 : (in LTestVariableArityLinkerMethod;)
5026 name : 'methodR'
5027 type : '()V'
5028 access : 0x000a (PRIVATE STATIC)
5029 code -
5030 registers : 0
5031 ins : 0
5032 outs : 0
5033 insns size : 4 16-bit code units
5034003c3c: |[003c3c] TestVariableArityLinkerMethod.methodR:()V
5035003c4c: 7100 8e00 0000 |0000: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e
5036003c52: 0e00 |0003: return-void
5037 catches : (none)
5038 positions :
5039 0x0000 line=501
5040 0x0003 line=502
5041 locals :
5042
5043 #25 : (in LTestVariableArityLinkerMethod;)
5044 name : 'printBsmArgs'
5045 type : '(Ljava/lang/String;[Ljava/lang/Object;)V'
5046 access : 0x008a (PRIVATE STATIC VARARGS)
5047 code -
5048 registers : 6
5049 ins : 2
5050 outs : 2
5051 insns size : 159 16-bit code units
5052003c54: |[003c54] TestVariableArityLinkerMethod.printBsmArgs:(Ljava/lang/String;[Ljava/lang/Object;)V
5053003c64: 6200 1300 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5054003c68: 6e20 b000 4000 |0002: invoke-virtual {v0, v4}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5055003c6e: 6200 1300 |0005: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5056003c72: 1a01 0600 |0007: const-string v1, "(" // string@0006
5057003c76: 6e20 b000 1000 |0009: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5058003c7c: 1200 |000c: const/4 v0, #int 0 // #0
5059003c7e: 2151 |000d: array-length v1, v5
5060003c80: 3510 8900 |000e: if-ge v0, v1, 0097 // +0089
5061003c84: 3800 0900 |0010: if-eqz v0, 0019 // +0009
5062003c88: 6201 1300 |0012: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5063003c8c: 1a02 0c00 |0014: const-string v2, ", " // string@000c
5064003c90: 6e20 b000 2100 |0016: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5065003c96: 4601 0500 |0019: aget-object v1, v5, v0
5066003c9a: 3801 7100 |001b: if-eqz v1, 008c // +0071
5067003c9e: 4601 0500 |001d: aget-object v1, v5, v0
5068003ca2: 6e10 c000 0100 |001f: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
5069003ca8: 0c01 |0022: move-result-object v1
5070003caa: 6e10 b800 0100 |0023: invoke-virtual {v1}, Ljava/lang/Class;.isArray:()Z // method@00b8
5071003cb0: 0a01 |0026: move-result v1
5072003cb2: 3801 6500 |0027: if-eqz v1, 008c // +0065
5073003cb6: 4601 0500 |0029: aget-object v1, v5, v0
5074003cba: 6e10 c000 0100 |002b: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
5075003cc0: 0c02 |002e: move-result-object v2
5076003cc2: 1c03 4400 |002f: const-class v3, [I // type@0044
5077003cc6: 3332 0f00 |0031: if-ne v2, v3, 0040 // +000f
5078003cca: 6202 1300 |0033: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5079003cce: 0713 |0035: move-object v3, v1
5080003cd0: 1f03 4400 |0036: check-cast v3, [I // type@0044
5081003cd4: 7110 e900 0300 |0038: invoke-static {v3}, Ljava/util/Arrays;.toString:([I)Ljava/lang/String; // method@00e9
5082003cda: 0c03 |003b: move-result-object v3
5083003cdc: 6e20 b000 3200 |003c: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5084003ce2: 284c |003f: goto 008b // +004c
5085003ce4: 6e10 c000 0100 |0040: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
5086003cea: 0c02 |0043: move-result-object v2
5087003cec: 1c03 4500 |0044: const-class v3, [J // type@0045
5088003cf0: 3332 0f00 |0046: if-ne v2, v3, 0055 // +000f
5089003cf4: 6202 1300 |0048: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5090003cf8: 0713 |004a: move-object v3, v1
5091003cfa: 1f03 4500 |004b: check-cast v3, [J // type@0045
5092003cfe: 7110 ea00 0300 |004d: invoke-static {v3}, Ljava/util/Arrays;.toString:([J)Ljava/lang/String; // method@00ea
5093003d04: 0c03 |0050: move-result-object v3
5094003d06: 6e20 b000 3200 |0051: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5095003d0c: 2837 |0054: goto 008b // +0037
5096003d0e: 6e10 c000 0100 |0055: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
5097003d14: 0c02 |0058: move-result-object v2
5098003d16: 1c03 4300 |0059: const-class v3, [F // type@0043
5099003d1a: 3332 0f00 |005b: if-ne v2, v3, 006a // +000f
5100003d1e: 6202 1300 |005d: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5101003d22: 0713 |005f: move-object v3, v1
5102003d24: 1f03 4300 |0060: check-cast v3, [F // type@0043
5103003d28: 7110 e800 0300 |0062: invoke-static {v3}, Ljava/util/Arrays;.toString:([F)Ljava/lang/String; // method@00e8
5104003d2e: 0c03 |0065: move-result-object v3
5105003d30: 6e20 b000 3200 |0066: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5106003d36: 2822 |0069: goto 008b // +0022
5107003d38: 6e10 c000 0100 |006a: invoke-virtual {v1}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
5108003d3e: 0c02 |006d: move-result-object v2
5109003d40: 1c03 4200 |006e: const-class v3, [D // type@0042
5110003d44: 3332 0f00 |0070: if-ne v2, v3, 007f // +000f
5111003d48: 6202 1300 |0072: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5112003d4c: 0713 |0074: move-object v3, v1
5113003d4e: 1f03 4200 |0075: check-cast v3, [D // type@0042
5114003d52: 7110 e700 0300 |0077: invoke-static {v3}, Ljava/util/Arrays;.toString:([D)Ljava/lang/String; // method@00e7
5115003d58: 0c03 |007a: move-result-object v3
5116003d5a: 6e20 b000 3200 |007b: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5117003d60: 280d |007e: goto 008b // +000d
5118003d62: 6202 1300 |007f: sget-object v2, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5119003d66: 0713 |0081: move-object v3, v1
5120003d68: 1f03 4800 |0082: check-cast v3, [Ljava/lang/Object; // type@0048
5121003d6c: 7110 eb00 0300 |0084: invoke-static {v3}, Ljava/util/Arrays;.toString:([Ljava/lang/Object;)Ljava/lang/String; // method@00eb
5122003d72: 0c03 |0087: move-result-object v3
5123003d74: 6e20 b000 3200 |0088: invoke-virtual {v2, v3}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5124003d7a: 2808 |008b: goto 0093 // +0008
5125003d7c: 6201 1300 |008c: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5126003d80: 4602 0500 |008e: aget-object v2, v5, v0
5127003d84: 6e20 af00 2100 |0090: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
5128003d8a: d800 0001 |0093: add-int/lit8 v0, v0, #int 1 // #01
5129003d8e: 2900 78ff |0095: goto/16 000d // -0088
5130003d92: 6200 1300 |0097: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5131003d96: 1a01 0800 |0099: const-string v1, ");" // string@0008
5132003d9a: 6e20 b300 1000 |009b: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@00b3
5133003da0: 0e00 |009e: return-void
5134 catches : (none)
5135 positions :
5136 0x0000 line=29
5137 0x0005 line=30
5138 0x000c line=31
5139 0x0010 line=32
5140 0x0012 line=33
5141 0x0019 line=35
5142 0x0029 line=36
5143 0x002b line=37
5144 0x0033 line=38
5145 0x0040 line=39
5146 0x0048 line=40
5147 0x0055 line=41
5148 0x005d line=42
5149 0x006a line=43
5150 0x0072 line=44
5151 0x007f line=46
5152 0x008b line=48
5153 0x008c line=49
5154 0x0093 line=31
5155 0x0097 line=52
5156 0x009e line=53
5157 locals :
5158 0x002b - 0x008b reg=1 array Ljava/lang/Object;
5159 0x000d - 0x0097 reg=0 i I
5160 0x0000 - 0x009f reg=4 method Ljava/lang/String;
5161 0x0000 - 0x009f reg=5 args [Ljava/lang/Object;
5162
5163 #26 : (in LTestVariableArityLinkerMethod;)
5164 name : 'test'
5165 type : '()V'
5166 access : 0x0008 (STATIC)
5167 code -
5168 registers : 3
5169 ins : 0
5170 outs : 2
5171 insns size : 224 16-bit code units
5172003da4: |[003da4] TestVariableArityLinkerMethod.test:()V
5173003db4: 1200 |0000: const/4 v0, #int 0 // #0
5174003db6: 0101 |0001: move v1, v0
5175003db8: 1222 |0002: const/4 v2, #int 2 // #2
5176003dba: 3521 0e00 |0003: if-ge v1, v2, 0011 // +000e
5177003dbe: fc00 1f00 0000 |0005: invoke-custom {}, call_site@001f
5178003dc4: fc00 2000 0000 |0008: invoke-custom {}, call_site@0020
5179003dca: fc00 2100 0000 |000b: invoke-custom {}, call_site@0021
5180003dd0: d801 0101 |000e: add-int/lit8 v1, v1, #int 1 // #01
5181003dd4: 28f2 |0010: goto 0002 // -000e
5182003dd6: 0000 |0011: nop // spacer
5183003dd8: 3520 0e00 |0012: if-ge v0, v2, 0020 // +000e
5184003ddc: fc00 2200 0000 |0014: invoke-custom {}, call_site@0022
5185003de2: fc00 2300 0000 |0017: invoke-custom {}, call_site@0023
5186003de8: fc00 2400 0000 |001a: invoke-custom {}, call_site@0024
5187003dee: d800 0001 |001d: add-int/lit8 v0, v0, #int 1 // #01
5188003df2: 28f3 |001f: goto 0012 // -000d
5189003df4: fc00 2500 0000 |0020: invoke-custom {}, call_site@0025
5190003dfa: fc00 2600 0000 |0023: invoke-custom {}, call_site@0026
5191003e00: fc00 2700 0000 |0026: invoke-custom {}, call_site@0027
5192003e06: fc00 2800 0000 |0029: invoke-custom {}, call_site@0028
5193003e0c: fc00 2900 0000 |002c: invoke-custom {}, call_site@0029
5194003e12: fc00 2a00 0000 |002f: invoke-custom {}, call_site@002a
5195003e18: 7100 8e00 0000 |0032: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e
5196003e1e: 2826 |0035: goto 005b // +0026
5197003e20: 0d00 |0036: move-exception v0
5198003e22: 6201 1300 |0037: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5199003e26: 1a02 8201 |0039: const-string v2, "methodO => " // string@0182
5200003e2a: 6e20 b000 2100 |003b: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5201003e30: 6201 1300 |003e: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5202003e34: 6e10 c000 0000 |0040: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
5203003e3a: 0c02 |0043: move-result-object v2
5204003e3c: 6e20 af00 2100 |0044: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
5205003e42: 6201 1300 |0047: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5206003e46: 1a02 0200 |0049: const-string v2, " => " // string@0002
5207003e4a: 6e20 b000 2100 |004b: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5208003e50: 6201 1300 |004e: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5209003e54: 6e10 b600 0000 |0050: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
5210003e5a: 0c02 |0053: move-result-object v2
5211003e5c: 6e10 c000 0200 |0054: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
5212003e62: 0c02 |0057: move-result-object v2
5213003e64: 6e20 b200 2100 |0058: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
5214003e6a: fc00 2b00 0000 |005b: invoke-custom {}, call_site@002b
5215003e70: 7100 8e00 0000 |005e: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e
5216003e76: 2826 |0061: goto 0087 // +0026
5217003e78: 0d00 |0062: move-exception v0
5218003e7a: 6201 1300 |0063: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5219003e7e: 1a02 8401 |0065: const-string v2, "methodP => " // string@0184
5220003e82: 6e20 b000 2100 |0067: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5221003e88: 6201 1300 |006a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5222003e8c: 6e10 c000 0000 |006c: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
5223003e92: 0c02 |006f: move-result-object v2
5224003e94: 6e20 af00 2100 |0070: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
5225003e9a: 6201 1300 |0073: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5226003e9e: 1a02 0200 |0075: const-string v2, " => " // string@0002
5227003ea2: 6e20 b000 2100 |0077: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5228003ea8: 6201 1300 |007a: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5229003eac: 6e10 b600 0000 |007c: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
5230003eb2: 0c02 |007f: move-result-object v2
5231003eb4: 6e10 c000 0200 |0080: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
5232003eba: 0c02 |0083: move-result-object v2
5233003ebc: 6e20 b200 2100 |0084: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
5234003ec2: fc00 2c00 0000 |0087: invoke-custom {}, call_site@002c
5235003ec8: 7100 8e00 0000 |008a: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e
5236003ece: 2826 |008d: goto 00b3 // +0026
5237003ed0: 0d00 |008e: move-exception v0
5238003ed2: 6201 1300 |008f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5239003ed6: 1a02 8601 |0091: const-string v2, "methodQ => " // string@0186
5240003eda: 6e20 b000 2100 |0093: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5241003ee0: 6201 1300 |0096: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5242003ee4: 6e10 c000 0000 |0098: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
5243003eea: 0c02 |009b: move-result-object v2
5244003eec: 6e20 af00 2100 |009c: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
5245003ef2: 6201 1300 |009f: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5246003ef6: 1a02 0200 |00a1: const-string v2, " => " // string@0002
5247003efa: 6e20 b000 2100 |00a3: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5248003f00: 6201 1300 |00a6: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5249003f04: 6e10 b600 0000 |00a8: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
5250003f0a: 0c02 |00ab: move-result-object v2
5251003f0c: 6e10 c000 0200 |00ac: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
5252003f12: 0c02 |00af: move-result-object v2
5253003f14: 6e20 b200 2100 |00b0: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
5254003f1a: fc00 2d00 0000 |00b3: invoke-custom {}, call_site@002d
5255003f20: 7100 8e00 0000 |00b6: invoke-static {}, LTestVariableArityLinkerMethod;.assertNotReached:()V // method@008e
5256003f26: 2826 |00b9: goto 00df // +0026
5257003f28: 0d00 |00ba: move-exception v0
5258003f2a: 6201 1300 |00bb: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5259003f2e: 1a02 8801 |00bd: const-string v2, "methodR => " // string@0188
5260003f32: 6e20 b000 2100 |00bf: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5261003f38: 6201 1300 |00c2: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5262003f3c: 6e10 c000 0000 |00c4: invoke-virtual {v0}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
5263003f42: 0c02 |00c7: move-result-object v2
5264003f44: 6e20 af00 2100 |00c8: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/Object;)V // method@00af
5265003f4a: 6201 1300 |00cb: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5266003f4e: 1a02 0200 |00cd: const-string v2, " => " // string@0002
5267003f52: 6e20 b000 2100 |00cf: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.print:(Ljava/lang/String;)V // method@00b0
5268003f58: 6201 1300 |00d2: sget-object v1, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0013
5269003f5c: 6e10 b600 0000 |00d4: invoke-virtual {v0}, Ljava/lang/BootstrapMethodError;.getCause:()Ljava/lang/Throwable; // method@00b6
5270003f62: 0c02 |00d7: move-result-object v2
5271003f64: 6e10 c000 0200 |00d8: invoke-virtual {v2}, Ljava/lang/Object;.getClass:()Ljava/lang/Class; // method@00c0
5272003f6a: 0c02 |00db: move-result-object v2
5273003f6c: 6e20 b200 2100 |00dc: invoke-virtual {v1, v2}, Ljava/io/PrintStream;.println:(Ljava/lang/Object;)V // method@00b2
5274003f72: 0e00 |00df: return-void
5275 catches : 4
5276 0x002f - 0x0035
5277 Ljava/lang/BootstrapMethodError; -> 0x0036
5278 0x005b - 0x0061
5279 Ljava/lang/BootstrapMethodError; -> 0x0062
5280 0x0087 - 0x008d
5281 Ljava/lang/BootstrapMethodError; -> 0x008e
5282 0x00b3 - 0x00b9
5283 Ljava/lang/BootstrapMethodError; -> 0x00ba
5284 positions :
5285 0x0000 line=506
5286 0x0005 line=507
5287 0x0008 line=508
5288 0x000b line=509
5289 0x000e line=506
5290 0x0011 line=511
5291 0x0014 line=512
5292 0x0017 line=513
5293 0x001a line=514
5294 0x001d line=511
5295 0x0020 line=516
5296 0x0023 line=517
5297 0x0026 line=518
5298 0x0029 line=519
5299 0x002c line=520
5300 0x002f line=527
5301 0x0032 line=528
5302 0x0035 line=534
5303 0x0036 line=529
5304 0x0037 line=530
5305 0x003e line=531
5306 0x0047 line=532
5307 0x004e line=533
5308 0x005b line=538
5309 0x005e line=539
5310 0x0061 line=545
5311 0x0062 line=540
5312 0x0063 line=541
5313 0x006a line=542
5314 0x0073 line=543
5315 0x007a line=544
5316 0x0087 line=549
5317 0x008a line=550
5318 0x008d line=556
5319 0x008e line=551
5320 0x008f line=552
5321 0x0096 line=553
5322 0x009f line=554
5323 0x00a6 line=555
5324 0x00b3 line=560
5325 0x00b6 line=561
5326 0x00b9 line=567
5327 0x00ba line=562
5328 0x00bb line=563
5329 0x00c2 line=564
5330 0x00cb line=565
5331 0x00d2 line=566
5332 0x00df line=568
5333 locals :
5334 0x0002 - 0x0011 reg=1 i I
5335 0x0012 - 0x0020 reg=0 i I
5336 0x0037 - 0x005b reg=0 expected Ljava/lang/BootstrapMethodError;
5337 0x0063 - 0x0087 reg=0 expected Ljava/lang/BootstrapMethodError;
5338 0x008f - 0x00b3 reg=0 expected Ljava/lang/BootstrapMethodError;
5339 0x00bb - 0x00df reg=0 expected Ljava/lang/BootstrapMethodError;
5340
Orion Hodson775224d2017-07-05 11:04:01 +01005341 Virtual methods -
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005342 source_file_idx : 156 (TestVariableArityLinkerMethod.java)
Orion Hodsonc069a302017-01-18 09:23:12 +00005343
5344Method handle #0:
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005345 type : invoke-static
5346 target : LTestBadBootstrapArguments; bsm
5347 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ID)Ljava/lang/invoke/CallSite;
Orion Hodson775224d2017-07-05 11:04:01 +01005348Method handle #1:
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005349 type : invoke-static
5350 target : LTestBadBootstrapArguments; bsm
5351 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ILjava/lang/String;)Ljava/lang/invoke/CallSite;
Orion Hodson775224d2017-07-05 11:04:01 +01005352Method handle #2:
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005353 type : invoke-static
5354 target : LTestBadBootstrapArguments; bsmDJ
5355 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;DJ)Ljava/lang/invoke/CallSite;
Orion Hodson775224d2017-07-05 11:04:01 +01005356Method handle #3:
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005357 type : invoke-static
5358 target : LTestBadBootstrapArguments; bsmDoubleLong
5359 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Double;Ljava/lang/Long;)Ljava/lang/invoke/CallSite;
Orion Hodson775224d2017-07-05 11:04:01 +01005360Method handle #4:
Orion Hodsonc069a302017-01-18 09:23:12 +00005361 type : invoke-static
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005362 target : LTestBadBootstrapArguments; bsmReturningInteger
5363 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Integer;
Orion Hodson775224d2017-07-05 11:04:01 +01005364Method handle #5:
5365 type : invoke-static
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005366 target : LTestBadBootstrapArguments; bsmReturningObject
5367 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/Object;
Orion Hodson775224d2017-07-05 11:04:01 +01005368Method handle #6:
5369 type : invoke-static
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005370 target : LTestBadBootstrapArguments; bsmReturningTestersConstantCallsite
5371 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)LTestBadBootstrapArguments$TestersConstantCallSite;
Orion Hodson775224d2017-07-05 11:04:01 +01005372Method handle #7:
5373 type : invoke-static
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005374 target : LTestBadBootstrapArguments; bsmReturningVoid
5375 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)V
Orion Hodson775224d2017-07-05 11:04:01 +01005376Method handle #8:
5377 type : invoke-static
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005378 target : LTestBadBootstrapArguments; bsmZBCS
5379 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ZBCS)Ljava/lang/invoke/CallSite;
Orion Hodson775224d2017-07-05 11:04:01 +01005380Method handle #9:
5381 type : invoke-static
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005382 target : LTestDynamicBootstrapArguments; bsm
5383 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;J)Ljava/lang/invoke/CallSite;
Orion Hodson775224d2017-07-05 11:04:01 +01005384Method handle #10:
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005385 type : invoke-static
5386 target : LTestInvocationKinds; lookupConstructor
5387 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Orion Hodson775224d2017-07-05 11:04:01 +01005388Method handle #11:
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005389 type : invoke-static
5390 target : LTestInvocationKinds; lookupInstanceFieldGetter
5391 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Orion Hodson775224d2017-07-05 11:04:01 +01005392Method handle #12:
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005393 type : invoke-static
5394 target : LTestInvocationKinds; lookupInstanceFieldSetter
5395 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Orion Hodson775224d2017-07-05 11:04:01 +01005396Method handle #13:
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005397 type : invoke-static
5398 target : LTestInvocationKinds; lookupStaticFieldGetter
5399 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Orion Hodson775224d2017-07-05 11:04:01 +01005400Method handle #14:
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005401 type : invoke-static
5402 target : LTestInvocationKinds; lookupStaticFieldSetter
5403 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Orion Hodson775224d2017-07-05 11:04:01 +01005404Method handle #15:
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005405 type : invoke-static
5406 target : LTestInvocationKinds; lookupVirtual
5407 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
5408Method handle #16:
5409 type : invoke-static
5410 target : LTestInvokeCustomWithConcurrentThreads; linkerMethod
5411 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
5412Method handle #17:
5413 type : invoke-static
5414 target : LTestLinkerMethodMinimalArguments; linkerMethod
5415 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
5416Method handle #18:
5417 type : invoke-static
5418 target : LTestLinkerMethodMultipleArgumentTypes; linkerMethod
5419 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;
5420Method handle #19:
5421 type : invoke-static
5422 target : LTestVariableArityLinkerMethod; bsmWithBoxedArray
5423 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Integer;)Ljava/lang/invoke/CallSite;
5424Method handle #20:
5425 type : invoke-static
5426 target : LTestVariableArityLinkerMethod; bsmWithClassAndFloatArray
5427 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;[F)Ljava/lang/invoke/CallSite;
5428Method handle #21:
5429 type : invoke-static
5430 target : LTestVariableArityLinkerMethod; bsmWithClassArray
5431 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Class;)Ljava/lang/invoke/CallSite;
5432Method handle #22:
5433 type : invoke-static
5434 target : LTestVariableArityLinkerMethod; bsmWithDoubleArray
5435 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[D)Ljava/lang/invoke/CallSite;
5436Method handle #23:
5437 type : invoke-static
5438 target : LTestVariableArityLinkerMethod; bsmWithFloatAndLongArray
5439 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;F[J)Ljava/lang/invoke/CallSite;
5440Method handle #24:
5441 type : invoke-static
5442 target : LTestVariableArityLinkerMethod; bsmWithIntAndStringArray
5443 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;I[Ljava/lang/String;)Ljava/lang/invoke/CallSite;
5444Method handle #25:
5445 type : invoke-static
5446 target : LTestVariableArityLinkerMethod; bsmWithLongAndIntArray
5447 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;J[I)Ljava/lang/invoke/CallSite;
5448Method handle #26:
5449 type : invoke-static
5450 target : LTestVariableArityLinkerMethod; bsmWithStringArray
5451 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/String;)Ljava/lang/invoke/CallSite;
5452Method handle #27:
5453 type : invoke-static
5454 target : LTestVariableArityLinkerMethod; bsmWithWiderArray
5455 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[J)Ljava/lang/invoke/CallSite;
5456Method handle #28:
5457 type : invoke-static
5458 target : LUnrelatedBSM; bsm
5459 target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/CallSite;
5460Call site #0: // offset 29649
5461 link_argument[0] : 1 (MethodHandle)
5462 link_argument[1] : happy (String)
Orion Hodson775224d2017-07-05 11:04:01 +01005463 link_argument[2] : ()V (MethodType)
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005464 link_argument[3] : -1 (int)
5465 link_argument[4] : very (String)
5466Call site #1: // offset 29662
5467 link_argument[0] : 0 (MethodHandle)
5468 link_argument[1] : wrongParameterTypes (String)
5469 link_argument[2] : ()V (MethodType)
5470 link_argument[3] : -1 (int)
5471 link_argument[4] : very (String)
5472Call site #2: // offset 29675
5473 link_argument[0] : 0 (MethodHandle)
5474 link_argument[1] : missingParameterTypes (String)
5475 link_argument[2] : ()V (MethodType)
5476Call site #3: // offset 29683
5477 link_argument[0] : 1 (MethodHandle)
5478 link_argument[1] : extraArguments (String)
Orion Hodson775224d2017-07-05 11:04:01 +01005479 link_argument[2] : ()V (MethodType)
Orion Hodsonc069a302017-01-18 09:23:12 +00005480 link_argument[3] : 1 (int)
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005481 link_argument[4] : 2 (String)
5482 link_argument[5] : 3 (int)
5483Call site #4: // offset 29697
5484 link_argument[0] : 1 (MethodHandle)
5485 link_argument[1] : wrongArguments (String)
Orion Hodson775224d2017-07-05 11:04:01 +01005486 link_argument[2] : ()V (MethodType)
Orion Hodson0f6cc7f2018-05-25 15:33:44 +01005487 link_argument[3] : 1 (String)
5488 link_argument[4] : 3.14159 (double)
5489Call site #5: // offset 29697
5490 link_argument[0] : 1 (MethodHandle)
5491 link_argument[1] : wrongArguments (String)
5492 link_argument[2] : ()V (MethodType)
5493 link_argument[3] : 1 (String)
5494 link_argument[4] : 3.14159 (double)
5495Call site #6: // offset 29716
5496 link_argument[0] : 1 (MethodHandle)
5497 link_argument[1] : wrongArgumentsAgain (String)
5498 link_argument[2] : ()V (MethodType)
5499 link_argument[3] : 3.14159 (double)
5500 link_argument[4] : pie (String)
5501Call site #7: // offset 29736
5502 link_argument[0] : 8 (MethodHandle)
5503 link_argument[1] : narrowArguments (String)
5504 link_argument[2] : ()V (MethodType)
5505 link_argument[3] : 1 (int)
5506 link_argument[4] : 127 (int)
5507 link_argument[5] : 65 (int)
5508 link_argument[6] : -32768 (int)
5509Call site #8: // offset 29753
5510 link_argument[0] : 2 (MethodHandle)
5511 link_argument[1] : wideningArguments (String)
5512 link_argument[2] : ()V (MethodType)
5513 link_argument[3] : 1.79769e+308 (double)
5514 link_argument[4] : 2147483647 (int)
5515Call site #9: // offset 29775
5516 link_argument[0] : 3 (MethodHandle)
5517 link_argument[1] : boxingArguments (String)
5518 link_argument[2] : ()V (MethodType)
5519 link_argument[3] : 1.79769e+308 (double)
5520 link_argument[4] : 9223372036854775807 (long)
5521Call site #10: // offset 29800
5522 link_argument[0] : 3 (MethodHandle)
5523 link_argument[1] : wideningBoxingArguments (String)
5524 link_argument[2] : ()V (MethodType)
5525 link_argument[3] : 3.40282e+38 (float)
5526 link_argument[4] : 2147483647 (long)
5527Call site #11: // offset 29818
5528 link_argument[0] : 7 (MethodHandle)
5529 link_argument[1] : voidReturnType (String)
5530 link_argument[2] : ()V (MethodType)
5531Call site #12: // offset 29826
5532 link_argument[0] : 5 (MethodHandle)
5533 link_argument[1] : ObjectReturnType (String)
5534 link_argument[2] : ()V (MethodType)
5535Call site #13: // offset 29833
5536 link_argument[0] : 4 (MethodHandle)
5537 link_argument[1] : integerReturnType (String)
5538 link_argument[2] : ()V (MethodType)
5539Call site #14: // offset 29841
5540 link_argument[0] : 6 (MethodHandle)
5541 link_argument[1] : sayHello (String)
5542 link_argument[2] : ()V (MethodType)
5543Call site #15: // offset 29849
5544 link_argument[0] : 9 (MethodHandle)
5545 link_argument[1] : target (String)
5546 link_argument[2] : (ILjava/lang/String;Ljava/lang/Double;)I (MethodType)
5547 link_argument[3] : A (String)
5548 link_argument[4] : 100000000 (long)
5549Call site #16: // offset 29849
5550 link_argument[0] : 9 (MethodHandle)
5551 link_argument[1] : target (String)
5552 link_argument[2] : (ILjava/lang/String;Ljava/lang/Double;)I (MethodType)
5553 link_argument[3] : A (String)
5554 link_argument[4] : 100000000 (long)
5555Call site #17: // offset 29849
5556 link_argument[0] : 9 (MethodHandle)
5557 link_argument[1] : target (String)
5558 link_argument[2] : (ILjava/lang/String;Ljava/lang/Double;)I (MethodType)
5559 link_argument[3] : A (String)
5560 link_argument[4] : 100000000 (long)
5561Call site #18: // offset 29864
5562 link_argument[0] : 10 (MethodHandle)
5563 link_argument[1] : unused (String)
5564 link_argument[2] : (I)LTestInvocationKinds$Widget; (MethodType)
5565Call site #19: // offset 29872
5566 link_argument[0] : 12 (MethodHandle)
5567 link_argument[1] : instance_field (String)
5568 link_argument[2] : (LTestInvocationKinds;D)V (MethodType)
5569Call site #20: // offset 29880
5570 link_argument[0] : 11 (MethodHandle)
5571 link_argument[1] : instance_field (String)
5572 link_argument[2] : (LTestInvocationKinds;)D (MethodType)
5573Call site #21: // offset 29888
5574 link_argument[0] : 15 (MethodHandle)
5575 link_argument[1] : getMaxIntegerValue (String)
5576 link_argument[2] : (LTestInvocationKinds;II)I (MethodType)
5577Call site #22: // offset 29896
5578 link_argument[0] : 14 (MethodHandle)
5579 link_argument[1] : static_field (String)
5580 link_argument[2] : (I)V (MethodType)
5581Call site #23: // offset 29896
5582 link_argument[0] : 14 (MethodHandle)
5583 link_argument[1] : static_field (String)
5584 link_argument[2] : (I)V (MethodType)
5585Call site #24: // offset 29904
5586 link_argument[0] : 13 (MethodHandle)
5587 link_argument[1] : static_field (String)
5588 link_argument[2] : ()I (MethodType)
5589Call site #25: // offset 29904
5590 link_argument[0] : 13 (MethodHandle)
5591 link_argument[1] : static_field (String)
5592 link_argument[2] : ()I (MethodType)
5593Call site #26: // offset 29912
5594 link_argument[0] : 16 (MethodHandle)
5595 link_argument[1] : setCalled (String)
5596 link_argument[2] : (I)I (MethodType)
5597Call site #27: // offset 29920
5598 link_argument[0] : 17 (MethodHandle)
5599 link_argument[1] : _add (String)
5600 link_argument[2] : (II)I (MethodType)
5601Call site #28: // offset 29927
5602 link_argument[0] : 18 (MethodHandle)
5603 link_argument[1] : _add (String)
5604 link_argument[2] : (II)I (MethodType)
5605 link_argument[3] : -1 (int)
5606 link_argument[4] : 1 (int)
5607 link_argument[5] : 97 (int)
5608 link_argument[6] : 1024 (int)
5609 link_argument[7] : 1 (int)
5610 link_argument[8] : 11.1 (float)
5611 link_argument[9] : 2.2 (double)
5612 link_argument[10] : Hello (String)
5613 link_argument[11] : LTestLinkerMethodMultipleArgumentTypes; (Class)
5614 link_argument[12] : 123456789 (long)
5615Call site #29: // offset 29968
5616 link_argument[0] : 28 (MethodHandle)
5617 link_argument[1] : _addf (String)
5618 link_argument[2] : (FF)F (MethodType)
5619 link_argument[3] : LTestLinkerUnrelatedBSM; (Class)
5620Call site #30: // offset 29977
5621 link_argument[0] : 28 (MethodHandle)
5622 link_argument[1] : _subf (String)
5623 link_argument[2] : (FF)F (MethodType)
5624 link_argument[3] : LTestLinkerUnrelatedBSM; (Class)
5625Call site #31: // offset 29986
5626 link_argument[0] : 26 (MethodHandle)
5627 link_argument[1] : methodA (String)
5628 link_argument[2] : ()V (MethodType)
5629 link_argument[3] : Aachen (String)
5630 link_argument[4] : Aalborg (String)
5631 link_argument[5] : Aalto (String)
5632Call site #32: // offset 30000
5633 link_argument[0] : 26 (MethodHandle)
5634 link_argument[1] : methodB (String)
5635 link_argument[2] : ()V (MethodType)
5636 link_argument[3] : barium (String)
5637Call site #33: // offset 30010
5638 link_argument[0] : 26 (MethodHandle)
5639 link_argument[1] : methodC (String)
5640 link_argument[2] : ()V (MethodType)
5641Call site #34: // offset 30018
5642 link_argument[0] : 24 (MethodHandle)
5643 link_argument[1] : methodD (String)
5644 link_argument[2] : ()V (MethodType)
5645 link_argument[3] : 101 (int)
5646 link_argument[4] : zoo (String)
5647 link_argument[5] : zoogene (String)
5648 link_argument[6] : zoogenic (String)
5649Call site #35: // offset 30037
5650 link_argument[0] : 24 (MethodHandle)
5651 link_argument[1] : methodE (String)
5652 link_argument[2] : ()V (MethodType)
5653 link_argument[3] : 102 (int)
5654 link_argument[4] : zonic (String)
5655Call site #36: // offset 30050
5656 link_argument[0] : 24 (MethodHandle)
5657 link_argument[1] : methodF (String)
5658 link_argument[2] : ()V (MethodType)
5659 link_argument[3] : 103 (int)
5660Call site #37: // offset 30060
5661 link_argument[0] : 25 (MethodHandle)
5662 link_argument[1] : methodG (String)
5663 link_argument[2] : ()V (MethodType)
5664 link_argument[3] : 81985529216486895 (long)
5665 link_argument[4] : 1 (int)
5666 link_argument[5] : -1 (int)
5667 link_argument[6] : 2 (int)
5668 link_argument[7] : -2 (int)
5669Call site #38: // offset 30085
5670 link_argument[0] : 23 (MethodHandle)
5671 link_argument[1] : methodH (String)
5672 link_argument[2] : ()V (MethodType)
5673 link_argument[3] : -2.71828 (float)
5674 link_argument[4] : 999999999999 (long)
5675 link_argument[5] : -8888888888888 (long)
5676Call site #39: // offset 30112
5677 link_argument[0] : 20 (MethodHandle)
5678 link_argument[1] : methodI (String)
5679 link_argument[2] : ()V (MethodType)
5680 link_argument[3] : Ljava/lang/Throwable; (Class)
5681 link_argument[4] : 3.40282e+38 (float)
5682 link_argument[5] : 1.4013e-45 (float)
5683 link_argument[6] : 3.14159 (float)
5684 link_argument[7] : -3.14159 (float)
5685Call site #40: // offset 30142
5686 link_argument[0] : 22 (MethodHandle)
5687 link_argument[1] : methodJ (String)
5688 link_argument[2] : ()V (MethodType)
5689 link_argument[3] : 1.79769e+308 (double)
5690 link_argument[4] : 4.94066e-324 (double)
5691 link_argument[5] : 2.71828 (double)
5692 link_argument[6] : -3.14159 (double)
5693Call site #41: // offset 30186
5694 link_argument[0] : 21 (MethodHandle)
5695 link_argument[1] : methodK (String)
5696 link_argument[2] : ()V (MethodType)
5697 link_argument[3] : Ljava/lang/Integer; (Class)
5698 link_argument[4] : Ljava/lang/invoke/MethodHandles; (Class)
5699 link_argument[5] : Ljava/util/Arrays; (Class)
5700Call site #42: // offset 30200
5701 link_argument[0] : 24 (MethodHandle)
5702 link_argument[1] : methodO (String)
5703 link_argument[2] : ()V (MethodType)
5704 link_argument[3] : 103 (int)
5705 link_argument[4] : 104 (int)
5706Call site #43: // offset 30212
5707 link_argument[0] : 24 (MethodHandle)
5708 link_argument[1] : methodP (String)
5709 link_argument[2] : ()V (MethodType)
5710 link_argument[3] : 103 (int)
5711 link_argument[4] : A (String)
5712 link_argument[5] : B (String)
5713 link_argument[6] : 42 (int)
5714Call site #44: // offset 30228
5715 link_argument[0] : 27 (MethodHandle)
5716 link_argument[1] : methodQ (String)
5717 link_argument[2] : ()V (MethodType)
5718 link_argument[3] : 103 (int)
5719 link_argument[4] : 42 (int)
5720Call site #45: // offset 30240
5721 link_argument[0] : 19 (MethodHandle)
5722 link_argument[1] : methodR (String)
5723 link_argument[2] : ()V (MethodType)
5724 link_argument[3] : 1030 (int)
5725 link_argument[4] : 420 (int)