jdk/src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java
changeset 34429 8893c723602e
parent 34384 439c06c76808
child 34530 364376f150cf
child 35252 754852fba784
equal deleted inserted replaced
34428:39f1caf048c3 34429:8893c723602e
  1274     }
  1274     }
  1275 
  1275 
  1276     /**
  1276     /**
  1277      * Generate bytecode for a LambdaForm.vmentry which calls interpretWithArguments.
  1277      * Generate bytecode for a LambdaForm.vmentry which calls interpretWithArguments.
  1278      */
  1278      */
  1279     static MemberName generateLambdaFormInterpreterEntryPoint(String sig) {
  1279     static MemberName generateLambdaFormInterpreterEntryPoint(MethodType mt) {
  1280         assert(isValidSignature(sig));
  1280         assert(isValidSignature(basicTypeSignature(mt)));
  1281         String name = "interpret_"+signatureReturn(sig).basicTypeChar();
  1281         String name = "interpret_"+basicTypeChar(mt.returnType());
  1282         MethodType type = signatureType(sig);  // sig includes leading argument
  1282         MethodType type = mt;  // includes leading argument
  1283         type = type.changeParameterType(0, MethodHandle.class);
  1283         type = type.changeParameterType(0, MethodHandle.class);
  1284         InvokerBytecodeGenerator g = new InvokerBytecodeGenerator("LFI", name, type);
  1284         InvokerBytecodeGenerator g = new InvokerBytecodeGenerator("LFI", name, type);
  1285         return g.loadMethod(g.generateLambdaFormInterpreterEntryPointBytes());
  1285         return g.loadMethod(g.generateLambdaFormInterpreterEntryPointBytes());
  1286     }
  1286     }
  1287 
  1287