1563 if (stopped()) return; // guaranteed null or range check |
1563 if (stopped()) return; // guaranteed null or range check |
1564 array_store_check(); |
1564 array_store_check(); |
1565 c = pop(); // Oop to store |
1565 c = pop(); // Oop to store |
1566 b = pop(); // index (already used) |
1566 b = pop(); // index (already used) |
1567 a = pop(); // the array itself |
1567 a = pop(); // the array itself |
1568 const Type* elemtype = _gvn.type(a)->is_aryptr()->elem(); |
1568 const TypeOopPtr* elemtype = _gvn.type(a)->is_aryptr()->elem()->is_oopptr(); |
1569 const TypeAryPtr* adr_type = TypeAryPtr::OOPS; |
1569 const TypeAryPtr* adr_type = TypeAryPtr::OOPS; |
1570 Node* store = store_oop_to_array(control(), a, d, adr_type, c, elemtype, T_OBJECT); |
1570 Node* store = store_oop_to_array(control(), a, d, adr_type, c, elemtype, T_OBJECT); |
1571 break; |
1571 break; |
1572 } |
1572 } |
1573 case Bytecodes::_lastore: { |
1573 case Bytecodes::_lastore: { |