--- a/jdk/src/java.base/share/classes/java/lang/invoke/VarHandleGuards.java Thu May 05 11:37:18 2016 +0100
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/VarHandleGuards.java Thu May 05 11:39:08 2016 -0700
@@ -30,1361 +30,1008 @@
final class VarHandleGuards {
@ForceInline
- final static MemberName getMemberName(VarHandle handle, VarHandle.AccessDescriptor ad) {
- MemberName mn = VarHandle.AccessMode.getMemberName(ad.mode, handle.vform);
- if (mn == null) {
- throw handle.unsupported();
- }
- return mn;
- }
-
- @ForceInline
@LambdaForm.Compiled
final static Object guard_L_L(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- Object r = MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
- return symbolic.returnType().cast(r);
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ Object r = MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
+ return ad.returnType.cast(r);
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return vh_invoker.invokeBasic(handle, arg0);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_LL_V(VarHandle handle, Object arg0, Object arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static Object guard_LL_L(VarHandle handle, Object arg0, Object arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- Object r = MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- return symbolic.returnType().cast(r);
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ Object r = MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
+ return ad.returnType.cast(r);
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_LLL_Z(VarHandle handle, Object arg0, Object arg1, Object arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static Object guard_LLL_L(VarHandle handle, Object arg0, Object arg1, Object arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- Object r = MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- return symbolic.returnType().cast(r);
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ Object r = MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
+ return ad.returnType.cast(r);
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static int guard_L_I(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (int) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (int) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (int) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (int) vh_invoker.invokeBasic(handle, arg0);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_LI_V(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static int guard_LI_I(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (int) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (int) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (int) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (int) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_LII_Z(VarHandle handle, Object arg0, int arg1, int arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static int guard_LII_I(VarHandle handle, Object arg0, int arg1, int arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (int) vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static long guard_L_J(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (long) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (long) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (long) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (long) vh_invoker.invokeBasic(handle, arg0);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_LJ_V(VarHandle handle, Object arg0, long arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static long guard_LJ_J(VarHandle handle, Object arg0, long arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (long) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (long) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (long) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (long) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_LJJ_Z(VarHandle handle, Object arg0, long arg1, long arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static long guard_LJJ_J(VarHandle handle, Object arg0, long arg1, long arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (long) vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static float guard_L_F(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (float) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (float) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (float) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (float) vh_invoker.invokeBasic(handle, arg0);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_LF_V(VarHandle handle, Object arg0, float arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static float guard_LF_F(VarHandle handle, Object arg0, float arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (float) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (float) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (float) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (float) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_LFF_Z(VarHandle handle, Object arg0, float arg1, float arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static float guard_LFF_F(VarHandle handle, Object arg0, float arg1, float arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (float) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (float) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (float) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (float) vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static double guard_L_D(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (double) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (double) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (double) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (double) vh_invoker.invokeBasic(handle, arg0);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_LD_V(VarHandle handle, Object arg0, double arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static double guard_LD_D(VarHandle handle, Object arg0, double arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (double) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (double) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (double) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (double) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_LDD_Z(VarHandle handle, Object arg0, double arg1, double arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static double guard_LDD_D(VarHandle handle, Object arg0, double arg1, double arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (double) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (double) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (double) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (double) vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static Object guard__L(VarHandle handle, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return MethodHandle.linkToStatic(handle, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- Object r = MethodHandle.linkToStatic(handle, getMemberName(handle, ad));
- return symbolic.returnType().cast(r);
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ Object r = MethodHandle.linkToStatic(handle, handle.vform.getMemberName(ad.mode));
+ return ad.returnType.cast(r);
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return vh_invoker.invokeBasic(handle);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_L_V(VarHandle handle, Object arg0, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_LL_Z(VarHandle handle, Object arg0, Object arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static int guard__I(VarHandle handle, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (int) MethodHandle.linkToStatic(handle, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (int) MethodHandle.linkToStatic(handle, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (int) MethodHandle.linkToStatic(handle, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (int) vh_invoker.invokeBasic(handle);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_I_V(VarHandle handle, int arg0, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0);
}
}
@ForceInline
@LambdaForm.Compiled
final static int guard_I_I(VarHandle handle, int arg0, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (int) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (int) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (int) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (int) vh_invoker.invokeBasic(handle, arg0);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_II_Z(VarHandle handle, int arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static int guard_II_I(VarHandle handle, int arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (int) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (int) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (int) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (int) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static long guard__J(VarHandle handle, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (long) MethodHandle.linkToStatic(handle, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (long) MethodHandle.linkToStatic(handle, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (long) MethodHandle.linkToStatic(handle, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (long) vh_invoker.invokeBasic(handle);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_J_V(VarHandle handle, long arg0, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0);
}
}
@ForceInline
@LambdaForm.Compiled
final static long guard_J_J(VarHandle handle, long arg0, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (long) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (long) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (long) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (long) vh_invoker.invokeBasic(handle, arg0);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_JJ_Z(VarHandle handle, long arg0, long arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static long guard_JJ_J(VarHandle handle, long arg0, long arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (long) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (long) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (long) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (long) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static float guard__F(VarHandle handle, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (float) MethodHandle.linkToStatic(handle, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (float) MethodHandle.linkToStatic(handle, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (float) MethodHandle.linkToStatic(handle, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (float) vh_invoker.invokeBasic(handle);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_F_V(VarHandle handle, float arg0, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0);
}
}
@ForceInline
@LambdaForm.Compiled
final static float guard_F_F(VarHandle handle, float arg0, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (float) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (float) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (float) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (float) vh_invoker.invokeBasic(handle, arg0);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_FF_Z(VarHandle handle, float arg0, float arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static float guard_FF_F(VarHandle handle, float arg0, float arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (float) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (float) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (float) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (float) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static double guard__D(VarHandle handle, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (double) MethodHandle.linkToStatic(handle, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (double) MethodHandle.linkToStatic(handle, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (double) MethodHandle.linkToStatic(handle, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (double) vh_invoker.invokeBasic(handle);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_D_V(VarHandle handle, double arg0, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0);
}
}
@ForceInline
@LambdaForm.Compiled
final static double guard_D_D(VarHandle handle, double arg0, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (double) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (double) MethodHandle.linkToStatic(handle, arg0, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (double) MethodHandle.linkToStatic(handle, arg0, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (double) vh_invoker.invokeBasic(handle, arg0);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_DD_Z(VarHandle handle, double arg0, double arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static double guard_DD_D(VarHandle handle, double arg0, double arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (double) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (double) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (double) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (double) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static Object guard_LI_L(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- Object r = MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- return symbolic.returnType().cast(r);
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ Object r = MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
+ return ad.returnType.cast(r);
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_LIL_V(VarHandle handle, Object arg0, int arg1, Object arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static Object guard_LIL_L(VarHandle handle, Object arg0, int arg1, Object arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- Object r = MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- return symbolic.returnType().cast(r);
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ Object r = MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
+ return ad.returnType.cast(r);
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_LILL_Z(VarHandle handle, Object arg0, int arg1, Object arg2, Object arg3, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1, arg2, arg3);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2, arg3);
}
}
@ForceInline
@LambdaForm.Compiled
final static Object guard_LILL_L(VarHandle handle, Object arg0, int arg1, Object arg2, Object arg3, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- Object r = MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- return symbolic.returnType().cast(r);
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ Object r = MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
+ return ad.returnType.cast(r);
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return vh_invoker.invokeBasic(handle, arg0, arg1, arg2, arg3);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2, arg3);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_LII_V(VarHandle handle, Object arg0, int arg1, int arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_LIII_Z(VarHandle handle, Object arg0, int arg1, int arg2, int arg3, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1, arg2, arg3);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2, arg3);
}
}
@ForceInline
@LambdaForm.Compiled
final static int guard_LIII_I(VarHandle handle, Object arg0, int arg1, int arg2, int arg3, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (int) vh_invoker.invokeBasic(handle, arg0, arg1, arg2, arg3);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2, arg3);
}
}
@ForceInline
@LambdaForm.Compiled
final static long guard_LI_J(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (long) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (long) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (long) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (long) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_LIJ_V(VarHandle handle, Object arg0, int arg1, long arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static long guard_LIJ_J(VarHandle handle, Object arg0, int arg1, long arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (long) vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_LIJJ_Z(VarHandle handle, Object arg0, int arg1, long arg2, long arg3, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1, arg2, arg3);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2, arg3);
}
}
@ForceInline
@LambdaForm.Compiled
final static long guard_LIJJ_J(VarHandle handle, Object arg0, int arg1, long arg2, long arg3, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (long) vh_invoker.invokeBasic(handle, arg0, arg1, arg2, arg3);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2, arg3);
}
}
@ForceInline
@LambdaForm.Compiled
final static float guard_LI_F(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (float) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (float) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (float) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (float) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_LIF_V(VarHandle handle, Object arg0, int arg1, float arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static float guard_LIF_F(VarHandle handle, Object arg0, int arg1, float arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (float) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (float) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (float) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (float) vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_LIFF_Z(VarHandle handle, Object arg0, int arg1, float arg2, float arg3, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1, arg2, arg3);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2, arg3);
}
}
@ForceInline
@LambdaForm.Compiled
final static float guard_LIFF_F(VarHandle handle, Object arg0, int arg1, float arg2, float arg3, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (float) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (float) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (float) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (float) vh_invoker.invokeBasic(handle, arg0, arg1, arg2, arg3);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (float) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2, arg3);
}
}
@ForceInline
@LambdaForm.Compiled
final static double guard_LI_D(VarHandle handle, Object arg0, int arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (double) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (double) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (double) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (double) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_LID_V(VarHandle handle, Object arg0, int arg1, double arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static double guard_LID_D(VarHandle handle, Object arg0, int arg1, double arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (double) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (double) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (double) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (double) vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_LIDD_Z(VarHandle handle, Object arg0, int arg1, double arg2, double arg3, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1, arg2, arg3);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2, arg3);
}
}
@ForceInline
@LambdaForm.Compiled
final static double guard_LIDD_D(VarHandle handle, Object arg0, int arg1, double arg2, double arg3, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (double) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (double) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (double) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (double) vh_invoker.invokeBasic(handle, arg0, arg1, arg2, arg3);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (double) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2, arg3);
}
}
@ForceInline
@LambdaForm.Compiled
final static int guard_LJ_I(VarHandle handle, Object arg0, long arg1, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (int) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (int) MethodHandle.linkToStatic(handle, arg0, arg1, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (int) MethodHandle.linkToStatic(handle, arg0, arg1, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (int) vh_invoker.invokeBasic(handle, arg0, arg1);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_LJI_V(VarHandle handle, Object arg0, long arg1, int arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static int guard_LJI_I(VarHandle handle, Object arg0, long arg1, int arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (int) vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_LJII_Z(VarHandle handle, Object arg0, long arg1, int arg2, int arg3, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1, arg2, arg3);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2, arg3);
}
}
@ForceInline
@LambdaForm.Compiled
final static int guard_LJII_I(VarHandle handle, Object arg0, long arg1, int arg2, int arg3, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (int) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (int) vh_invoker.invokeBasic(handle, arg0, arg1, arg2, arg3);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (int) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2, arg3);
}
}
@ForceInline
@LambdaForm.Compiled
final static void guard_LJJ_V(VarHandle handle, Object arg0, long arg1, long arg2, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
- else if (target.erase() == symbolic.erase()) {
- MethodHandle.linkToStatic(handle, arg0, arg1, arg2, getMemberName(handle, ad));
+ else if (handle.vform.getMethodType_V(ad.type) == ad.symbolicMethodTypeErased) {
+ MethodHandle.linkToStatic(handle, arg0, arg1, arg2, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- vh_invoker.invokeBasic(handle, arg0, arg1, arg2);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2);
}
}
@ForceInline
@LambdaForm.Compiled
final static boolean guard_LJJJ_Z(VarHandle handle, Object arg0, long arg1, long arg2, long arg3, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (boolean) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (boolean) vh_invoker.invokeBasic(handle, arg0, arg1, arg2, arg3);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (boolean) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2, arg3);
}
}
@ForceInline
@LambdaForm.Compiled
final static long guard_LJJJ_J(VarHandle handle, Object arg0, long arg1, long arg2, long arg3, VarHandle.AccessDescriptor ad) throws Throwable {
- MethodType target = VarHandle.AccessType.getMethodType(ad.type, handle);
- MethodType symbolic = ad.symbolicMethodType;
- if (target == symbolic) {
- return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
- }
- else if (target.erase() == symbolic.erase()) {
- return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, getMemberName(handle, ad));
+ if (handle.vform.methodType_table[ad.type] == ad.symbolicMethodTypeErased) {
+ return (long) MethodHandle.linkToStatic(handle, arg0, arg1, arg2, arg3, handle.vform.getMemberName(ad.mode));
}
else {
- MethodHandle vh_invoker = MethodHandles.varHandleInvoker(VarHandle.AccessMode.values()[ad.mode], symbolic);
- return (long) vh_invoker.invokeBasic(handle, arg0, arg1, arg2, arg3);
+ MethodHandle mh = handle.getMethodHandle(ad.mode);
+ return (long) mh.asType(ad.symbolicMethodTypeInvoker).invokeBasic(handle, arg0, arg1, arg2, arg3);
}
}