< 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 >