< prev index next >

hotspot/src/cpu/ppc/vm/methodHandles_ppc.cpp

Print this page
rev 6900 : 8048169: Change 8037816 breaks HS build on PPC64 and CPP-Interpreter platforms
Summary: Fix the matching of format string parameter types to the actual argument types for the PPC64 and CPP-Interpreter files in the same way as 8037816 already did it for all the other files
Reviewed-by: stefank, coleenp, dholmes
   1 /*
   2  * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   3  * Copyright 2012, 2014 SAP AG. All rights reserved.
   4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   5  *
   6  * This code is free software; you can redistribute it and/or modify it
   7  * under the terms of the GNU General Public License version 2 only, as
   8  * published by the Free Software Foundation.
   9  *
  10  * This code is distributed in the hope that it will be useful, but WITHOUT
  11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  13  * version 2 for more details (a copy is included in the LICENSE file that
  14  * accompanied this code).
  15  *
  16  * You should have received a copy of the GNU General Public License version
  17  * 2 along with this work; if not, write to the Free Software Foundation,
  18  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  19  *
  20  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  21  * or visit www.oracle.com if you need additional information or have any
  22  * questions.


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


   1 /*
   2  * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
   3  * Copyright 2012, 2014 SAP AG. All rights reserved.
   4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   5  *
   6  * This code is free software; you can redistribute it and/or modify it
   7  * under the terms of the GNU General Public License version 2 only, as
   8  * published by the Free Software Foundation.
   9  *
  10  * This code is distributed in the hope that it will be useful, but WITHOUT
  11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  13  * version 2 for more details (a copy is included in the LICENSE file that
  14  * accompanied this code).
  15  *
  16  * You should have received a copy of the GNU General Public License version
  17  * 2 along with this work; if not, write to the Free Software Foundation,
  18  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  19  *
  20  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  21  * or visit www.oracle.com if you need additional information or have any
  22  * questions.


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


< prev index next >