src/share/vm/ci/bcEscapeAnalyzer.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File valhalla Sdiff src/share/vm/ci

src/share/vm/ci/bcEscapeAnalyzer.cpp

Print this page




 536       case Bytecodes::_castore:
 537       case Bytecodes::_sastore:
 538       {
 539         state.spop();
 540         state.spop();
 541         ArgumentMap arr = state.apop();
 542         set_method_escape(arr);
 543         set_modified(arr, OFFSET_ANY, type2size[T_INT]*HeapWordSize);
 544         break;
 545       }
 546       case Bytecodes::_lastore:
 547       case Bytecodes::_dastore:
 548       {
 549         state.lpop();
 550         state.spop();
 551         ArgumentMap arr = state.apop();
 552         set_method_escape(arr);
 553         set_modified(arr, OFFSET_ANY, type2size[T_LONG]*HeapWordSize);
 554         break;
 555       }
 556       case Bytecodes::_vastore:
 557       case Bytecodes::_aastore:
 558       {
 559         set_global_escape(state.apop());
 560         state.spop();
 561         ArgumentMap arr = state.apop();
 562         set_modified(arr, OFFSET_ANY, type2size[T_OBJECT]*HeapWordSize);











 563         break;
 564       }
 565       case Bytecodes::_pop:
 566         state.raw_pop();
 567         break;
 568       case Bytecodes::_pop2:
 569         state.raw_pop();
 570         state.raw_pop();
 571         break;
 572       case Bytecodes::_dup:
 573         { ArgumentMap w1 = state.raw_pop();
 574           state.raw_push(w1);
 575           state.raw_push(w1);
 576         }
 577         break;
 578       case Bytecodes::_dup_x1:
 579         { ArgumentMap w1 = state.raw_pop();
 580           ArgumentMap w2 = state.raw_pop();
 581           state.raw_push(w1);
 582           state.raw_push(w2);




 536       case Bytecodes::_castore:
 537       case Bytecodes::_sastore:
 538       {
 539         state.spop();
 540         state.spop();
 541         ArgumentMap arr = state.apop();
 542         set_method_escape(arr);
 543         set_modified(arr, OFFSET_ANY, type2size[T_INT]*HeapWordSize);
 544         break;
 545       }
 546       case Bytecodes::_lastore:
 547       case Bytecodes::_dastore:
 548       {
 549         state.lpop();
 550         state.spop();
 551         ArgumentMap arr = state.apop();
 552         set_method_escape(arr);
 553         set_modified(arr, OFFSET_ANY, type2size[T_LONG]*HeapWordSize);
 554         break;
 555       }

 556       case Bytecodes::_aastore:
 557       {
 558         set_global_escape(state.apop());
 559         state.spop();
 560         ArgumentMap arr = state.apop();
 561         set_modified(arr, OFFSET_ANY, type2size[T_OBJECT]*HeapWordSize);
 562         break;
 563       }
 564       case Bytecodes::_vastore:
 565       {
 566         set_global_escape(state.apop());
 567         state.spop();
 568         ArgumentMap arr = state.apop();
 569         // If the array is flattened, a larger part of it is modified than
 570         // the size of a reference. However, if OFFSET_ANY is given as
 571         // parameter to set_modified(), size is not taken into account.
 572         set_modified(arr, OFFSET_ANY, type2size[T_VALUETYPE]*HeapWordSize);
 573         break;
 574       }
 575       case Bytecodes::_pop:
 576         state.raw_pop();
 577         break;
 578       case Bytecodes::_pop2:
 579         state.raw_pop();
 580         state.raw_pop();
 581         break;
 582       case Bytecodes::_dup:
 583         { ArgumentMap w1 = state.raw_pop();
 584           state.raw_push(w1);
 585           state.raw_push(w1);
 586         }
 587         break;
 588       case Bytecodes::_dup_x1:
 589         { ArgumentMap w1 = state.raw_pop();
 590           ArgumentMap w2 = state.raw_pop();
 591           state.raw_push(w1);
 592           state.raw_push(w2);


src/share/vm/ci/bcEscapeAnalyzer.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File