equal
deleted
inserted
replaced
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 |