139 ciMethodData* mdo = method()->method_data(); |
139 ciMethodData* mdo = method()->method_data(); |
140 ciProfileData* mha_profile = mdo->bci_to_data(caller_bci); |
140 ciProfileData* mha_profile = mdo->bci_to_data(caller_bci); |
141 assert(mha_profile, "must exist"); |
141 assert(mha_profile, "must exist"); |
142 CounterData* cd = mha_profile->as_CounterData(); |
142 CounterData* cd = mha_profile->as_CounterData(); |
143 invoke_count = cd->count(); |
143 invoke_count = cd->count(); |
144 call_site_count = invoke_count; // use the same value |
144 if (invoke_count == 0) { |
|
145 return "method handle not reached"; |
|
146 } |
|
147 |
|
148 if (_caller_jvms != NULL && _caller_jvms->method() != NULL && |
|
149 _caller_jvms->method()->method_data() != NULL && |
|
150 !_caller_jvms->method()->method_data()->is_empty()) { |
|
151 ciMethodData* mdo = _caller_jvms->method()->method_data(); |
|
152 ciProfileData* mha_profile = mdo->bci_to_data(_caller_jvms->bci()); |
|
153 assert(mha_profile, "must exist"); |
|
154 CounterData* cd = mha_profile->as_CounterData(); |
|
155 call_site_count = cd->count(); |
|
156 } else { |
|
157 call_site_count = invoke_count; // use the same value |
|
158 } |
145 } |
159 } |
146 |
160 |
147 assert(invoke_count != 0, "require invocation count greater than zero"); |
161 assert(invoke_count != 0, "require invocation count greater than zero"); |
148 int freq = call_site_count / invoke_count; |
162 int freq = call_site_count / invoke_count; |
149 |
163 |