8000263: JSR 292: signature types may appear to be unloaded

Reviewed-by: kvn, jrose
This commit is contained in:
Christian Thalinger 2012-10-08 17:04:00 -07:00
parent b1d745897b
commit 7162ad011c
11 changed files with 136 additions and 171 deletions

View file

@ -209,8 +209,6 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*
Register rcx_mh = rcx; // MH receiver; dies quickly and is recycled
Register rbx_method = rbx; // eventual target of this invocation
address code_start = __ pc();
// here's where control starts out:
__ align(CodeEntryAlignment);
address entry_point = __ pc();
@ -251,23 +249,7 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*
// rdx_first_arg_addr is live!
if (TraceMethodHandles) {
const char* name = vmIntrinsics::name_at(iid);
if (*name == '_') name += 1;
const size_t len = strlen(name) + 50;
char* qname = NEW_C_HEAP_ARRAY(char, len, mtInternal);
const char* suffix = "";
if (vmIntrinsics::method_for(iid) == NULL ||
!vmIntrinsics::method_for(iid)->access_flags().is_public()) {
if (is_signature_polymorphic_static(iid))
suffix = "/static";
else
suffix = "/private";
}
jio_snprintf(qname, len, "MethodHandle::interpreter_entry::%s%s", name, suffix);
// note: stub look for mh in rcx
trace_method_handle(_masm, qname);
}
trace_method_handle_interpreter_entry(_masm, iid);
if (iid == vmIntrinsics::_invokeBasic) {
generate_method_handle_dispatch(_masm, iid, rcx_mh, noreg, not_for_compiler_entry);
@ -287,14 +269,6 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*
generate_method_handle_dispatch(_masm, iid, rcx_recv, rbx_member, not_for_compiler_entry);
}
if (PrintMethodHandleStubs) {
address code_end = __ pc();
tty->print_cr("--------");
tty->print_cr("method handle interpreter entry for %s", vmIntrinsics::name_at(iid));
Disassembler::decode(code_start, code_end);
tty->cr();
}
return entry_point;
}