hotspot/src/share/vm/code/nmethod.cpp
changeset 33148 68fa8b6c4340
parent 33105 294e48b4f704
child 33198 b37ad9fbf681
equal deleted inserted replaced
33146:77349b58b4c0 33148:68fa8b6c4340
    48 #include "utilities/xmlstream.hpp"
    48 #include "utilities/xmlstream.hpp"
    49 #ifdef SHARK
    49 #ifdef SHARK
    50 #include "shark/sharkCompiler.hpp"
    50 #include "shark/sharkCompiler.hpp"
    51 #endif
    51 #endif
    52 
    52 
    53 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
       
    54 
       
    55 unsigned char nmethod::_global_unloading_clock = 0;
    53 unsigned char nmethod::_global_unloading_clock = 0;
    56 
    54 
    57 #ifdef DTRACE_ENABLED
    55 #ifdef DTRACE_ENABLED
    58 
    56 
    59 // Only bother with this argument setup if dtrace is available
    57 // Only bother with this argument setup if dtrace is available
   807   }
   805   }
   808 }
   806 }
   809 
   807 
   810 
   808 
   811 #define LOG_OFFSET(log, name)                    \
   809 #define LOG_OFFSET(log, name)                    \
   812   if ((intptr_t)name##_end() - (intptr_t)name##_begin()) \
   810   if (p2i(name##_end()) - p2i(name##_begin())) \
   813     log->print(" " XSTR(name) "_offset='%d'"    , \
   811     log->print(" " XSTR(name) "_offset='" INTX_FORMAT "'"    , \
   814                (intptr_t)name##_begin() - (intptr_t)this)
   812                p2i(name##_begin()) - p2i(this))
   815 
   813 
   816 
   814 
   817 void nmethod::log_new_nmethod() const {
   815 void nmethod::log_new_nmethod() const {
   818   if (LogCompilation && xtty != NULL) {
   816   if (LogCompilation && xtty != NULL) {
   819     ttyLocker ttyl;
   817     ttyLocker ttyl;
   820     HandleMark hm;
   818     HandleMark hm;
   821     xtty->begin_elem("nmethod");
   819     xtty->begin_elem("nmethod");
   822     log_identity(xtty);
   820     log_identity(xtty);
   823     xtty->print(" entry='" INTPTR_FORMAT "' size='%d'", code_begin(), size());
   821     xtty->print(" entry='" INTPTR_FORMAT "' size='%d'", p2i(code_begin()), size());
   824     xtty->print(" address='" INTPTR_FORMAT "'", (intptr_t) this);
   822     xtty->print(" address='" INTPTR_FORMAT "'", p2i(this));
   825 
   823 
   826     LOG_OFFSET(xtty, relocation);
   824     LOG_OFFSET(xtty, relocation);
   827     LOG_OFFSET(xtty, consts);
   825     LOG_OFFSET(xtty, consts);
   828     LOG_OFFSET(xtty, insts);
   826     LOG_OFFSET(xtty, insts);
   829     LOG_OFFSET(xtty, stub);
   827     LOG_OFFSET(xtty, stub);
   847 void nmethod::print_on(outputStream* st, const char* msg) const {
   845 void nmethod::print_on(outputStream* st, const char* msg) const {
   848   if (st != NULL) {
   846   if (st != NULL) {
   849     ttyLocker ttyl;
   847     ttyLocker ttyl;
   850     if (WizardMode) {
   848     if (WizardMode) {
   851       CompileTask::print(st, this, msg, /*short_form:*/ true);
   849       CompileTask::print(st, this, msg, /*short_form:*/ true);
   852       st->print_cr(" (" INTPTR_FORMAT ")", this);
   850       st->print_cr(" (" INTPTR_FORMAT ")", p2i(this));
   853     } else {
   851     } else {
   854       CompileTask::print(st, this, msg, /*short_form:*/ false);
   852       CompileTask::print(st, this, msg, /*short_form:*/ false);
   855     }
   853     }
   856   }
   854   }
   857 }
   855 }
  1203   // Break cycle between nmethod & method
  1201   // Break cycle between nmethod & method
  1204   if (TraceClassUnloading && WizardMode) {
  1202   if (TraceClassUnloading && WizardMode) {
  1205     tty->print_cr("[Class unloading: Making nmethod " INTPTR_FORMAT
  1203     tty->print_cr("[Class unloading: Making nmethod " INTPTR_FORMAT
  1206                   " unloadable], Method*(" INTPTR_FORMAT
  1204                   " unloadable], Method*(" INTPTR_FORMAT
  1207                   "), cause(" INTPTR_FORMAT ")",
  1205                   "), cause(" INTPTR_FORMAT ")",
  1208                   this, (address)_method, (address)cause);
  1206                   p2i(this), p2i(_method), p2i(cause));
  1209     if (!Universe::heap()->is_gc_active())
  1207     if (!Universe::heap()->is_gc_active())
  1210       cause->klass()->print();
  1208       cause->klass()->print();
  1211   }
  1209   }
  1212   // Unlink the osr method, so we do not look this up again
  1210   // Unlink the osr method, so we do not look this up again
  1213   if (is_osr_method()) {
  1211   if (is_osr_method()) {
  1400   } else {
  1398   } else {
  1401     assert(state == not_entrant, "other cases may need to be handled differently");
  1399     assert(state == not_entrant, "other cases may need to be handled differently");
  1402   }
  1400   }
  1403 
  1401 
  1404   if (TraceCreateZombies) {
  1402   if (TraceCreateZombies) {
  1405     tty->print_cr("nmethod <" INTPTR_FORMAT "> code made %s", this, (state == not_entrant) ? "not entrant" : "zombie");
  1403     tty->print_cr("nmethod <" INTPTR_FORMAT "> code made %s",
       
  1404                   p2i(this), (state == not_entrant) ? "not entrant" : "zombie");
  1406   }
  1405   }
  1407 
  1406 
  1408   NMethodSweeper::report_state_change(this);
  1407   NMethodSweeper::report_state_change(this);
  1409   return true;
  1408   return true;
  1410 }
  1409 }
  1416 
  1415 
  1417   assert (!is_locked_by_vm(), "locked methods shouldn't be flushed");
  1416   assert (!is_locked_by_vm(), "locked methods shouldn't be flushed");
  1418   assert_locked_or_safepoint(CodeCache_lock);
  1417   assert_locked_or_safepoint(CodeCache_lock);
  1419 
  1418 
  1420   // completely deallocate this method
  1419   // completely deallocate this method
  1421   Events::log(JavaThread::current(), "flushing nmethod " INTPTR_FORMAT, this);
  1420   Events::log(JavaThread::current(), "flushing nmethod " INTPTR_FORMAT, p2i(this));
  1422   if (PrintMethodFlushing) {
  1421   if (PrintMethodFlushing) {
  1423     tty->print_cr("*flushing nmethod %3d/" INTPTR_FORMAT ". Live blobs:" UINT32_FORMAT "/Free CodeCache:" SIZE_FORMAT "Kb",
  1422     tty->print_cr("*flushing nmethod %3d/" INTPTR_FORMAT ". Live blobs:" UINT32_FORMAT
  1424         _compile_id, this, CodeCache::nof_blobs(), CodeCache::unallocated_capacity(CodeCache::get_code_blob_type(this))/1024);
  1423                   "/Free CodeCache:" SIZE_FORMAT "Kb",
       
  1424                   _compile_id, p2i(this), CodeCache::nof_blobs(),
       
  1425                   CodeCache::unallocated_capacity(CodeCache::get_code_blob_type(this))/1024);
  1425   }
  1426   }
  1426 
  1427 
  1427   // We need to deallocate any ExceptionCache data.
  1428   // We need to deallocate any ExceptionCache data.
  1428   // Note that we do not need to grab the nmethod lock for this, it
  1429   // Note that we do not need to grab the nmethod lock for this, it
  1429   // better be thread safe if we're disposing of it!
  1430   // better be thread safe if we're disposing of it!
  1707     }
  1708     }
  1708 
  1709 
  1709     // Clean inline caches pointing to both zombie and not_entrant methods
  1710     // Clean inline caches pointing to both zombie and not_entrant methods
  1710     if (!nm->is_in_use() || (nm->method()->code() != nm)) {
  1711     if (!nm->is_in_use() || (nm->method()->code() != nm)) {
  1711       ic->set_to_clean();
  1712       ic->set_to_clean();
  1712       assert(ic->is_clean(), "nmethod " PTR_FORMAT "not clean %s", from, from->method()->name_and_sig_as_C_string());
  1713       assert(ic->is_clean(), "nmethod " PTR_FORMAT "not clean %s", p2i(from), from->method()->name_and_sig_as_C_string());
  1713     }
  1714     }
  1714   }
  1715   }
  1715 
  1716 
  1716   return false;
  1717   return false;
  1717 }
  1718 }
  2117   nmethod* _print_nm;
  2118   nmethod* _print_nm;
  2118   void maybe_print(oop* p) {
  2119   void maybe_print(oop* p) {
  2119     if (_print_nm == NULL)  return;
  2120     if (_print_nm == NULL)  return;
  2120     if (!_detected_scavenge_root)  _print_nm->print_on(tty, "new scavenge root");
  2121     if (!_detected_scavenge_root)  _print_nm->print_on(tty, "new scavenge root");
  2121     tty->print_cr("" PTR_FORMAT "[offset=%d] detected scavengable oop " PTR_FORMAT " (found at " PTR_FORMAT ")",
  2122     tty->print_cr("" PTR_FORMAT "[offset=%d] detected scavengable oop " PTR_FORMAT " (found at " PTR_FORMAT ")",
  2122                   _print_nm, (int)((intptr_t)p - (intptr_t)_print_nm),
  2123                   p2i(_print_nm), (int)((intptr_t)p - (intptr_t)_print_nm),
  2123                   (void *)(*p), (intptr_t)p);
  2124                   p2i(*p), p2i(p));
  2124     (*p)->print();
  2125     (*p)->print();
  2125   }
  2126   }
  2126 #endif //PRODUCT
  2127 #endif //PRODUCT
  2127 };
  2128 };
  2128 
  2129 
  2424     ResetNoHandleMark rnm; // Might be called from LEAF/QUICK ENTRY
  2425     ResetNoHandleMark rnm; // Might be called from LEAF/QUICK ENTRY
  2425     HandleMark hm(thread);
  2426     HandleMark hm(thread);
  2426     ResourceMark rm(thread);
  2427     ResourceMark rm(thread);
  2427     CodeBlob* cb = CodeCache::find_blob(pc);
  2428     CodeBlob* cb = CodeCache::find_blob(pc);
  2428     assert(cb != NULL && cb == this, "");
  2429     assert(cb != NULL && cb == this, "");
  2429     tty->print_cr("implicit exception happened at " INTPTR_FORMAT, pc);
  2430     tty->print_cr("implicit exception happened at " INTPTR_FORMAT, p2i(pc));
  2430     print();
  2431     print();
  2431     method()->print_codes();
  2432     method()->print_codes();
  2432     print_code();
  2433     print_code();
  2433     print_pcs();
  2434     print_pcs();
  2434   }
  2435   }
  2517     if (_ok) {
  2518     if (_ok) {
  2518       _nm->print_nmethod(true);
  2519       _nm->print_nmethod(true);
  2519       _ok = false;
  2520       _ok = false;
  2520     }
  2521     }
  2521     tty->print_cr("*** non-oop " PTR_FORMAT " found at " PTR_FORMAT " (offset %d)",
  2522     tty->print_cr("*** non-oop " PTR_FORMAT " found at " PTR_FORMAT " (offset %d)",
  2522                   (void *)(*p), (intptr_t)p, (int)((intptr_t)p - (intptr_t)_nm));
  2523                   p2i(*p), p2i(p), (int)((intptr_t)p - (intptr_t)_nm));
  2523   }
  2524   }
  2524   virtual void do_oop(narrowOop* p) { ShouldNotReachHere(); }
  2525   virtual void do_oop(narrowOop* p) { ShouldNotReachHere(); }
  2525 };
  2526 };
  2526 
  2527 
  2527 void nmethod::verify() {
  2528 void nmethod::verify() {
  2538   // assert(method()->is_oop(), "must be valid");
  2539   // assert(method()->is_oop(), "must be valid");
  2539 
  2540 
  2540   ResourceMark rm;
  2541   ResourceMark rm;
  2541 
  2542 
  2542   if (!CodeCache::contains(this)) {
  2543   if (!CodeCache::contains(this)) {
  2543     fatal("nmethod at " INTPTR_FORMAT " not in zone", this);
  2544     fatal("nmethod at " INTPTR_FORMAT " not in zone", p2i(this));
  2544   }
  2545   }
  2545 
  2546 
  2546   if(is_native_method() )
  2547   if(is_native_method() )
  2547     return;
  2548     return;
  2548 
  2549 
  2549   nmethod* nm = CodeCache::find_nmethod(verified_entry_point());
  2550   nmethod* nm = CodeCache::find_nmethod(verified_entry_point());
  2550   if (nm != this) {
  2551   if (nm != this) {
  2551     fatal("findNMethod did not find this nmethod (" INTPTR_FORMAT ")", this);
  2552     fatal("findNMethod did not find this nmethod (" INTPTR_FORMAT ")", p2i(this));
  2552   }
  2553   }
  2553 
  2554 
  2554   for (PcDesc* p = scopes_pcs_begin(); p < scopes_pcs_end(); p++) {
  2555   for (PcDesc* p = scopes_pcs_begin(); p < scopes_pcs_end(); p++) {
  2555     if (! p->verify(this)) {
  2556     if (! p->verify(this)) {
  2556       tty->print_cr("\t\tin nmethod at " INTPTR_FORMAT " (pcs)", this);
  2557       tty->print_cr("\t\tin nmethod at " INTPTR_FORMAT " (pcs)", p2i(this));
  2557     }
  2558     }
  2558   }
  2559   }
  2559 
  2560 
  2560   VerifyOopsClosure voc(this);
  2561   VerifyOopsClosure voc(this);
  2561   oops_do(&voc);
  2562   oops_do(&voc);
  2640     if (_ok) {
  2641     if (_ok) {
  2641       _nm->print_nmethod(true);
  2642       _nm->print_nmethod(true);
  2642       _ok = false;
  2643       _ok = false;
  2643     }
  2644     }
  2644     tty->print_cr("*** scavengable oop " PTR_FORMAT " found at " PTR_FORMAT " (offset %d)",
  2645     tty->print_cr("*** scavengable oop " PTR_FORMAT " found at " PTR_FORMAT " (offset %d)",
  2645                   (void *)(*p), (intptr_t)p, (int)((intptr_t)p - (intptr_t)_nm));
  2646                   p2i(*p), p2i(p), (int)((intptr_t)p - (intptr_t)_nm));
  2646     (*p)->print();
  2647     (*p)->print();
  2647   }
  2648   }
  2648   virtual void do_oop(narrowOop* p) { ShouldNotReachHere(); }
  2649   virtual void do_oop(narrowOop* p) { ShouldNotReachHere(); }
  2649 };
  2650 };
  2650 
  2651 
  2684   }
  2685   }
  2685 
  2686 
  2686   print_on(tty, NULL);
  2687   print_on(tty, NULL);
  2687 
  2688 
  2688   if (WizardMode) {
  2689   if (WizardMode) {
  2689     tty->print("((nmethod*) " INTPTR_FORMAT ") ", this);
  2690     tty->print("((nmethod*) " INTPTR_FORMAT ") ", p2i(this));
  2690     tty->print(" for method " INTPTR_FORMAT , (address)method());
  2691     tty->print(" for method " INTPTR_FORMAT , p2i(method()));
  2691     tty->print(" { ");
  2692     tty->print(" { ");
  2692     if (is_in_use())      tty->print("in_use ");
  2693     if (is_in_use())      tty->print("in_use ");
  2693     if (is_not_entrant()) tty->print("not_entrant ");
  2694     if (is_not_entrant()) tty->print("not_entrant ");
  2694     if (is_zombie())      tty->print("zombie ");
  2695     if (is_zombie())      tty->print("zombie ");
  2695     if (is_unloaded())    tty->print("unloaded ");
  2696     if (is_unloaded())    tty->print("unloaded ");
  2696     if (on_scavenge_root_list())  tty->print("scavenge_root ");
  2697     if (on_scavenge_root_list())  tty->print("scavenge_root ");
  2697     tty->print_cr("}:");
  2698     tty->print_cr("}:");
  2698   }
  2699   }
  2699   if (size              () > 0) tty->print_cr(" total in heap  [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2700   if (size              () > 0) tty->print_cr(" total in heap  [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2700                                               (address)this,
  2701                                               p2i(this),
  2701                                               (address)this + size(),
  2702                                               p2i(this) + size(),
  2702                                               size());
  2703                                               size());
  2703   if (relocation_size   () > 0) tty->print_cr(" relocation     [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2704   if (relocation_size   () > 0) tty->print_cr(" relocation     [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2704                                               relocation_begin(),
  2705                                               p2i(relocation_begin()),
  2705                                               relocation_end(),
  2706                                               p2i(relocation_end()),
  2706                                               relocation_size());
  2707                                               relocation_size());
  2707   if (consts_size       () > 0) tty->print_cr(" constants      [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2708   if (consts_size       () > 0) tty->print_cr(" constants      [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2708                                               consts_begin(),
  2709                                               p2i(consts_begin()),
  2709                                               consts_end(),
  2710                                               p2i(consts_end()),
  2710                                               consts_size());
  2711                                               consts_size());
  2711   if (insts_size        () > 0) tty->print_cr(" main code      [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2712   if (insts_size        () > 0) tty->print_cr(" main code      [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2712                                               insts_begin(),
  2713                                               p2i(insts_begin()),
  2713                                               insts_end(),
  2714                                               p2i(insts_end()),
  2714                                               insts_size());
  2715                                               insts_size());
  2715   if (stub_size         () > 0) tty->print_cr(" stub code      [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2716   if (stub_size         () > 0) tty->print_cr(" stub code      [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2716                                               stub_begin(),
  2717                                               p2i(stub_begin()),
  2717                                               stub_end(),
  2718                                               p2i(stub_end()),
  2718                                               stub_size());
  2719                                               stub_size());
  2719   if (oops_size         () > 0) tty->print_cr(" oops           [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2720   if (oops_size         () > 0) tty->print_cr(" oops           [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2720                                               oops_begin(),
  2721                                               p2i(oops_begin()),
  2721                                               oops_end(),
  2722                                               p2i(oops_end()),
  2722                                               oops_size());
  2723                                               oops_size());
  2723   if (metadata_size      () > 0) tty->print_cr(" metadata       [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2724   if (metadata_size      () > 0) tty->print_cr(" metadata       [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2724                                               metadata_begin(),
  2725                                               p2i(metadata_begin()),
  2725                                               metadata_end(),
  2726                                               p2i(metadata_end()),
  2726                                               metadata_size());
  2727                                               metadata_size());
  2727   if (scopes_data_size  () > 0) tty->print_cr(" scopes data    [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2728   if (scopes_data_size  () > 0) tty->print_cr(" scopes data    [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2728                                               scopes_data_begin(),
  2729                                               p2i(scopes_data_begin()),
  2729                                               scopes_data_end(),
  2730                                               p2i(scopes_data_end()),
  2730                                               scopes_data_size());
  2731                                               scopes_data_size());
  2731   if (scopes_pcs_size   () > 0) tty->print_cr(" scopes pcs     [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2732   if (scopes_pcs_size   () > 0) tty->print_cr(" scopes pcs     [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2732                                               scopes_pcs_begin(),
  2733                                               p2i(scopes_pcs_begin()),
  2733                                               scopes_pcs_end(),
  2734                                               p2i(scopes_pcs_end()),
  2734                                               scopes_pcs_size());
  2735                                               scopes_pcs_size());
  2735   if (dependencies_size () > 0) tty->print_cr(" dependencies   [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2736   if (dependencies_size () > 0) tty->print_cr(" dependencies   [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2736                                               dependencies_begin(),
  2737                                               p2i(dependencies_begin()),
  2737                                               dependencies_end(),
  2738                                               p2i(dependencies_end()),
  2738                                               dependencies_size());
  2739                                               dependencies_size());
  2739   if (handler_table_size() > 0) tty->print_cr(" handler table  [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2740   if (handler_table_size() > 0) tty->print_cr(" handler table  [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2740                                               handler_table_begin(),
  2741                                               p2i(handler_table_begin()),
  2741                                               handler_table_end(),
  2742                                               p2i(handler_table_end()),
  2742                                               handler_table_size());
  2743                                               handler_table_size());
  2743   if (nul_chk_table_size() > 0) tty->print_cr(" nul chk table  [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2744   if (nul_chk_table_size() > 0) tty->print_cr(" nul chk table  [" INTPTR_FORMAT "," INTPTR_FORMAT "] = %d",
  2744                                               nul_chk_table_begin(),
  2745                                               p2i(nul_chk_table_begin()),
  2745                                               nul_chk_table_end(),
  2746                                               p2i(nul_chk_table_end()),
  2746                                               nul_chk_table_size());
  2747                                               nul_chk_table_size());
  2747 }
  2748 }
  2748 
  2749 
  2749 void nmethod::print_code() {
  2750 void nmethod::print_code() {
  2750   HandleMark hm;
  2751   HandleMark hm;
  2791   iter.print();
  2792   iter.print();
  2792   if (UseRelocIndex) {
  2793   if (UseRelocIndex) {
  2793     jint* index_end   = (jint*)relocation_end() - 1;
  2794     jint* index_end   = (jint*)relocation_end() - 1;
  2794     jint  index_size  = *index_end;
  2795     jint  index_size  = *index_end;
  2795     jint* index_start = (jint*)( (address)index_end - index_size );
  2796     jint* index_start = (jint*)( (address)index_end - index_size );
  2796     tty->print_cr("    index @" INTPTR_FORMAT ": index_size=%d", index_start, index_size);
  2797     tty->print_cr("    index @" INTPTR_FORMAT ": index_size=%d", p2i(index_start), index_size);
  2797     if (index_size > 0) {
  2798     if (index_size > 0) {
  2798       jint* ip;
  2799       jint* ip;
  2799       for (ip = index_start; ip+2 <= index_end; ip += 2)
  2800       for (ip = index_start; ip+2 <= index_end; ip += 2)
  2800         tty->print_cr("  (%d %d) addr=" INTPTR_FORMAT " @" INTPTR_FORMAT,
  2801         tty->print_cr("  (%d %d) addr=" INTPTR_FORMAT " @" INTPTR_FORMAT,
  2801                       ip[0],
  2802                       ip[0],
  2802                       ip[1],
  2803                       ip[1],
  2803                       header_end()+ip[0],
  2804                       p2i(header_end()+ip[0]),
  2804                       relocation_begin()-1+ip[1]);
  2805                       p2i(relocation_begin()-1+ip[1]));
  2805       for (; ip < index_end; ip++)
  2806       for (; ip < index_end; ip++)
  2806         tty->print_cr("  (%d ?)", ip[0]);
  2807         tty->print_cr("  (%d ?)", ip[0]);
  2807       tty->print_cr("          @" INTPTR_FORMAT ": index_size=%d", ip, *ip);
  2808       tty->print_cr("          @" INTPTR_FORMAT ": index_size=%d", p2i(ip), *ip);
  2808       ip++;
  2809       ip++;
  2809       tty->print_cr("reloc_end @" INTPTR_FORMAT ":", ip);
  2810       tty->print_cr("reloc_end @" INTPTR_FORMAT ":", p2i(ip));
  2810     }
  2811     }
  2811   }
  2812   }
  2812 }
  2813 }
  2813 
  2814 
  2814 
  2815 
  3086     st->print(";   {%s}", str);
  3087     st->print(";   {%s}", str);
  3087   }
  3088   }
  3088   int cont_offset = ImplicitExceptionTable(this).at(begin - code_begin());
  3089   int cont_offset = ImplicitExceptionTable(this).at(begin - code_begin());
  3089   if (cont_offset != 0) {
  3090   if (cont_offset != 0) {
  3090     st->move_to(column);
  3091     st->move_to(column);
  3091     st->print("; implicit exception: dispatches to " INTPTR_FORMAT, code_begin() + cont_offset);
  3092     st->print("; implicit exception: dispatches to " INTPTR_FORMAT, p2i(code_begin() + cont_offset));
  3092   }
  3093   }
  3093 
  3094 
  3094 }
  3095 }
  3095 
  3096 
  3096 #ifndef PRODUCT
  3097 #ifndef PRODUCT
  3109       VerifyMutexLocker mc(CompiledIC_lock);
  3110       VerifyMutexLocker mc(CompiledIC_lock);
  3110       CompiledIC_at(&iter)->print();
  3111       CompiledIC_at(&iter)->print();
  3111       break;
  3112       break;
  3112     }
  3113     }
  3113     case relocInfo::static_call_type:
  3114     case relocInfo::static_call_type:
  3114       st->print_cr("Static call at " INTPTR_FORMAT, iter.reloc()->addr());
  3115       st->print_cr("Static call at " INTPTR_FORMAT, p2i(iter.reloc()->addr()));
  3115       compiledStaticCall_at(iter.reloc())->print();
  3116       compiledStaticCall_at(iter.reloc())->print();
  3116       break;
  3117       break;
  3117     }
  3118     }
  3118   }
  3119   }
  3119 }
  3120 }