< prev index next > src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp
Print this page
_fastpath_branch_offset(offset),
_test_and_branch_reachable(),
_skip_trampoline(),
_test_and_branch_reachable_entry(),
_save_slots_idx(0) {
assert(!_narrow || is_heap_access(node), "Only heap accesses can be narrow");
post_init(offset);
}
static bool is_heap_access(const MachNode* node) {
return (node->barrier_data() & ShenandoahBitNative) == 0;
}
static bool needs_slow_barrier(const MachNode* node) {
! return needs_load_ref_barrier(node) || needs_keep_alive_barrier(node);
}
static bool needs_load_ref_barrier(const MachNode* node) {
return (node->barrier_data() & (ShenandoahBitStrong | ShenandoahBitWeak | ShenandoahBitPhantom)) != 0;
}
static bool needs_load_ref_barrier_weak(const MachNode* node) {
_fastpath_branch_offset(offset),
_test_and_branch_reachable(),
_skip_trampoline(),
_test_and_branch_reachable_entry(),
_save_slots_idx(0) {
+ assert(!ShenandoahSkipBarriers, "Do not touch stubs when disabled");
assert(!_narrow || is_heap_access(node), "Only heap accesses can be narrow");
post_init(offset);
}
static bool is_heap_access(const MachNode* node) {
return (node->barrier_data() & ShenandoahBitNative) == 0;
}
static bool needs_slow_barrier(const MachNode* node) {
! return !ShenandoahSkipBarriers && (needs_load_ref_barrier(node) || needs_keep_alive_barrier(node));
}
static bool needs_load_ref_barrier(const MachNode* node) {
return (node->barrier_data() & (ShenandoahBitStrong | ShenandoahBitWeak | ShenandoahBitPhantom)) != 0;
}
static bool needs_load_ref_barrier_weak(const MachNode* node) {
}
static bool needs_keep_alive_barrier(const MachNode* node) {
return (node->barrier_data() & ShenandoahBitKeepAlive) != 0;
}
static bool needs_card_barrier(const MachNode* node) {
! return (node->barrier_data() & ShenandoahBitCardMark) != 0;
}
static bool maybe_null(const MachNode* node) {
return (node->barrier_data() & ShenandoahBitNotNull) == 0;
}
}
static bool needs_keep_alive_barrier(const MachNode* node) {
return (node->barrier_data() & ShenandoahBitKeepAlive) != 0;
}
static bool needs_card_barrier(const MachNode* node) {
! return !ShenandoahSkipBarriers && ((node->barrier_data() & ShenandoahBitCardMark) != 0);
}
static bool maybe_null(const MachNode* node) {
return (node->barrier_data() & ShenandoahBitNotNull) == 0;
}
< prev index next >