15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_GC_SHARED_BARRIERSETCONFIG_HPP
26 #define SHARE_VM_GC_SHARED_BARRIERSETCONFIG_HPP
27
28 #include "utilities/macros.hpp"
29
30 // Do something for each concrete barrier set part of the build.
31 #define FOR_EACH_CONCRETE_BARRIER_SET_DO(f) \
32 f(CardTableBarrierSet) \
33 EPSILONGC_ONLY(f(EpsilonBarrierSet)) \
34 G1GC_ONLY(f(G1BarrierSet)) \
35 ZGC_ONLY(f(ZBarrierSet))
36
37 #define FOR_EACH_ABSTRACT_BARRIER_SET_DO(f) \
38 f(ModRef)
39
40 // Do something for each known barrier set.
41 #define FOR_EACH_BARRIER_SET_DO(f) \
42 FOR_EACH_ABSTRACT_BARRIER_SET_DO(f) \
43 FOR_EACH_CONCRETE_BARRIER_SET_DO(f)
44
45 // To enable runtime-resolution of GC barriers on primitives, please
46 // define SUPPORT_BARRIER_ON_PRIMITIVES.
47 #ifdef SUPPORT_BARRIER_ON_PRIMITIVES
48 #define ACCESS_PRIMITIVE_SUPPORT INTERNAL_BT_BARRIER_ON_PRIMITIVES
49 #else
50 #define ACCESS_PRIMITIVE_SUPPORT INTERNAL_EMPTY
51 #endif
52
53 #ifdef SUPPORT_NOT_TO_SPACE_INVARIANT
54 #define ACCESS_TO_SPACE_INVARIANT_SUPPORT INTERNAL_EMPTY
|
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_GC_SHARED_BARRIERSETCONFIG_HPP
26 #define SHARE_VM_GC_SHARED_BARRIERSETCONFIG_HPP
27
28 #include "utilities/macros.hpp"
29
30 // Do something for each concrete barrier set part of the build.
31 #define FOR_EACH_CONCRETE_BARRIER_SET_DO(f) \
32 f(CardTableBarrierSet) \
33 EPSILONGC_ONLY(f(EpsilonBarrierSet)) \
34 G1GC_ONLY(f(G1BarrierSet)) \
35 SHENANDOAHGC_ONLY(f(ShenandoahBarrierSet)) \
36 ZGC_ONLY(f(ZBarrierSet))
37
38 #define FOR_EACH_ABSTRACT_BARRIER_SET_DO(f) \
39 f(ModRef)
40
41 // Do something for each known barrier set.
42 #define FOR_EACH_BARRIER_SET_DO(f) \
43 FOR_EACH_ABSTRACT_BARRIER_SET_DO(f) \
44 FOR_EACH_CONCRETE_BARRIER_SET_DO(f)
45
46 // To enable runtime-resolution of GC barriers on primitives, please
47 // define SUPPORT_BARRIER_ON_PRIMITIVES.
48 #ifdef SUPPORT_BARRIER_ON_PRIMITIVES
49 #define ACCESS_PRIMITIVE_SUPPORT INTERNAL_BT_BARRIER_ON_PRIMITIVES
50 #else
51 #define ACCESS_PRIMITIVE_SUPPORT INTERNAL_EMPTY
52 #endif
53
54 #ifdef SUPPORT_NOT_TO_SPACE_INVARIANT
55 #define ACCESS_TO_SPACE_INVARIANT_SUPPORT INTERNAL_EMPTY
|