376 VM_ENTRY_MARK;
377 MethodData* mdo = get_MethodData();
378 if ( mdo != NULL) {
379 mdo->set_eflags(_eflags);
380 mdo->set_arg_local(_arg_local);
381 mdo->set_arg_stack(_arg_stack);
382 mdo->set_arg_returned(_arg_returned);
383 int arg_count = mdo->method()->size_of_parameters();
384 for (int i = 0; i < arg_count; i++) {
385 mdo->set_arg_modified(i, arg_modified(i));
386 }
387 }
388 }
389
390 void ciMethodData::set_compilation_stats(short loops, short blocks) {
391 VM_ENTRY_MARK;
392 MethodData* mdo = get_MethodData();
393 if (mdo != NULL) {
394 mdo->set_num_loops(loops);
395 mdo->set_num_blocks(blocks);
396 }
397 }
398
399 void ciMethodData::set_would_profile(bool p) {
400 VM_ENTRY_MARK;
401 MethodData* mdo = get_MethodData();
402 if (mdo != NULL) {
403 mdo->set_would_profile(p);
404 }
405 }
406
407 void ciMethodData::set_argument_type(int bci, int i, ciKlass* k) {
408 VM_ENTRY_MARK;
409 MethodData* mdo = get_MethodData();
410 if (mdo != NULL) {
411 ProfileData* data = mdo->bci_to_data(bci);
412 if (data->is_CallTypeData()) {
413 data->as_CallTypeData()->set_argument_type(i, k->get_Klass());
414 } else {
415 assert(data->is_VirtualCallTypeData(), "no arguments!");
|
376 VM_ENTRY_MARK;
377 MethodData* mdo = get_MethodData();
378 if ( mdo != NULL) {
379 mdo->set_eflags(_eflags);
380 mdo->set_arg_local(_arg_local);
381 mdo->set_arg_stack(_arg_stack);
382 mdo->set_arg_returned(_arg_returned);
383 int arg_count = mdo->method()->size_of_parameters();
384 for (int i = 0; i < arg_count; i++) {
385 mdo->set_arg_modified(i, arg_modified(i));
386 }
387 }
388 }
389
390 void ciMethodData::set_compilation_stats(short loops, short blocks) {
391 VM_ENTRY_MARK;
392 MethodData* mdo = get_MethodData();
393 if (mdo != NULL) {
394 mdo->set_num_loops(loops);
395 mdo->set_num_blocks(blocks);
396 mdo->set_stats_valid(true);
397 }
398 }
399
400 void ciMethodData::set_would_profile(bool p) {
401 VM_ENTRY_MARK;
402 MethodData* mdo = get_MethodData();
403 if (mdo != NULL) {
404 mdo->set_would_profile(p);
405 }
406 }
407
408 void ciMethodData::set_argument_type(int bci, int i, ciKlass* k) {
409 VM_ENTRY_MARK;
410 MethodData* mdo = get_MethodData();
411 if (mdo != NULL) {
412 ProfileData* data = mdo->bci_to_data(bci);
413 if (data->is_CallTypeData()) {
414 data->as_CallTypeData()->set_argument_type(i, k->get_Klass());
415 } else {
416 assert(data->is_VirtualCallTypeData(), "no arguments!");
|