< prev index next >

src/hotspot/share/gc/shared/c2/barrierSetC2.hpp

Print this page

        

*** 118,128 **** DecoratorSet decorators() const { return _decorators; } Node* base() const { return _base; } C2AccessValuePtr& addr() const { return _addr; } BasicType type() const { return _type; } ! bool is_oop() const { return _type == T_OBJECT || _type == T_ARRAY; } bool is_raw() const { return (_decorators & AS_RAW) != 0; } Node* raw_access() const { return _raw_access; } void set_raw_access(Node* raw_access) { _raw_access = raw_access; } virtual void set_memory() {} // no-op for normal accesses, but not for atomic accesses. --- 118,128 ---- DecoratorSet decorators() const { return _decorators; } Node* base() const { return _base; } C2AccessValuePtr& addr() const { return _addr; } BasicType type() const { return _type; } ! bool is_oop() const { return _type == T_OBJECT || _type == T_VALUETYPE || _type == T_ARRAY; } bool is_raw() const { return (_decorators & AS_RAW) != 0; } Node* raw_access() const { return _raw_access; } void set_raw_access(Node* raw_access) { _raw_access = raw_access; } virtual void set_memory() {} // no-op for normal accesses, but not for atomic accesses.
*** 137,158 **** // C2Access for parse time calls to the BarrierSetC2 backend. class C2ParseAccess: public C2Access { protected: GraphKit* _kit; void* barrier_set_state() const; public: C2ParseAccess(GraphKit* kit, DecoratorSet decorators, ! BasicType type, Node* base, C2AccessValuePtr& addr) : C2Access(decorators, type, base, addr), ! _kit(kit) { fixup_decorators(); } GraphKit* kit() const { return _kit; } template <typename T> T barrier_set_state_as() const { return reinterpret_cast<T>(barrier_set_state()); } --- 137,162 ---- // C2Access for parse time calls to the BarrierSetC2 backend. class C2ParseAccess: public C2Access { protected: GraphKit* _kit; + Node* _ctl; void* barrier_set_state() const; public: C2ParseAccess(GraphKit* kit, DecoratorSet decorators, ! BasicType type, Node* base, C2AccessValuePtr& addr, ! Node* ctl = NULL) : C2Access(decorators, type, base, addr), ! _kit(kit), ! _ctl(ctl) { fixup_decorators(); } GraphKit* kit() const { return _kit; } + Node* control() const; template <typename T> T barrier_set_state_as() const { return reinterpret_cast<T>(barrier_set_state()); }
*** 239,249 **** virtual Node* atomic_cmpxchg_bool_at(C2AtomicParseAccess& access, Node* expected_val, Node* new_val, const Type* val_type) const; virtual Node* atomic_xchg_at(C2AtomicParseAccess& access, Node* new_val, const Type* value_type) const; virtual Node* atomic_add_at(C2AtomicParseAccess& access, Node* new_val, const Type* value_type) const; ! virtual void clone(GraphKit* kit, Node* src, Node* dst, Node* size, bool is_array) const; virtual Node* resolve(GraphKit* kit, Node* n, DecoratorSet decorators) const { return n; } virtual Node* obj_allocate(PhaseMacroExpand* macro, Node* ctrl, Node* mem, Node* toobig_false, Node* size_in_bytes, Node*& i_o, Node*& needgc_ctrl, --- 243,253 ---- virtual Node* atomic_cmpxchg_bool_at(C2AtomicParseAccess& access, Node* expected_val, Node* new_val, const Type* val_type) const; virtual Node* atomic_xchg_at(C2AtomicParseAccess& access, Node* new_val, const Type* value_type) const; virtual Node* atomic_add_at(C2AtomicParseAccess& access, Node* new_val, const Type* value_type) const; ! virtual void clone(GraphKit* kit, Node* src_base, Node* dst_base, Node* countx, bool is_array) const; virtual Node* resolve(GraphKit* kit, Node* n, DecoratorSet decorators) const { return n; } virtual Node* obj_allocate(PhaseMacroExpand* macro, Node* ctrl, Node* mem, Node* toobig_false, Node* size_in_bytes, Node*& i_o, Node*& needgc_ctrl,
< prev index next >