annotate src/hotspot/share/gc/shared/c2/modRefBarrierSetC2.hpp @ 52424:e3d79743f57d

8212243: More gc interface tweaks for arraycopy Reviewed-by: kvn, eosterlund
author roland
date Tue, 06 Nov 2018 10:01:27 +0100
parents ffa644980dff
children
rev   line source
eosterlund@50180 1 /*
eosterlund@50180 2 * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
eosterlund@50180 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
eosterlund@50180 4 *
eosterlund@50180 5 * This code is free software; you can redistribute it and/or modify it
eosterlund@50180 6 * under the terms of the GNU General Public License version 2 only, as
eosterlund@50180 7 * published by the Free Software Foundation.
eosterlund@50180 8 *
eosterlund@50180 9 * This code is distributed in the hope that it will be useful, but WITHOUT
eosterlund@50180 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
eosterlund@50180 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
eosterlund@50180 12 * version 2 for more details (a copy is included in the LICENSE file that
eosterlund@50180 13 * accompanied this code).
eosterlund@50180 14 *
eosterlund@50180 15 * You should have received a copy of the GNU General Public License version
eosterlund@50180 16 * 2 along with this work; if not, write to the Free Software Foundation,
eosterlund@50180 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
eosterlund@50180 18 *
eosterlund@50180 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
eosterlund@50180 20 * or visit www.oracle.com if you need additional information or have any
eosterlund@50180 21 * questions.
eosterlund@50180 22 *
eosterlund@50180 23 */
eosterlund@50180 24
eosterlund@50180 25 #ifndef SHARE_GC_SHARED_C2_MODREFBARRIERSETC2_HPP
eosterlund@50180 26 #define SHARE_GC_SHARED_C2_MODREFBARRIERSETC2_HPP
eosterlund@50180 27
eosterlund@50180 28 #include "gc/shared/c2/barrierSetC2.hpp"
eosterlund@50180 29
eosterlund@50180 30 class TypeOopPtr;
eosterlund@50180 31
eosterlund@50180 32 class ModRefBarrierSetC2: public BarrierSetC2 {
eosterlund@50180 33 protected:
eosterlund@50180 34 virtual void pre_barrier(GraphKit* kit,
eosterlund@50180 35 bool do_load,
eosterlund@50180 36 Node* ctl,
eosterlund@50180 37 Node* obj,
eosterlund@50180 38 Node* adr,
eosterlund@50180 39 uint adr_idx,
eosterlund@50180 40 Node* val,
eosterlund@50180 41 const TypeOopPtr* val_type,
eosterlund@50180 42 Node* pre_val,
eosterlund@50180 43 BasicType bt) const {}
eosterlund@50180 44
eosterlund@50180 45 virtual void post_barrier(GraphKit* kit,
eosterlund@50180 46 Node* ctl,
eosterlund@50180 47 Node* store,
eosterlund@50180 48 Node* obj,
eosterlund@50180 49 Node* adr,
eosterlund@50180 50 uint adr_idx,
eosterlund@50180 51 Node* val,
eosterlund@50180 52 BasicType bt,
eosterlund@50180 53 bool use_precise) const {}
eosterlund@50180 54
eosterlund@50180 55 virtual Node* store_at_resolved(C2Access& access, C2AccessValue& val) const;
eosterlund@50180 56
roland@52424 57 virtual Node* atomic_cmpxchg_val_at_resolved(C2AtomicParseAccess& access, Node* expected_val,
eosterlund@50180 58 Node* new_val, const Type* value_type) const;
roland@52424 59 virtual Node* atomic_cmpxchg_bool_at_resolved(C2AtomicParseAccess& access, Node* expected_val,
eosterlund@50180 60 Node* new_val, const Type* value_type) const;
roland@52424 61 virtual Node* atomic_xchg_at_resolved(C2AtomicParseAccess& access, Node* new_val, const Type* value_type) const;
eosterlund@50180 62 };
eosterlund@50180 63
eosterlund@50180 64 #endif // SHARE_GC_SHARED_C2_MODREFBARRIERSETC2_HPP