equal
deleted
inserted
replaced
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 |