538 ArgumentMap arr = state.apop();
539 set_method_escape(arr);
540 set_modified(arr, OFFSET_ANY, type2size[T_INT]*HeapWordSize);
541 break;
542 }
543 case Bytecodes::_lastore:
544 case Bytecodes::_dastore:
545 {
546 state.lpop();
547 state.spop();
548 ArgumentMap arr = state.apop();
549 set_method_escape(arr);
550 set_modified(arr, OFFSET_ANY, type2size[T_LONG]*HeapWordSize);
551 break;
552 }
553 case Bytecodes::_aastore:
554 {
555 set_global_escape(state.apop());
556 state.spop();
557 ArgumentMap arr = state.apop();
558 set_modified(arr, OFFSET_ANY, type2size[T_OBJECT]*HeapWordSize);
559 break;
560 }
561 case Bytecodes::_pop:
562 state.raw_pop();
563 break;
564 case Bytecodes::_pop2:
565 state.raw_pop();
566 state.raw_pop();
567 break;
568 case Bytecodes::_dup:
569 { ArgumentMap w1 = state.raw_pop();
570 state.raw_push(w1);
571 state.raw_push(w1);
572 }
573 break;
574 case Bytecodes::_dup_x1:
575 { ArgumentMap w1 = state.raw_pop();
576 ArgumentMap w2 = state.raw_pop();
577 state.raw_push(w1);
|
538 ArgumentMap arr = state.apop();
539 set_method_escape(arr);
540 set_modified(arr, OFFSET_ANY, type2size[T_INT]*HeapWordSize);
541 break;
542 }
543 case Bytecodes::_lastore:
544 case Bytecodes::_dastore:
545 {
546 state.lpop();
547 state.spop();
548 ArgumentMap arr = state.apop();
549 set_method_escape(arr);
550 set_modified(arr, OFFSET_ANY, type2size[T_LONG]*HeapWordSize);
551 break;
552 }
553 case Bytecodes::_aastore:
554 {
555 set_global_escape(state.apop());
556 state.spop();
557 ArgumentMap arr = state.apop();
558 // If the array is a flat array, a larger part of it is modified than
559 // the size of a reference. However, if OFFSET_ANY is given as
560 // parameter to set_modified(), size is not taken into account.
561 set_modified(arr, OFFSET_ANY, type2size[T_OBJECT]*HeapWordSize);
562 break;
563 }
564 case Bytecodes::_pop:
565 state.raw_pop();
566 break;
567 case Bytecodes::_pop2:
568 state.raw_pop();
569 state.raw_pop();
570 break;
571 case Bytecodes::_dup:
572 { ArgumentMap w1 = state.raw_pop();
573 state.raw_push(w1);
574 state.raw_push(w1);
575 }
576 break;
577 case Bytecodes::_dup_x1:
578 { ArgumentMap w1 = state.raw_pop();
579 ArgumentMap w2 = state.raw_pop();
580 state.raw_push(w1);
|