< prev index next >

src/cpu/ppc/vm/methodHandles_ppc.cpp

Print this page




 448     jump_from_method_handle(_masm, R19_method, temp1, temp2, for_compiler_entry);
 449 
 450     if (iid == vmIntrinsics::_linkToInterface) {
 451       __ BIND(L_incompatible_class_change_error);
 452       __ load_const_optimized(temp1, StubRoutines::throw_IncompatibleClassChangeError_entry());
 453       __ mtctr(temp1);
 454       __ bctr();
 455     }
 456   }
 457 }
 458 
 459 #ifndef PRODUCT
 460 void trace_method_handle_stub(const char* adaptername,
 461                               oopDesc* mh,
 462                               intptr_t* entry_sp,
 463                               intptr_t* saved_regs) {
 464 
 465   bool has_mh = (strstr(adaptername, "/static") == NULL &&
 466                  strstr(adaptername, "linkTo") == NULL);    // static linkers don't have MH
 467   const char* mh_reg_name = has_mh ? "R23_method_handle" : "G23";
 468   tty->print_cr("MH %s %s="INTPTR_FORMAT " sp=" INTPTR_FORMAT,
 469                 adaptername, mh_reg_name, p2i(mh), p2i(entry_sp));
 470 
 471   if (Verbose) {
 472     tty->print_cr("Registers:");
 473     const int abi_offset = frame::abi_reg_args_size / 8;
 474     for (int i = R3->encoding(); i <= R12->encoding(); i++) {
 475       Register r = as_Register(i);
 476       int count = i - R3->encoding();
 477       // The registers are stored in reverse order on the stack (by save_volatile_gprs(R1_SP, abi_reg_args_size)).
 478       tty->print("%3s=" PTR_FORMAT, r->name(), saved_regs[abi_offset + count]);
 479       if ((count + 1) % 4 == 0) {
 480         tty->cr();
 481       } else {
 482         tty->print(", ");
 483       }
 484     }
 485     tty->cr();
 486 
 487     {
 488       // dumping last frame with frame::describe




 448     jump_from_method_handle(_masm, R19_method, temp1, temp2, for_compiler_entry);
 449 
 450     if (iid == vmIntrinsics::_linkToInterface) {
 451       __ BIND(L_incompatible_class_change_error);
 452       __ load_const_optimized(temp1, StubRoutines::throw_IncompatibleClassChangeError_entry());
 453       __ mtctr(temp1);
 454       __ bctr();
 455     }
 456   }
 457 }
 458 
 459 #ifndef PRODUCT
 460 void trace_method_handle_stub(const char* adaptername,
 461                               oopDesc* mh,
 462                               intptr_t* entry_sp,
 463                               intptr_t* saved_regs) {
 464 
 465   bool has_mh = (strstr(adaptername, "/static") == NULL &&
 466                  strstr(adaptername, "linkTo") == NULL);    // static linkers don't have MH
 467   const char* mh_reg_name = has_mh ? "R23_method_handle" : "G23";
 468   tty->print_cr("MH %s %s=" INTPTR_FORMAT " sp=" INTPTR_FORMAT,
 469                 adaptername, mh_reg_name, p2i(mh), p2i(entry_sp));
 470 
 471   if (Verbose) {
 472     tty->print_cr("Registers:");
 473     const int abi_offset = frame::abi_reg_args_size / 8;
 474     for (int i = R3->encoding(); i <= R12->encoding(); i++) {
 475       Register r = as_Register(i);
 476       int count = i - R3->encoding();
 477       // The registers are stored in reverse order on the stack (by save_volatile_gprs(R1_SP, abi_reg_args_size)).
 478       tty->print("%3s=" PTR_FORMAT, r->name(), saved_regs[abi_offset + count]);
 479       if ((count + 1) % 4 == 0) {
 480         tty->cr();
 481       } else {
 482         tty->print(", ");
 483       }
 484     }
 485     tty->cr();
 486 
 487     {
 488       // dumping last frame with frame::describe


< prev index next >