< prev index next >

src/hotspot/share/c1/c1_LIR.hpp

Print this page

*** 871,881 **** class LIR_OpRTCall; class LIR_OpArrayCopy; class LIR_OpUpdateCRC32; class LIR_OpLock; class LIR_OpTypeCheck; ! class LIR_OpFlattenedStoreCheck; class LIR_OpCompareAndSwap; class LIR_OpProfileCall; class LIR_OpProfileType; #ifdef ASSERT class LIR_OpAssert; --- 871,882 ---- class LIR_OpRTCall; class LIR_OpArrayCopy; class LIR_OpUpdateCRC32; class LIR_OpLock; class LIR_OpTypeCheck; ! class LIR_OpFlattenedArrayCheck; ! class LIR_OpNullFreeArrayCheck; class LIR_OpCompareAndSwap; class LIR_OpProfileCall; class LIR_OpProfileType; #ifdef ASSERT class LIR_OpAssert;
*** 986,998 **** , begin_opTypeCheck , lir_instanceof , lir_checkcast , lir_store_check , end_opTypeCheck ! , begin_opFlattenedStoreCheck ! , lir_flattened_store_check ! , end_opFlattenedStoreCheck , begin_opCompareAndSwap , lir_cas_long , lir_cas_obj , lir_cas_int , end_opCompareAndSwap --- 987,1002 ---- , begin_opTypeCheck , lir_instanceof , lir_checkcast , lir_store_check , end_opTypeCheck ! , begin_opFlattenedArrayCheck ! , lir_flattened_array_check ! , end_opFlattenedArrayCheck ! , begin_opNullFreeArrayCheck ! , lir_null_free_array_check ! , end_opNullFreeArrayCheck , begin_opCompareAndSwap , lir_cas_long , lir_cas_obj , lir_cas_int , end_opCompareAndSwap
*** 1139,1149 **** virtual LIR_Op2* as_Op2() { return NULL; } virtual LIR_Op3* as_Op3() { return NULL; } virtual LIR_OpArrayCopy* as_OpArrayCopy() { return NULL; } virtual LIR_OpUpdateCRC32* as_OpUpdateCRC32() { return NULL; } virtual LIR_OpTypeCheck* as_OpTypeCheck() { return NULL; } ! virtual LIR_OpFlattenedStoreCheck* as_OpFlattenedStoreCheck() { return NULL; } virtual LIR_OpCompareAndSwap* as_OpCompareAndSwap() { return NULL; } virtual LIR_OpProfileCall* as_OpProfileCall() { return NULL; } virtual LIR_OpProfileType* as_OpProfileType() { return NULL; } #ifdef ASSERT virtual LIR_OpAssert* as_OpAssert() { return NULL; } --- 1143,1154 ---- virtual LIR_Op2* as_Op2() { return NULL; } virtual LIR_Op3* as_Op3() { return NULL; } virtual LIR_OpArrayCopy* as_OpArrayCopy() { return NULL; } virtual LIR_OpUpdateCRC32* as_OpUpdateCRC32() { return NULL; } virtual LIR_OpTypeCheck* as_OpTypeCheck() { return NULL; } ! virtual LIR_OpFlattenedArrayCheck* as_OpFlattenedArrayCheck() { return NULL; } ! virtual LIR_OpNullFreeArrayCheck* as_OpNullFreeArrayCheck() { return NULL; } virtual LIR_OpCompareAndSwap* as_OpCompareAndSwap() { return NULL; } virtual LIR_OpProfileCall* as_OpProfileCall() { return NULL; } virtual LIR_OpProfileType* as_OpProfileType() { return NULL; } #ifdef ASSERT virtual LIR_OpAssert* as_OpAssert() { return NULL; }
*** 1601,1635 **** virtual void emit_code(LIR_Assembler* masm); virtual LIR_OpTypeCheck* as_OpTypeCheck() { return this; } void print_instr(outputStream* out) const PRODUCT_RETURN; }; ! // LIR_OpFlattenedStoreCheck ! class LIR_OpFlattenedStoreCheck: public LIR_Op { friend class LIR_OpVisitState; private: ! LIR_Opr _object; ! ciKlass* _element_klass; ! LIR_Opr _tmp1; ! LIR_Opr _tmp2; ! CodeEmitInfo* _info_for_exception; CodeStub* _stub; - public: ! LIR_OpFlattenedStoreCheck(LIR_Opr object, ciKlass* element_klass, LIR_Opr tmp1, LIR_Opr tmp2, ! CodeEmitInfo* info_for_exception); ! ! LIR_Opr object() const { return _object; } ! LIR_Opr tmp1() const { return _tmp1; } ! LIR_Opr tmp2() const { return _tmp2; } ! ciKlass* element_klass() const { return _element_klass; } ! CodeEmitInfo* info_for_exception() const { return _info_for_exception; } CodeStub* stub() const { return _stub; } virtual void emit_code(LIR_Assembler* masm); ! virtual LIR_OpFlattenedStoreCheck* as_OpFlattenedStoreCheck() { return this; } virtual void print_instr(outputStream* out) const PRODUCT_RETURN; }; // LIR_Op2 class LIR_Op2: public LIR_Op { --- 1606,1650 ---- virtual void emit_code(LIR_Assembler* masm); virtual LIR_OpTypeCheck* as_OpTypeCheck() { return this; } void print_instr(outputStream* out) const PRODUCT_RETURN; }; ! // LIR_OpFlattenedArrayCheck ! class LIR_OpFlattenedArrayCheck: public LIR_Op { friend class LIR_OpVisitState; private: ! LIR_Opr _array; ! LIR_Opr _value; ! LIR_Opr _tmp; CodeStub* _stub; public: ! LIR_OpFlattenedArrayCheck(LIR_Opr array, LIR_Opr value, LIR_Opr tmp, CodeStub* stub); ! LIR_Opr array() const { return _array; } ! LIR_Opr value() const { return _value; } ! LIR_Opr tmp() const { return _tmp; } CodeStub* stub() const { return _stub; } virtual void emit_code(LIR_Assembler* masm); ! virtual LIR_OpFlattenedArrayCheck* as_OpFlattenedArrayCheck() { return this; } ! virtual void print_instr(outputStream* out) const PRODUCT_RETURN; ! }; ! ! // LIR_OpNullFreeArrayCheck ! class LIR_OpNullFreeArrayCheck: public LIR_Op { ! friend class LIR_OpVisitState; ! ! private: ! LIR_Opr _array; ! LIR_Opr _tmp; ! public: ! LIR_OpNullFreeArrayCheck(LIR_Opr array, LIR_Opr tmp); ! LIR_Opr array() const { return _array; } ! LIR_Opr tmp() const { return _tmp; } ! ! virtual void emit_code(LIR_Assembler* masm); ! virtual LIR_OpNullFreeArrayCheck* as_OpNullFreeArrayCheck() { return this; } virtual void print_instr(outputStream* out) const PRODUCT_RETURN; }; // LIR_Op2 class LIR_Op2: public LIR_Op {
*** 2286,2296 **** void fpop_raw() { append(new LIR_Op0(lir_fpop_raw)); } void instanceof(LIR_Opr result, LIR_Opr object, ciKlass* klass, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, bool fast_check, CodeEmitInfo* info_for_patch, ciMethod* profiled_method, int profiled_bci); void store_check(LIR_Opr object, LIR_Opr array, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, CodeEmitInfo* info_for_exception, ciMethod* profiled_method, int profiled_bci); ! void flattened_store_check(LIR_Opr object, ciKlass* element_klass, LIR_Opr tmp1, LIR_Opr tmp2, CodeEmitInfo* info_for_exception); void checkcast (LIR_Opr result, LIR_Opr object, ciKlass* klass, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, bool fast_check, CodeEmitInfo* info_for_exception, CodeEmitInfo* info_for_patch, CodeStub* stub, ciMethod* profiled_method, int profiled_bci, bool is_never_null); --- 2301,2312 ---- void fpop_raw() { append(new LIR_Op0(lir_fpop_raw)); } void instanceof(LIR_Opr result, LIR_Opr object, ciKlass* klass, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, bool fast_check, CodeEmitInfo* info_for_patch, ciMethod* profiled_method, int profiled_bci); void store_check(LIR_Opr object, LIR_Opr array, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, CodeEmitInfo* info_for_exception, ciMethod* profiled_method, int profiled_bci); ! void check_flattened_array(LIR_Opr array, LIR_Opr value, LIR_Opr tmp, CodeStub* stub); ! void check_null_free_array(LIR_Opr array, LIR_Opr tmp); void checkcast (LIR_Opr result, LIR_Opr object, ciKlass* klass, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, bool fast_check, CodeEmitInfo* info_for_exception, CodeEmitInfo* info_for_patch, CodeStub* stub, ciMethod* profiled_method, int profiled_bci, bool is_never_null);
< prev index next >