hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp
changeset 7432 f06f1253c317
parent 7427 d7b79a367474
child 7435 3da377e9db3f
equal deleted inserted replaced
7431:e9f07f8aef47 7432:f06f1253c317
  2417 }
  2417 }
  2418 
  2418 
  2419 
  2419 
  2420 void LIR_Assembler::setup_md_access(ciMethod* method, int bci,
  2420 void LIR_Assembler::setup_md_access(ciMethod* method, int bci,
  2421                                     ciMethodData*& md, ciProfileData*& data, int& mdo_offset_bias) {
  2421                                     ciMethodData*& md, ciProfileData*& data, int& mdo_offset_bias) {
  2422   md = method->method_data();
  2422   md = method->method_data_or_null();
  2423   if (md == NULL) {
  2423   assert(md != NULL, "Sanity");
  2424     bailout("out of memory building methodDataOop");
       
  2425     return;
       
  2426   }
       
  2427   data = md->bci_to_data(bci);
  2424   data = md->bci_to_data(bci);
  2428   assert(data != NULL,       "need data for checkcast");
  2425   assert(data != NULL,       "need data for checkcast");
  2429   assert(data->is_ReceiverTypeData(), "need ReceiverTypeData for type check");
  2426   assert(data->is_ReceiverTypeData(), "need ReceiverTypeData for type check");
  2430   if (!Assembler::is_simm13(md->byte_offset_of_slot(data, DataLayout::header_offset()) + data->size_in_bytes())) {
  2427   if (!Assembler::is_simm13(md->byte_offset_of_slot(data, DataLayout::header_offset()) + data->size_in_bytes())) {
  2431     // The offset is large so bias the mdo by the base of the slot so
  2428     // The offset is large so bias the mdo by the base of the slot so
  2819 void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) {
  2816 void LIR_Assembler::emit_profile_call(LIR_OpProfileCall* op) {
  2820   ciMethod* method = op->profiled_method();
  2817   ciMethod* method = op->profiled_method();
  2821   int bci          = op->profiled_bci();
  2818   int bci          = op->profiled_bci();
  2822 
  2819 
  2823   // Update counter for all call types
  2820   // Update counter for all call types
  2824   ciMethodData* md = method->method_data();
  2821   ciMethodData* md = method->method_data_or_null();
  2825   if (md == NULL) {
  2822   assert(md != NULL, "Sanity");
  2826     bailout("out of memory building methodDataOop");
       
  2827     return;
       
  2828   }
       
  2829   ciProfileData* data = md->bci_to_data(bci);
  2823   ciProfileData* data = md->bci_to_data(bci);
  2830   assert(data->is_CounterData(), "need CounterData for calls");
  2824   assert(data->is_CounterData(), "need CounterData for calls");
  2831   assert(op->mdo()->is_single_cpu(),  "mdo must be allocated");
  2825   assert(op->mdo()->is_single_cpu(),  "mdo must be allocated");
  2832   Register mdo  = op->mdo()->as_register();
  2826   Register mdo  = op->mdo()->as_register();
  2833 #ifdef _LP64
  2827 #ifdef _LP64