< prev index next >

src/hotspot/share/runtime/sharedRuntime.cpp

Print this page




  58 #include "runtime/frame.inline.hpp"
  59 #include "runtime/handles.inline.hpp"
  60 #include "runtime/init.hpp"
  61 #include "runtime/interfaceSupport.inline.hpp"
  62 #include "runtime/java.hpp"
  63 #include "runtime/javaCalls.hpp"
  64 #include "runtime/sharedRuntime.hpp"
  65 #include "runtime/stubRoutines.hpp"
  66 #include "runtime/vframe.inline.hpp"
  67 #include "runtime/vframeArray.hpp"
  68 #include "trace/tracing.hpp"
  69 #include "utilities/copy.hpp"
  70 #include "utilities/dtrace.hpp"
  71 #include "utilities/events.hpp"
  72 #include "utilities/hashtable.inline.hpp"
  73 #include "utilities/macros.hpp"
  74 #include "utilities/xmlstream.hpp"
  75 #ifdef COMPILER1
  76 #include "c1/c1_Runtime1.hpp"
  77 #endif



  78 
  79 // Shared stub locations
  80 RuntimeStub*        SharedRuntime::_wrong_method_blob;
  81 RuntimeStub*        SharedRuntime::_wrong_method_abstract_blob;
  82 RuntimeStub*        SharedRuntime::_ic_miss_blob;
  83 RuntimeStub*        SharedRuntime::_resolve_opt_virtual_call_blob;
  84 RuntimeStub*        SharedRuntime::_resolve_virtual_call_blob;
  85 RuntimeStub*        SharedRuntime::_resolve_static_call_blob;
  86 address             SharedRuntime::_resolve_static_call_entry;
  87 
  88 DeoptimizationBlob* SharedRuntime::_deopt_blob;
  89 SafepointBlob*      SharedRuntime::_polling_page_vectors_safepoint_handler_blob;
  90 SafepointBlob*      SharedRuntime::_polling_page_safepoint_handler_blob;
  91 SafepointBlob*      SharedRuntime::_polling_page_return_handler_blob;
  92 
  93 #ifdef COMPILER2
  94 UncommonTrapBlob*   SharedRuntime::_uncommon_trap_blob;
  95 #endif // COMPILER2
  96 
  97 


 197     int tot_misses = 0;
 198     for (int i = 0; i < _ICmiss_index; i++) {
 199       tty->print_cr("  at: " INTPTR_FORMAT "  nof: %d", p2i(_ICmiss_at[i]), _ICmiss_count[i]);
 200       tot_misses += _ICmiss_count[i];
 201     }
 202     tty->print_cr("Total IC misses: %7d", tot_misses);
 203   }
 204 }
 205 #endif // PRODUCT
 206 
 207 #if INCLUDE_ALL_GCS
 208 
 209 // G1 write-barrier pre: executed before a pointer store.
 210 JRT_LEAF(void, SharedRuntime::g1_wb_pre(oopDesc* orig, JavaThread *thread))
 211   if (orig == NULL) {
 212     assert(false, "should be optimized out");
 213     return;
 214   }
 215   assert(oopDesc::is_oop(orig, true /* ignore mark word */), "Error");
 216   // store the original value that was in the field reference
 217   thread->satb_mark_queue().enqueue(orig);
 218 JRT_END
 219 
 220 // G1 write-barrier post: executed after a pointer store.
 221 JRT_LEAF(void, SharedRuntime::g1_wb_post(void* card_addr, JavaThread* thread))
 222   thread->dirty_card_queue().enqueue(card_addr);
 223 JRT_END
 224 
 225 #endif // INCLUDE_ALL_GCS
 226 
 227 
 228 JRT_LEAF(jlong, SharedRuntime::lmul(jlong y, jlong x))
 229   return x * y;
 230 JRT_END
 231 
 232 
 233 JRT_LEAF(jlong, SharedRuntime::ldiv(jlong y, jlong x))
 234   if (x == min_jlong && y == CONST64(-1)) {
 235     return x;
 236   } else {
 237     return x / y;
 238   }
 239 JRT_END
 240 
 241 
 242 JRT_LEAF(jlong, SharedRuntime::lrem(jlong y, jlong x))




  58 #include "runtime/frame.inline.hpp"
  59 #include "runtime/handles.inline.hpp"
  60 #include "runtime/init.hpp"
  61 #include "runtime/interfaceSupport.inline.hpp"
  62 #include "runtime/java.hpp"
  63 #include "runtime/javaCalls.hpp"
  64 #include "runtime/sharedRuntime.hpp"
  65 #include "runtime/stubRoutines.hpp"
  66 #include "runtime/vframe.inline.hpp"
  67 #include "runtime/vframeArray.hpp"
  68 #include "trace/tracing.hpp"
  69 #include "utilities/copy.hpp"
  70 #include "utilities/dtrace.hpp"
  71 #include "utilities/events.hpp"
  72 #include "utilities/hashtable.inline.hpp"
  73 #include "utilities/macros.hpp"
  74 #include "utilities/xmlstream.hpp"
  75 #ifdef COMPILER1
  76 #include "c1/c1_Runtime1.hpp"
  77 #endif
  78 #if INCLUDE_ALL_GCS
  79 #include "gc/g1/g1ThreadLocalData.hpp"
  80 #endif // INCLUDE_ALL_GCS
  81 
  82 // Shared stub locations
  83 RuntimeStub*        SharedRuntime::_wrong_method_blob;
  84 RuntimeStub*        SharedRuntime::_wrong_method_abstract_blob;
  85 RuntimeStub*        SharedRuntime::_ic_miss_blob;
  86 RuntimeStub*        SharedRuntime::_resolve_opt_virtual_call_blob;
  87 RuntimeStub*        SharedRuntime::_resolve_virtual_call_blob;
  88 RuntimeStub*        SharedRuntime::_resolve_static_call_blob;
  89 address             SharedRuntime::_resolve_static_call_entry;
  90 
  91 DeoptimizationBlob* SharedRuntime::_deopt_blob;
  92 SafepointBlob*      SharedRuntime::_polling_page_vectors_safepoint_handler_blob;
  93 SafepointBlob*      SharedRuntime::_polling_page_safepoint_handler_blob;
  94 SafepointBlob*      SharedRuntime::_polling_page_return_handler_blob;
  95 
  96 #ifdef COMPILER2
  97 UncommonTrapBlob*   SharedRuntime::_uncommon_trap_blob;
  98 #endif // COMPILER2
  99 
 100 


 200     int tot_misses = 0;
 201     for (int i = 0; i < _ICmiss_index; i++) {
 202       tty->print_cr("  at: " INTPTR_FORMAT "  nof: %d", p2i(_ICmiss_at[i]), _ICmiss_count[i]);
 203       tot_misses += _ICmiss_count[i];
 204     }
 205     tty->print_cr("Total IC misses: %7d", tot_misses);
 206   }
 207 }
 208 #endif // PRODUCT
 209 
 210 #if INCLUDE_ALL_GCS
 211 
 212 // G1 write-barrier pre: executed before a pointer store.
 213 JRT_LEAF(void, SharedRuntime::g1_wb_pre(oopDesc* orig, JavaThread *thread))
 214   if (orig == NULL) {
 215     assert(false, "should be optimized out");
 216     return;
 217   }
 218   assert(oopDesc::is_oop(orig, true /* ignore mark word */), "Error");
 219   // store the original value that was in the field reference
 220   G1ThreadLocalData::satb_mark_queue(thread).enqueue(orig);
 221 JRT_END
 222 
 223 // G1 write-barrier post: executed after a pointer store.
 224 JRT_LEAF(void, SharedRuntime::g1_wb_post(void* card_addr, JavaThread* thread))
 225   G1ThreadLocalData::dirty_card_queue(thread).enqueue(card_addr);
 226 JRT_END
 227 
 228 #endif // INCLUDE_ALL_GCS
 229 
 230 
 231 JRT_LEAF(jlong, SharedRuntime::lmul(jlong y, jlong x))
 232   return x * y;
 233 JRT_END
 234 
 235 
 236 JRT_LEAF(jlong, SharedRuntime::ldiv(jlong y, jlong x))
 237   if (x == min_jlong && y == CONST64(-1)) {
 238     return x;
 239   } else {
 240     return x / y;
 241   }
 242 JRT_END
 243 
 244 
 245 JRT_LEAF(jlong, SharedRuntime::lrem(jlong y, jlong x))


< prev index next >