1 /*
2  * Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.  Oracle designates this
8  * particular file as subject to the "Classpath" exception as provided
9  * by Oracle in the LICENSE file that accompanied this code.
10  *
11  * This code is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14  * version 2 for more details (a copy is included in the LICENSE file that
15  * accompanied this code).
16  *
17  * You should have received a copy of the GNU General Public License version
18  * 2 along with this work; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20  *
21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22  * or visit www.oracle.com if you need additional information or have any
23  * questions.
24  */
25 package java.lang.invoke;
26 
27 import jdk.internal.vm.annotation.ForceInline;
28 import jdk.internal.vm.annotation.Hidden;
29 
30 // This class is auto-generated by java.lang.invoke.VarHandles$GuardMethodGenerator. Do not edit.
31 final class VarHandleGuards {
32 
33     @ForceInline
34     @LambdaForm.Compiled
35     @Hidden
guard_L_L(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad)36     final static Object guard_L_L(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad) throws Throwable {
37         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
38             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
39                     + ad.symbolicMethodTypeExact);
40         }
41         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
42             Object r = MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
43             return ad.returnType.cast(r);
44         } else {
45             MethodHandle mh = handle.getMethodHandle(ad.mode);
46             return mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0);
47         }
48     }
49 
50     @ForceInline
51     @LambdaForm.Compiled
52     @Hidden
guard_LL_V(VarHandle handle, Object arg0, Object arg1, VarHandle.AccessDescriptor ad)53     final static void guard_LL_V(VarHandle handle, Object arg0, Object arg1, VarHandle.AccessDescriptor ad) throws Throwable {
54         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
55             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
56                     + ad.symbolicMethodTypeExact);
57         }
58         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
59             MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
60         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
61             MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
62         } else {
63             MethodHandle mh = handle.getMethodHandle(ad.mode);
64             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
65         }
66     }
67 
68     @ForceInline
69     @LambdaForm.Compiled
70     @Hidden
guard_LLL_Z(VarHandle handle, Object arg0, Object arg1, Object arg2, VarHandle.AccessDescriptor ad)71     final static boolean guard_LLL_Z(VarHandle handle, Object arg0, Object arg1, Object arg2, VarHandle.AccessDescriptor ad) throws Throwable {
72         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
73             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
74                     + ad.symbolicMethodTypeExact);
75         }
76         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
77             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
78         } else {
79             MethodHandle mh = handle.getMethodHandle(ad.mode);
80             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
81         }
82     }
83 
84     @ForceInline
85     @LambdaForm.Compiled
86     @Hidden
guard_LLL_L(VarHandle handle, Object arg0, Object arg1, Object arg2, VarHandle.AccessDescriptor ad)87     final static Object guard_LLL_L(VarHandle handle, Object arg0, Object arg1, Object arg2, VarHandle.AccessDescriptor ad) throws Throwable {
88         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
89             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
90                     + ad.symbolicMethodTypeExact);
91         }
92         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
93             Object r = MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
94             return ad.returnType.cast(r);
95         } else {
96             MethodHandle mh = handle.getMethodHandle(ad.mode);
97             return mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
98         }
99     }
100 
101     @ForceInline
102     @LambdaForm.Compiled
103     @Hidden
guard_LL_L(VarHandle handle, Object arg0, Object arg1, VarHandle.AccessDescriptor ad)104     final static Object guard_LL_L(VarHandle handle, Object arg0, Object arg1, VarHandle.AccessDescriptor ad) throws Throwable {
105         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
106             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
107                     + ad.symbolicMethodTypeExact);
108         }
109         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
110             Object r = MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
111             return ad.returnType.cast(r);
112         } else {
113             MethodHandle mh = handle.getMethodHandle(ad.mode);
114             return mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
115         }
116     }
117 
118     @ForceInline
119     @LambdaForm.Compiled
120     @Hidden
guard_L_I(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad)121     final static int guard_L_I(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad) throws Throwable {
122         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
123             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
124                     + ad.symbolicMethodTypeExact);
125         }
126         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
127             return (int) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
128         } else {
129             MethodHandle mh = handle.getMethodHandle(ad.mode);
130             return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0);
131         }
132     }
133 
134     @ForceInline
135     @LambdaForm.Compiled
136     @Hidden
guard_LI_V(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad)137     final static void guard_LI_V(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
138         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
139             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
140                     + ad.symbolicMethodTypeExact);
141         }
142         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
143             MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
144         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
145             MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
146         } else {
147             MethodHandle mh = handle.getMethodHandle(ad.mode);
148             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
149         }
150     }
151 
152     @ForceInline
153     @LambdaForm.Compiled
154     @Hidden
guard_LII_Z(VarHandle handle, Object arg0, int arg1, int arg2, VarHandle.AccessDescriptor ad)155     final static boolean guard_LII_Z(VarHandle handle, Object arg0, int arg1, int arg2, VarHandle.AccessDescriptor ad) throws Throwable {
156         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
157             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
158                     + ad.symbolicMethodTypeExact);
159         }
160         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
161             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
162         } else {
163             MethodHandle mh = handle.getMethodHandle(ad.mode);
164             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
165         }
166     }
167 
168     @ForceInline
169     @LambdaForm.Compiled
170     @Hidden
guard_LII_I(VarHandle handle, Object arg0, int arg1, int arg2, VarHandle.AccessDescriptor ad)171     final static int guard_LII_I(VarHandle handle, Object arg0, int arg1, int arg2, VarHandle.AccessDescriptor ad) throws Throwable {
172         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
173             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
174                     + ad.symbolicMethodTypeExact);
175         }
176         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
177             return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
178         } else {
179             MethodHandle mh = handle.getMethodHandle(ad.mode);
180             return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
181         }
182     }
183 
184     @ForceInline
185     @LambdaForm.Compiled
186     @Hidden
guard_LI_I(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad)187     final static int guard_LI_I(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
188         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
189             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
190                     + ad.symbolicMethodTypeExact);
191         }
192         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
193             return (int) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
194         } else {
195             MethodHandle mh = handle.getMethodHandle(ad.mode);
196             return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
197         }
198     }
199 
200     @ForceInline
201     @LambdaForm.Compiled
202     @Hidden
guard_L_J(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad)203     final static long guard_L_J(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad) throws Throwable {
204         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
205             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
206                     + ad.symbolicMethodTypeExact);
207         }
208         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
209             return (long) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
210         } else {
211             MethodHandle mh = handle.getMethodHandle(ad.mode);
212             return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0);
213         }
214     }
215 
216     @ForceInline
217     @LambdaForm.Compiled
218     @Hidden
guard_LJ_V(VarHandle handle, Object arg0, long arg1, VarHandle.AccessDescriptor ad)219     final static void guard_LJ_V(VarHandle handle, Object arg0, long arg1, VarHandle.AccessDescriptor ad) throws Throwable {
220         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
221             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
222                     + ad.symbolicMethodTypeExact);
223         }
224         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
225             MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
226         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
227             MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
228         } else {
229             MethodHandle mh = handle.getMethodHandle(ad.mode);
230             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
231         }
232     }
233 
234     @ForceInline
235     @LambdaForm.Compiled
236     @Hidden
guard_LJJ_Z(VarHandle handle, Object arg0, long arg1, long arg2, VarHandle.AccessDescriptor ad)237     final static boolean guard_LJJ_Z(VarHandle handle, Object arg0, long arg1, long arg2, VarHandle.AccessDescriptor ad) throws Throwable {
238         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
239             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
240                     + ad.symbolicMethodTypeExact);
241         }
242         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
243             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
244         } else {
245             MethodHandle mh = handle.getMethodHandle(ad.mode);
246             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
247         }
248     }
249 
250     @ForceInline
251     @LambdaForm.Compiled
252     @Hidden
guard_LJJ_J(VarHandle handle, Object arg0, long arg1, long arg2, VarHandle.AccessDescriptor ad)253     final static long guard_LJJ_J(VarHandle handle, Object arg0, long arg1, long arg2, VarHandle.AccessDescriptor ad) throws Throwable {
254         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
255             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
256                     + ad.symbolicMethodTypeExact);
257         }
258         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
259             return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
260         } else {
261             MethodHandle mh = handle.getMethodHandle(ad.mode);
262             return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
263         }
264     }
265 
266     @ForceInline
267     @LambdaForm.Compiled
268     @Hidden
guard_LJ_J(VarHandle handle, Object arg0, long arg1, VarHandle.AccessDescriptor ad)269     final static long guard_LJ_J(VarHandle handle, Object arg0, long arg1, VarHandle.AccessDescriptor ad) throws Throwable {
270         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
271             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
272                     + ad.symbolicMethodTypeExact);
273         }
274         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
275             return (long) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
276         } else {
277             MethodHandle mh = handle.getMethodHandle(ad.mode);
278             return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
279         }
280     }
281 
282     @ForceInline
283     @LambdaForm.Compiled
284     @Hidden
guard_L_F(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad)285     final static float guard_L_F(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad) throws Throwable {
286         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
287             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
288                     + ad.symbolicMethodTypeExact);
289         }
290         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
291             return (float) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
292         } else {
293             MethodHandle mh = handle.getMethodHandle(ad.mode);
294             return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0);
295         }
296     }
297 
298     @ForceInline
299     @LambdaForm.Compiled
300     @Hidden
guard_LF_V(VarHandle handle, Object arg0, float arg1, VarHandle.AccessDescriptor ad)301     final static void guard_LF_V(VarHandle handle, Object arg0, float arg1, VarHandle.AccessDescriptor ad) throws Throwable {
302         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
303             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
304                     + ad.symbolicMethodTypeExact);
305         }
306         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
307             MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
308         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
309             MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
310         } else {
311             MethodHandle mh = handle.getMethodHandle(ad.mode);
312             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
313         }
314     }
315 
316     @ForceInline
317     @LambdaForm.Compiled
318     @Hidden
guard_LFF_Z(VarHandle handle, Object arg0, float arg1, float arg2, VarHandle.AccessDescriptor ad)319     final static boolean guard_LFF_Z(VarHandle handle, Object arg0, float arg1, float arg2, VarHandle.AccessDescriptor ad) throws Throwable {
320         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
321             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
322                     + ad.symbolicMethodTypeExact);
323         }
324         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
325             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
326         } else {
327             MethodHandle mh = handle.getMethodHandle(ad.mode);
328             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
329         }
330     }
331 
332     @ForceInline
333     @LambdaForm.Compiled
334     @Hidden
guard_LFF_F(VarHandle handle, Object arg0, float arg1, float arg2, VarHandle.AccessDescriptor ad)335     final static float guard_LFF_F(VarHandle handle, Object arg0, float arg1, float arg2, VarHandle.AccessDescriptor ad) throws Throwable {
336         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
337             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
338                     + ad.symbolicMethodTypeExact);
339         }
340         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
341             return (float) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
342         } else {
343             MethodHandle mh = handle.getMethodHandle(ad.mode);
344             return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
345         }
346     }
347 
348     @ForceInline
349     @LambdaForm.Compiled
350     @Hidden
guard_LF_F(VarHandle handle, Object arg0, float arg1, VarHandle.AccessDescriptor ad)351     final static float guard_LF_F(VarHandle handle, Object arg0, float arg1, VarHandle.AccessDescriptor ad) throws Throwable {
352         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
353             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
354                     + ad.symbolicMethodTypeExact);
355         }
356         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
357             return (float) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
358         } else {
359             MethodHandle mh = handle.getMethodHandle(ad.mode);
360             return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
361         }
362     }
363 
364     @ForceInline
365     @LambdaForm.Compiled
366     @Hidden
guard_L_D(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad)367     final static double guard_L_D(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad) throws Throwable {
368         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
369             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
370                     + ad.symbolicMethodTypeExact);
371         }
372         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
373             return (double) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
374         } else {
375             MethodHandle mh = handle.getMethodHandle(ad.mode);
376             return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0);
377         }
378     }
379 
380     @ForceInline
381     @LambdaForm.Compiled
382     @Hidden
guard_LD_V(VarHandle handle, Object arg0, double arg1, VarHandle.AccessDescriptor ad)383     final static void guard_LD_V(VarHandle handle, Object arg0, double arg1, VarHandle.AccessDescriptor ad) throws Throwable {
384         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
385             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
386                     + ad.symbolicMethodTypeExact);
387         }
388         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
389             MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
390         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
391             MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
392         } else {
393             MethodHandle mh = handle.getMethodHandle(ad.mode);
394             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
395         }
396     }
397 
398     @ForceInline
399     @LambdaForm.Compiled
400     @Hidden
guard_LDD_Z(VarHandle handle, Object arg0, double arg1, double arg2, VarHandle.AccessDescriptor ad)401     final static boolean guard_LDD_Z(VarHandle handle, Object arg0, double arg1, double arg2, VarHandle.AccessDescriptor ad) throws Throwable {
402         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
403             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
404                     + ad.symbolicMethodTypeExact);
405         }
406         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
407             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
408         } else {
409             MethodHandle mh = handle.getMethodHandle(ad.mode);
410             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
411         }
412     }
413 
414     @ForceInline
415     @LambdaForm.Compiled
416     @Hidden
guard_LDD_D(VarHandle handle, Object arg0, double arg1, double arg2, VarHandle.AccessDescriptor ad)417     final static double guard_LDD_D(VarHandle handle, Object arg0, double arg1, double arg2, VarHandle.AccessDescriptor ad) throws Throwable {
418         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
419             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
420                     + ad.symbolicMethodTypeExact);
421         }
422         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
423             return (double) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
424         } else {
425             MethodHandle mh = handle.getMethodHandle(ad.mode);
426             return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
427         }
428     }
429 
430     @ForceInline
431     @LambdaForm.Compiled
432     @Hidden
guard_LD_D(VarHandle handle, Object arg0, double arg1, VarHandle.AccessDescriptor ad)433     final static double guard_LD_D(VarHandle handle, Object arg0, double arg1, VarHandle.AccessDescriptor ad) throws Throwable {
434         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
435             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
436                     + ad.symbolicMethodTypeExact);
437         }
438         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
439             return (double) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
440         } else {
441             MethodHandle mh = handle.getMethodHandle(ad.mode);
442             return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
443         }
444     }
445 
446     @ForceInline
447     @LambdaForm.Compiled
448     @Hidden
guard__L(VarHandle handle, VarHandle.AccessDescriptor ad)449     final static Object guard__L(VarHandle handle, VarHandle.AccessDescriptor ad) throws Throwable {
450         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
451             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
452                     + ad.symbolicMethodTypeExact);
453         }
454         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
455             Object r = MethodHandle.linkToStatic(handle, handle.vform.getMemberName(ad.mode));
456             return ad.returnType.cast(r);
457         } else {
458             MethodHandle mh = handle.getMethodHandle(ad.mode);
459             return mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect());
460         }
461     }
462 
463     @ForceInline
464     @LambdaForm.Compiled
465     @Hidden
guard_L_V(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad)466     final static void guard_L_V(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad) throws Throwable {
467         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
468             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
469                     + ad.symbolicMethodTypeExact);
470         }
471         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
472             MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
473         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
474             MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
475         } else {
476             MethodHandle mh = handle.getMethodHandle(ad.mode);
477             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0);
478         }
479     }
480 
481     @ForceInline
482     @LambdaForm.Compiled
483     @Hidden
guard_LL_Z(VarHandle handle, Object arg0, Object arg1, VarHandle.AccessDescriptor ad)484     final static boolean guard_LL_Z(VarHandle handle, Object arg0, Object arg1, VarHandle.AccessDescriptor ad) throws Throwable {
485         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
486             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
487                     + ad.symbolicMethodTypeExact);
488         }
489         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
490             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
491         } else {
492             MethodHandle mh = handle.getMethodHandle(ad.mode);
493             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
494         }
495     }
496 
497     @ForceInline
498     @LambdaForm.Compiled
499     @Hidden
guard__I(VarHandle handle, VarHandle.AccessDescriptor ad)500     final static int guard__I(VarHandle handle, VarHandle.AccessDescriptor ad) throws Throwable {
501         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
502             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
503                     + ad.symbolicMethodTypeExact);
504         }
505         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
506             return (int) MethodHandle.linkToStatic(handle, handle.vform.getMemberName(ad.mode));
507         } else {
508             MethodHandle mh = handle.getMethodHandle(ad.mode);
509             return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect());
510         }
511     }
512 
513     @ForceInline
514     @LambdaForm.Compiled
515     @Hidden
guard_I_V(VarHandle handle, int arg0, VarHandle.AccessDescriptor ad)516     final static void guard_I_V(VarHandle handle, int arg0, VarHandle.AccessDescriptor ad) throws Throwable {
517         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
518             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
519                     + ad.symbolicMethodTypeExact);
520         }
521         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
522             MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
523         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
524             MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
525         } else {
526             MethodHandle mh = handle.getMethodHandle(ad.mode);
527             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0);
528         }
529     }
530 
531     @ForceInline
532     @LambdaForm.Compiled
533     @Hidden
guard_II_Z(VarHandle handle, int arg0, int arg1, VarHandle.AccessDescriptor ad)534     final static boolean guard_II_Z(VarHandle handle, int arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
535         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
536             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
537                     + ad.symbolicMethodTypeExact);
538         }
539         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
540             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
541         } else {
542             MethodHandle mh = handle.getMethodHandle(ad.mode);
543             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
544         }
545     }
546 
547     @ForceInline
548     @LambdaForm.Compiled
549     @Hidden
guard_II_I(VarHandle handle, int arg0, int arg1, VarHandle.AccessDescriptor ad)550     final static int guard_II_I(VarHandle handle, int arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
551         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
552             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
553                     + ad.symbolicMethodTypeExact);
554         }
555         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
556             return (int) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
557         } else {
558             MethodHandle mh = handle.getMethodHandle(ad.mode);
559             return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
560         }
561     }
562 
563     @ForceInline
564     @LambdaForm.Compiled
565     @Hidden
guard_I_I(VarHandle handle, int arg0, VarHandle.AccessDescriptor ad)566     final static int guard_I_I(VarHandle handle, int arg0, VarHandle.AccessDescriptor ad) throws Throwable {
567         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
568             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
569                     + ad.symbolicMethodTypeExact);
570         }
571         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
572             return (int) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
573         } else {
574             MethodHandle mh = handle.getMethodHandle(ad.mode);
575             return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0);
576         }
577     }
578 
579     @ForceInline
580     @LambdaForm.Compiled
581     @Hidden
guard__J(VarHandle handle, VarHandle.AccessDescriptor ad)582     final static long guard__J(VarHandle handle, VarHandle.AccessDescriptor ad) throws Throwable {
583         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
584             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
585                     + ad.symbolicMethodTypeExact);
586         }
587         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
588             return (long) MethodHandle.linkToStatic(handle, handle.vform.getMemberName(ad.mode));
589         } else {
590             MethodHandle mh = handle.getMethodHandle(ad.mode);
591             return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect());
592         }
593     }
594 
595     @ForceInline
596     @LambdaForm.Compiled
597     @Hidden
guard_J_V(VarHandle handle, long arg0, VarHandle.AccessDescriptor ad)598     final static void guard_J_V(VarHandle handle, long arg0, VarHandle.AccessDescriptor ad) throws Throwable {
599         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
600             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
601                     + ad.symbolicMethodTypeExact);
602         }
603         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
604             MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
605         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
606             MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
607         } else {
608             MethodHandle mh = handle.getMethodHandle(ad.mode);
609             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0);
610         }
611     }
612 
613     @ForceInline
614     @LambdaForm.Compiled
615     @Hidden
guard_JJ_Z(VarHandle handle, long arg0, long arg1, VarHandle.AccessDescriptor ad)616     final static boolean guard_JJ_Z(VarHandle handle, long arg0, long arg1, VarHandle.AccessDescriptor ad) throws Throwable {
617         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
618             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
619                     + ad.symbolicMethodTypeExact);
620         }
621         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
622             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
623         } else {
624             MethodHandle mh = handle.getMethodHandle(ad.mode);
625             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
626         }
627     }
628 
629     @ForceInline
630     @LambdaForm.Compiled
631     @Hidden
guard_JJ_J(VarHandle handle, long arg0, long arg1, VarHandle.AccessDescriptor ad)632     final static long guard_JJ_J(VarHandle handle, long arg0, long arg1, VarHandle.AccessDescriptor ad) throws Throwable {
633         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
634             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
635                     + ad.symbolicMethodTypeExact);
636         }
637         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
638             return (long) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
639         } else {
640             MethodHandle mh = handle.getMethodHandle(ad.mode);
641             return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
642         }
643     }
644 
645     @ForceInline
646     @LambdaForm.Compiled
647     @Hidden
guard_J_J(VarHandle handle, long arg0, VarHandle.AccessDescriptor ad)648     final static long guard_J_J(VarHandle handle, long arg0, VarHandle.AccessDescriptor ad) throws Throwable {
649         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
650             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
651                     + ad.symbolicMethodTypeExact);
652         }
653         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
654             return (long) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
655         } else {
656             MethodHandle mh = handle.getMethodHandle(ad.mode);
657             return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0);
658         }
659     }
660 
661     @ForceInline
662     @LambdaForm.Compiled
663     @Hidden
guard__F(VarHandle handle, VarHandle.AccessDescriptor ad)664     final static float guard__F(VarHandle handle, VarHandle.AccessDescriptor ad) throws Throwable {
665         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
666             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
667                     + ad.symbolicMethodTypeExact);
668         }
669         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
670             return (float) MethodHandle.linkToStatic(handle, handle.vform.getMemberName(ad.mode));
671         } else {
672             MethodHandle mh = handle.getMethodHandle(ad.mode);
673             return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect());
674         }
675     }
676 
677     @ForceInline
678     @LambdaForm.Compiled
679     @Hidden
guard_F_V(VarHandle handle, float arg0, VarHandle.AccessDescriptor ad)680     final static void guard_F_V(VarHandle handle, float arg0, VarHandle.AccessDescriptor ad) throws Throwable {
681         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
682             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
683                     + ad.symbolicMethodTypeExact);
684         }
685         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
686             MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
687         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
688             MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
689         } else {
690             MethodHandle mh = handle.getMethodHandle(ad.mode);
691             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0);
692         }
693     }
694 
695     @ForceInline
696     @LambdaForm.Compiled
697     @Hidden
guard_FF_Z(VarHandle handle, float arg0, float arg1, VarHandle.AccessDescriptor ad)698     final static boolean guard_FF_Z(VarHandle handle, float arg0, float arg1, VarHandle.AccessDescriptor ad) throws Throwable {
699         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
700             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
701                     + ad.symbolicMethodTypeExact);
702         }
703         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
704             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
705         } else {
706             MethodHandle mh = handle.getMethodHandle(ad.mode);
707             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
708         }
709     }
710 
711     @ForceInline
712     @LambdaForm.Compiled
713     @Hidden
guard_FF_F(VarHandle handle, float arg0, float arg1, VarHandle.AccessDescriptor ad)714     final static float guard_FF_F(VarHandle handle, float arg0, float arg1, VarHandle.AccessDescriptor ad) throws Throwable {
715         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
716             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
717                     + ad.symbolicMethodTypeExact);
718         }
719         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
720             return (float) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
721         } else {
722             MethodHandle mh = handle.getMethodHandle(ad.mode);
723             return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
724         }
725     }
726 
727     @ForceInline
728     @LambdaForm.Compiled
729     @Hidden
guard_F_F(VarHandle handle, float arg0, VarHandle.AccessDescriptor ad)730     final static float guard_F_F(VarHandle handle, float arg0, VarHandle.AccessDescriptor ad) throws Throwable {
731         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
732             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
733                     + ad.symbolicMethodTypeExact);
734         }
735         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
736             return (float) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
737         } else {
738             MethodHandle mh = handle.getMethodHandle(ad.mode);
739             return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0);
740         }
741     }
742 
743     @ForceInline
744     @LambdaForm.Compiled
745     @Hidden
guard__D(VarHandle handle, VarHandle.AccessDescriptor ad)746     final static double guard__D(VarHandle handle, VarHandle.AccessDescriptor ad) throws Throwable {
747         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
748             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
749                     + ad.symbolicMethodTypeExact);
750         }
751         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
752             return (double) MethodHandle.linkToStatic(handle, handle.vform.getMemberName(ad.mode));
753         } else {
754             MethodHandle mh = handle.getMethodHandle(ad.mode);
755             return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect());
756         }
757     }
758 
759     @ForceInline
760     @LambdaForm.Compiled
761     @Hidden
guard_D_V(VarHandle handle, double arg0, VarHandle.AccessDescriptor ad)762     final static void guard_D_V(VarHandle handle, double arg0, VarHandle.AccessDescriptor ad) throws Throwable {
763         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
764             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
765                     + ad.symbolicMethodTypeExact);
766         }
767         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
768             MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
769         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
770             MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
771         } else {
772             MethodHandle mh = handle.getMethodHandle(ad.mode);
773             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0);
774         }
775     }
776 
777     @ForceInline
778     @LambdaForm.Compiled
779     @Hidden
guard_DD_Z(VarHandle handle, double arg0, double arg1, VarHandle.AccessDescriptor ad)780     final static boolean guard_DD_Z(VarHandle handle, double arg0, double arg1, VarHandle.AccessDescriptor ad) throws Throwable {
781         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
782             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
783                     + ad.symbolicMethodTypeExact);
784         }
785         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
786             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
787         } else {
788             MethodHandle mh = handle.getMethodHandle(ad.mode);
789             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
790         }
791     }
792 
793     @ForceInline
794     @LambdaForm.Compiled
795     @Hidden
guard_DD_D(VarHandle handle, double arg0, double arg1, VarHandle.AccessDescriptor ad)796     final static double guard_DD_D(VarHandle handle, double arg0, double arg1, VarHandle.AccessDescriptor ad) throws Throwable {
797         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
798             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
799                     + ad.symbolicMethodTypeExact);
800         }
801         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
802             return (double) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
803         } else {
804             MethodHandle mh = handle.getMethodHandle(ad.mode);
805             return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
806         }
807     }
808 
809     @ForceInline
810     @LambdaForm.Compiled
811     @Hidden
guard_D_D(VarHandle handle, double arg0, VarHandle.AccessDescriptor ad)812     final static double guard_D_D(VarHandle handle, double arg0, VarHandle.AccessDescriptor ad) throws Throwable {
813         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
814             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
815                     + ad.symbolicMethodTypeExact);
816         }
817         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
818             return (double) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
819         } else {
820             MethodHandle mh = handle.getMethodHandle(ad.mode);
821             return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0);
822         }
823     }
824 
825     @ForceInline
826     @LambdaForm.Compiled
827     @Hidden
guard_LI_L(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad)828     final static Object guard_LI_L(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
829         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
830             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
831                     + ad.symbolicMethodTypeExact);
832         }
833         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
834             Object r = MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
835             return ad.returnType.cast(r);
836         } else {
837             MethodHandle mh = handle.getMethodHandle(ad.mode);
838             return mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
839         }
840     }
841 
842     @ForceInline
843     @LambdaForm.Compiled
844     @Hidden
guard_LIL_V(VarHandle handle, Object arg0, int arg1, Object arg2, VarHandle.AccessDescriptor ad)845     final static void guard_LIL_V(VarHandle handle, Object arg0, int arg1, Object arg2, VarHandle.AccessDescriptor ad) throws Throwable {
846         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
847             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
848                     + ad.symbolicMethodTypeExact);
849         }
850         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
851             MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
852         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
853             MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
854         } else {
855             MethodHandle mh = handle.getMethodHandle(ad.mode);
856             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
857         }
858     }
859 
860     @ForceInline
861     @LambdaForm.Compiled
862     @Hidden
guard_LILL_Z(VarHandle handle, Object arg0, int arg1, Object arg2, Object arg3, VarHandle.AccessDescriptor ad)863     final static boolean guard_LILL_Z(VarHandle handle, Object arg0, int arg1, Object arg2, Object arg3, VarHandle.AccessDescriptor ad) throws Throwable {
864         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
865             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
866                     + ad.symbolicMethodTypeExact);
867         }
868         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
869             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
870         } else {
871             MethodHandle mh = handle.getMethodHandle(ad.mode);
872             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2, arg3);
873         }
874     }
875 
876     @ForceInline
877     @LambdaForm.Compiled
878     @Hidden
guard_LILL_L(VarHandle handle, Object arg0, int arg1, Object arg2, Object arg3, VarHandle.AccessDescriptor ad)879     final static Object guard_LILL_L(VarHandle handle, Object arg0, int arg1, Object arg2, Object arg3, VarHandle.AccessDescriptor ad) throws Throwable {
880         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
881             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
882                     + ad.symbolicMethodTypeExact);
883         }
884         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
885             Object r = MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
886             return ad.returnType.cast(r);
887         } else {
888             MethodHandle mh = handle.getMethodHandle(ad.mode);
889             return mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2, arg3);
890         }
891     }
892 
893     @ForceInline
894     @LambdaForm.Compiled
895     @Hidden
guard_LIL_L(VarHandle handle, Object arg0, int arg1, Object arg2, VarHandle.AccessDescriptor ad)896     final static Object guard_LIL_L(VarHandle handle, Object arg0, int arg1, Object arg2, VarHandle.AccessDescriptor ad) throws Throwable {
897         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
898             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
899                     + ad.symbolicMethodTypeExact);
900         }
901         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
902             Object r = MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
903             return ad.returnType.cast(r);
904         } else {
905             MethodHandle mh = handle.getMethodHandle(ad.mode);
906             return mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
907         }
908     }
909 
910     @ForceInline
911     @LambdaForm.Compiled
912     @Hidden
guard_LII_V(VarHandle handle, Object arg0, int arg1, int arg2, VarHandle.AccessDescriptor ad)913     final static void guard_LII_V(VarHandle handle, Object arg0, int arg1, int arg2, VarHandle.AccessDescriptor ad) throws Throwable {
914         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
915             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
916                     + ad.symbolicMethodTypeExact);
917         }
918         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
919             MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
920         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
921             MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
922         } else {
923             MethodHandle mh = handle.getMethodHandle(ad.mode);
924             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
925         }
926     }
927 
928     @ForceInline
929     @LambdaForm.Compiled
930     @Hidden
guard_LIII_Z(VarHandle handle, Object arg0, int arg1, int arg2, int arg3, VarHandle.AccessDescriptor ad)931     final static boolean guard_LIII_Z(VarHandle handle, Object arg0, int arg1, int arg2, int arg3, VarHandle.AccessDescriptor ad) throws Throwable {
932         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
933             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
934                     + ad.symbolicMethodTypeExact);
935         }
936         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
937             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
938         } else {
939             MethodHandle mh = handle.getMethodHandle(ad.mode);
940             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2, arg3);
941         }
942     }
943 
944     @ForceInline
945     @LambdaForm.Compiled
946     @Hidden
guard_LIII_I(VarHandle handle, Object arg0, int arg1, int arg2, int arg3, VarHandle.AccessDescriptor ad)947     final static int guard_LIII_I(VarHandle handle, Object arg0, int arg1, int arg2, int arg3, VarHandle.AccessDescriptor ad) throws Throwable {
948         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
949             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
950                     + ad.symbolicMethodTypeExact);
951         }
952         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
953             return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
954         } else {
955             MethodHandle mh = handle.getMethodHandle(ad.mode);
956             return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2, arg3);
957         }
958     }
959 
960     @ForceInline
961     @LambdaForm.Compiled
962     @Hidden
guard_LI_J(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad)963     final static long guard_LI_J(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
964         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
965             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
966                     + ad.symbolicMethodTypeExact);
967         }
968         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
969             return (long) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
970         } else {
971             MethodHandle mh = handle.getMethodHandle(ad.mode);
972             return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
973         }
974     }
975 
976     @ForceInline
977     @LambdaForm.Compiled
978     @Hidden
guard_LIJ_V(VarHandle handle, Object arg0, int arg1, long arg2, VarHandle.AccessDescriptor ad)979     final static void guard_LIJ_V(VarHandle handle, Object arg0, int arg1, long arg2, VarHandle.AccessDescriptor ad) throws Throwable {
980         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
981             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
982                     + ad.symbolicMethodTypeExact);
983         }
984         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
985             MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
986         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
987             MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
988         } else {
989             MethodHandle mh = handle.getMethodHandle(ad.mode);
990             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
991         }
992     }
993 
994     @ForceInline
995     @LambdaForm.Compiled
996     @Hidden
guard_LIJJ_Z(VarHandle handle, Object arg0, int arg1, long arg2, long arg3, VarHandle.AccessDescriptor ad)997     final static boolean guard_LIJJ_Z(VarHandle handle, Object arg0, int arg1, long arg2, long arg3, VarHandle.AccessDescriptor ad) throws Throwable {
998         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
999             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1000                     + ad.symbolicMethodTypeExact);
1001         }
1002         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1003             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
1004         } else {
1005             MethodHandle mh = handle.getMethodHandle(ad.mode);
1006             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2, arg3);
1007         }
1008     }
1009 
1010     @ForceInline
1011     @LambdaForm.Compiled
1012     @Hidden
guard_LIJJ_J(VarHandle handle, Object arg0, int arg1, long arg2, long arg3, VarHandle.AccessDescriptor ad)1013     final static long guard_LIJJ_J(VarHandle handle, Object arg0, int arg1, long arg2, long arg3, VarHandle.AccessDescriptor ad) throws Throwable {
1014         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1015             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1016                     + ad.symbolicMethodTypeExact);
1017         }
1018         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1019             return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
1020         } else {
1021             MethodHandle mh = handle.getMethodHandle(ad.mode);
1022             return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2, arg3);
1023         }
1024     }
1025 
1026     @ForceInline
1027     @LambdaForm.Compiled
1028     @Hidden
guard_LIJ_J(VarHandle handle, Object arg0, int arg1, long arg2, VarHandle.AccessDescriptor ad)1029     final static long guard_LIJ_J(VarHandle handle, Object arg0, int arg1, long arg2, VarHandle.AccessDescriptor ad) throws Throwable {
1030         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1031             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1032                     + ad.symbolicMethodTypeExact);
1033         }
1034         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1035             return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
1036         } else {
1037             MethodHandle mh = handle.getMethodHandle(ad.mode);
1038             return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
1039         }
1040     }
1041 
1042     @ForceInline
1043     @LambdaForm.Compiled
1044     @Hidden
guard_LI_F(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad)1045     final static float guard_LI_F(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
1046         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1047             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1048                     + ad.symbolicMethodTypeExact);
1049         }
1050         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1051             return (float) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
1052         } else {
1053             MethodHandle mh = handle.getMethodHandle(ad.mode);
1054             return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
1055         }
1056     }
1057 
1058     @ForceInline
1059     @LambdaForm.Compiled
1060     @Hidden
guard_LIF_V(VarHandle handle, Object arg0, int arg1, float arg2, VarHandle.AccessDescriptor ad)1061     final static void guard_LIF_V(VarHandle handle, Object arg0, int arg1, float arg2, VarHandle.AccessDescriptor ad) throws Throwable {
1062         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1063             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1064                     + ad.symbolicMethodTypeExact);
1065         }
1066         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1067             MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
1068         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
1069             MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
1070         } else {
1071             MethodHandle mh = handle.getMethodHandle(ad.mode);
1072             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
1073         }
1074     }
1075 
1076     @ForceInline
1077     @LambdaForm.Compiled
1078     @Hidden
guard_LIFF_Z(VarHandle handle, Object arg0, int arg1, float arg2, float arg3, VarHandle.AccessDescriptor ad)1079     final static boolean guard_LIFF_Z(VarHandle handle, Object arg0, int arg1, float arg2, float arg3, VarHandle.AccessDescriptor ad) throws Throwable {
1080         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1081             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1082                     + ad.symbolicMethodTypeExact);
1083         }
1084         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1085             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
1086         } else {
1087             MethodHandle mh = handle.getMethodHandle(ad.mode);
1088             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2, arg3);
1089         }
1090     }
1091 
1092     @ForceInline
1093     @LambdaForm.Compiled
1094     @Hidden
guard_LIFF_F(VarHandle handle, Object arg0, int arg1, float arg2, float arg3, VarHandle.AccessDescriptor ad)1095     final static float guard_LIFF_F(VarHandle handle, Object arg0, int arg1, float arg2, float arg3, VarHandle.AccessDescriptor ad) throws Throwable {
1096         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1097             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1098                     + ad.symbolicMethodTypeExact);
1099         }
1100         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1101             return (float) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
1102         } else {
1103             MethodHandle mh = handle.getMethodHandle(ad.mode);
1104             return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2, arg3);
1105         }
1106     }
1107 
1108     @ForceInline
1109     @LambdaForm.Compiled
1110     @Hidden
guard_LIF_F(VarHandle handle, Object arg0, int arg1, float arg2, VarHandle.AccessDescriptor ad)1111     final static float guard_LIF_F(VarHandle handle, Object arg0, int arg1, float arg2, VarHandle.AccessDescriptor ad) throws Throwable {
1112         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1113             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1114                     + ad.symbolicMethodTypeExact);
1115         }
1116         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1117             return (float) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
1118         } else {
1119             MethodHandle mh = handle.getMethodHandle(ad.mode);
1120             return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
1121         }
1122     }
1123 
1124     @ForceInline
1125     @LambdaForm.Compiled
1126     @Hidden
guard_LI_D(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad)1127     final static double guard_LI_D(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
1128         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1129             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1130                     + ad.symbolicMethodTypeExact);
1131         }
1132         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1133             return (double) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
1134         } else {
1135             MethodHandle mh = handle.getMethodHandle(ad.mode);
1136             return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
1137         }
1138     }
1139 
1140     @ForceInline
1141     @LambdaForm.Compiled
1142     @Hidden
guard_LID_V(VarHandle handle, Object arg0, int arg1, double arg2, VarHandle.AccessDescriptor ad)1143     final static void guard_LID_V(VarHandle handle, Object arg0, int arg1, double arg2, VarHandle.AccessDescriptor ad) throws Throwable {
1144         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1145             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1146                     + ad.symbolicMethodTypeExact);
1147         }
1148         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1149             MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
1150         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
1151             MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
1152         } else {
1153             MethodHandle mh = handle.getMethodHandle(ad.mode);
1154             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
1155         }
1156     }
1157 
1158     @ForceInline
1159     @LambdaForm.Compiled
1160     @Hidden
guard_LIDD_Z(VarHandle handle, Object arg0, int arg1, double arg2, double arg3, VarHandle.AccessDescriptor ad)1161     final static boolean guard_LIDD_Z(VarHandle handle, Object arg0, int arg1, double arg2, double arg3, VarHandle.AccessDescriptor ad) throws Throwable {
1162         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1163             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1164                     + ad.symbolicMethodTypeExact);
1165         }
1166         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1167             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
1168         } else {
1169             MethodHandle mh = handle.getMethodHandle(ad.mode);
1170             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2, arg3);
1171         }
1172     }
1173 
1174     @ForceInline
1175     @LambdaForm.Compiled
1176     @Hidden
guard_LIDD_D(VarHandle handle, Object arg0, int arg1, double arg2, double arg3, VarHandle.AccessDescriptor ad)1177     final static double guard_LIDD_D(VarHandle handle, Object arg0, int arg1, double arg2, double arg3, VarHandle.AccessDescriptor ad) throws Throwable {
1178         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1179             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1180                     + ad.symbolicMethodTypeExact);
1181         }
1182         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1183             return (double) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
1184         } else {
1185             MethodHandle mh = handle.getMethodHandle(ad.mode);
1186             return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2, arg3);
1187         }
1188     }
1189 
1190     @ForceInline
1191     @LambdaForm.Compiled
1192     @Hidden
guard_LID_D(VarHandle handle, Object arg0, int arg1, double arg2, VarHandle.AccessDescriptor ad)1193     final static double guard_LID_D(VarHandle handle, Object arg0, int arg1, double arg2, VarHandle.AccessDescriptor ad) throws Throwable {
1194         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1195             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1196                     + ad.symbolicMethodTypeExact);
1197         }
1198         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1199             return (double) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
1200         } else {
1201             MethodHandle mh = handle.getMethodHandle(ad.mode);
1202             return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
1203         }
1204     }
1205 
1206     @ForceInline
1207     @LambdaForm.Compiled
1208     @Hidden
guard_LJ_I(VarHandle handle, Object arg0, long arg1, VarHandle.AccessDescriptor ad)1209     final static int guard_LJ_I(VarHandle handle, Object arg0, long arg1, VarHandle.AccessDescriptor ad) throws Throwable {
1210         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1211             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1212                     + ad.symbolicMethodTypeExact);
1213         }
1214         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1215             return (int) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
1216         } else {
1217             MethodHandle mh = handle.getMethodHandle(ad.mode);
1218             return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1);
1219         }
1220     }
1221 
1222     @ForceInline
1223     @LambdaForm.Compiled
1224     @Hidden
guard_LJI_V(VarHandle handle, Object arg0, long arg1, int arg2, VarHandle.AccessDescriptor ad)1225     final static void guard_LJI_V(VarHandle handle, Object arg0, long arg1, int arg2, VarHandle.AccessDescriptor ad) throws Throwable {
1226         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1227             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1228                     + ad.symbolicMethodTypeExact);
1229         }
1230         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1231             MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
1232         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
1233             MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
1234         } else {
1235             MethodHandle mh = handle.getMethodHandle(ad.mode);
1236             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
1237         }
1238     }
1239 
1240     @ForceInline
1241     @LambdaForm.Compiled
1242     @Hidden
guard_LJII_Z(VarHandle handle, Object arg0, long arg1, int arg2, int arg3, VarHandle.AccessDescriptor ad)1243     final static boolean guard_LJII_Z(VarHandle handle, Object arg0, long arg1, int arg2, int arg3, VarHandle.AccessDescriptor ad) throws Throwable {
1244         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1245             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1246                     + ad.symbolicMethodTypeExact);
1247         }
1248         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1249             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
1250         } else {
1251             MethodHandle mh = handle.getMethodHandle(ad.mode);
1252             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2, arg3);
1253         }
1254     }
1255 
1256     @ForceInline
1257     @LambdaForm.Compiled
1258     @Hidden
guard_LJII_I(VarHandle handle, Object arg0, long arg1, int arg2, int arg3, VarHandle.AccessDescriptor ad)1259     final static int guard_LJII_I(VarHandle handle, Object arg0, long arg1, int arg2, int arg3, VarHandle.AccessDescriptor ad) throws Throwable {
1260         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1261             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1262                     + ad.symbolicMethodTypeExact);
1263         }
1264         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1265             return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
1266         } else {
1267             MethodHandle mh = handle.getMethodHandle(ad.mode);
1268             return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2, arg3);
1269         }
1270     }
1271 
1272     @ForceInline
1273     @LambdaForm.Compiled
1274     @Hidden
guard_LJI_I(VarHandle handle, Object arg0, long arg1, int arg2, VarHandle.AccessDescriptor ad)1275     final static int guard_LJI_I(VarHandle handle, Object arg0, long arg1, int arg2, VarHandle.AccessDescriptor ad) throws Throwable {
1276         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1277             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1278                     + ad.symbolicMethodTypeExact);
1279         }
1280         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1281             return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
1282         } else {
1283             MethodHandle mh = handle.getMethodHandle(ad.mode);
1284             return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
1285         }
1286     }
1287 
1288     @ForceInline
1289     @LambdaForm.Compiled
1290     @Hidden
guard_LJJ_V(VarHandle handle, Object arg0, long arg1, long arg2, VarHandle.AccessDescriptor ad)1291     final static void guard_LJJ_V(VarHandle handle, Object arg0, long arg1, long arg2, VarHandle.AccessDescriptor ad) throws Throwable {
1292         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1293             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1294                     + ad.symbolicMethodTypeExact);
1295         }
1296         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1297             MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
1298         } else if (handle.isDirect() && handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
1299             MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
1300         } else {
1301             MethodHandle mh = handle.getMethodHandle(ad.mode);
1302             mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2);
1303         }
1304     }
1305 
1306     @ForceInline
1307     @LambdaForm.Compiled
1308     @Hidden
guard_LJJJ_Z(VarHandle handle, Object arg0, long arg1, long arg2, long arg3, VarHandle.AccessDescriptor ad)1309     final static boolean guard_LJJJ_Z(VarHandle handle, Object arg0, long arg1, long arg2, long arg3, VarHandle.AccessDescriptor ad) throws Throwable {
1310         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1311             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1312                     + ad.symbolicMethodTypeExact);
1313         }
1314         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1315             return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
1316         } else {
1317             MethodHandle mh = handle.getMethodHandle(ad.mode);
1318             return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2, arg3);
1319         }
1320     }
1321 
1322     @ForceInline
1323     @LambdaForm.Compiled
1324     @Hidden
guard_LJJJ_J(VarHandle handle, Object arg0, long arg1, long arg2, long arg3, VarHandle.AccessDescriptor ad)1325     final static long guard_LJJJ_J(VarHandle handle, Object arg0, long arg1, long arg2, long arg3, VarHandle.AccessDescriptor ad) throws Throwable {
1326         if (handle.hasInvokeExactBehavior() && handle.accessModeType(ad.type) != ad.symbolicMethodTypeExact) {
1327             throw new WrongMethodTypeException("expected " + handle.accessModeType(ad.type) + " but found "
1328                     + ad.symbolicMethodTypeExact);
1329         }
1330         if (handle.isDirect() && handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
1331             return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
1332         } else {
1333             MethodHandle mh = handle.getMethodHandle(ad.mode);
1334             return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle.asDirect(), arg0, arg1, arg2, arg3);
1335         }
1336     }
1337 
1338 }
1339