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