Mercurial > hg > graal-compiler
comparison src/share/vm/interpreter/linkResolver.cpp @ 1059:389049f3f393
6858164: invokedynamic code needs some cleanup (post-6655638)
Summary: Fix several crashers, remove needless paths for boxed-style bootstrap method call, refactor & simplify APIs for rewriter constantPoolOop, remove sun.dyn.CallSiteImpl
Reviewed-by: kvn
author | jrose |
---|---|
date | Fri, 30 Oct 2009 16:22:59 -0700 |
parents | be93aad57795 |
children | e66fd840cb6b |
comparison
equal
deleted
inserted
replaced
1058:73a726751507 | 1059:389049f3f393 |
---|---|
1013 void LinkResolver::resolve_invokedynamic(CallInfo& result, constantPoolHandle pool, int raw_index, TRAPS) { | 1013 void LinkResolver::resolve_invokedynamic(CallInfo& result, constantPoolHandle pool, int raw_index, TRAPS) { |
1014 assert(EnableInvokeDynamic, ""); | 1014 assert(EnableInvokeDynamic, ""); |
1015 | 1015 |
1016 // This guy is reached from InterpreterRuntime::resolve_invokedynamic. | 1016 // This guy is reached from InterpreterRuntime::resolve_invokedynamic. |
1017 | 1017 |
1018 assert(constantPoolCacheOopDesc::is_secondary_index(raw_index), "must be secondary index"); | |
1019 int nt_index = pool->map_instruction_operand_to_index(raw_index); | |
1020 | |
1021 // At this point, we only need the signature, and can ignore the name. | 1018 // At this point, we only need the signature, and can ignore the name. |
1022 symbolHandle method_signature(THREAD, pool->nt_signature_ref_at(nt_index)); | 1019 symbolHandle method_signature(THREAD, pool->signature_ref_at(raw_index)); // raw_index works directly |
1023 symbolHandle method_name = vmSymbolHandles::invoke_name(); | 1020 symbolHandle method_name = vmSymbolHandles::invoke_name(); |
1024 KlassHandle resolved_klass = SystemDictionaryHandles::MethodHandle_klass(); | 1021 KlassHandle resolved_klass = SystemDictionaryHandles::MethodHandle_klass(); |
1025 | 1022 |
1026 // JSR 292: this must be an implicitly generated method MethodHandle.invoke(*...) | 1023 // JSR 292: this must be an implicitly generated method MethodHandle.invoke(*...) |
1027 // The extra MH receiver will be inserted into the stack on every call. | 1024 // The extra MH receiver will be inserted into the stack on every call. |