Path: blob/master/src/hotspot/share/gc/shared/c2/modRefBarrierSetC2.hpp
40974 views
/*1* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*22*/2324#ifndef SHARE_GC_SHARED_C2_MODREFBARRIERSETC2_HPP25#define SHARE_GC_SHARED_C2_MODREFBARRIERSETC2_HPP2627#include "gc/shared/c2/barrierSetC2.hpp"2829class TypeOopPtr;3031class ModRefBarrierSetC2: public BarrierSetC2 {32protected:33virtual void pre_barrier(GraphKit* kit,34bool do_load,35Node* ctl,36Node* obj,37Node* adr,38uint adr_idx,39Node* val,40const TypeOopPtr* val_type,41Node* pre_val,42BasicType bt) const {}4344virtual void post_barrier(GraphKit* kit,45Node* ctl,46Node* store,47Node* obj,48Node* adr,49uint adr_idx,50Node* val,51BasicType bt,52bool use_precise) const {}5354virtual Node* store_at_resolved(C2Access& access, C2AccessValue& val) const;5556virtual Node* atomic_cmpxchg_val_at_resolved(C2AtomicParseAccess& access, Node* expected_val,57Node* new_val, const Type* value_type) const;58virtual Node* atomic_cmpxchg_bool_at_resolved(C2AtomicParseAccess& access, Node* expected_val,59Node* new_val, const Type* value_type) const;60virtual Node* atomic_xchg_at_resolved(C2AtomicParseAccess& access, Node* new_val, const Type* value_type) const;61};6263#endif // SHARE_GC_SHARED_C2_MODREFBARRIERSETC2_HPP646566