< prev index next >

src/hotspot/share/ci/bcEscapeAnalyzer.cpp

Print this page

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