src/cpu/x86/vm/methodHandles_x86.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
8000263 Cdiff src/cpu/x86/vm/methodHandles_x86.cpp
src/cpu/x86/vm/methodHandles_x86.cpp
Print this page
*** 207,218 ****
Register rdx_argp = rdx; // argument list ptr, live on error paths
Register rax_temp = rax;
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();
if (VerifyMethodHandles) {
--- 207,216 ----
*** 249,275 ****
DEBUG_ONLY(rdx_argp = noreg);
}
// 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);
! }
if (iid == vmIntrinsics::_invokeBasic) {
generate_method_handle_dispatch(_masm, iid, rcx_mh, noreg, not_for_compiler_entry);
} else {
--- 247,257 ----
DEBUG_ONLY(rdx_argp = noreg);
}
// rdx_first_arg_addr is live!
! trace_method_handle_interpreter_entry(_masm, iid);
if (iid == vmIntrinsics::_invokeBasic) {
generate_method_handle_dispatch(_masm, iid, rcx_mh, noreg, not_for_compiler_entry);
} else {
*** 285,302 ****
__ pop(rbx_member); // extract last argument
__ push(rax_temp); // re-push return address
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;
}
void MethodHandles::generate_method_handle_dispatch(MacroAssembler* _masm,
vmIntrinsics::ID iid,
--- 267,276 ----
src/cpu/x86/vm/methodHandles_x86.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File