< prev index next >

src/hotspot/share/ci/bcEscapeAnalyzer.cpp

Print this page

 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);
< prev index next >