--- old/src/hotspot/share/c1/c1_CodeStubs.hpp 2019-02-07 03:24:10.392319707 -0800 +++ new/src/hotspot/share/c1/c1_CodeStubs.hpp 2019-02-07 03:24:10.192312469 -0800 @@ -231,6 +231,7 @@ #endif // PRODUCT }; + class LoadFlattenedArrayStub: public CodeStub { private: LIR_Opr _array; @@ -254,6 +255,28 @@ }; +class StoreFlattenedArrayStub: public CodeStub { + private: + LIR_Opr _array; + LIR_Opr _index; + LIR_Opr _value; + CodeEmitInfo* _info; + + public: + StoreFlattenedArrayStub(LIR_Opr array, LIR_Opr index, LIR_Opr value, CodeEmitInfo* info); + virtual void emit_code(LIR_Assembler* e); + virtual CodeEmitInfo* info() const { return _info; } + virtual void visit(LIR_OpVisitState* visitor) { + visitor->do_slow_case(_info); + visitor->do_input(_array); + visitor->do_input(_index); + visitor->do_input(_value); + } +#ifndef PRODUCT + virtual void print_name(outputStream* out) const { out->print("StoreFlattenedArrayStub"); } +#endif // PRODUCT +}; + class NewInstanceStub: public CodeStub { private: