< prev index next >
src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp
Print this page
@@ -50,11 +50,11 @@
bool checkcast = (decorators & ARRAYCOPY_CHECKCAST) != 0;
bool disjoint = (decorators & ARRAYCOPY_DISJOINT) != 0;
bool obj_int = type == T_OBJECT LP64_ONLY(&& UseCompressedOops);
bool dest_uninitialized = (decorators & IS_DEST_UNINITIALIZED) != 0;
- if (type == T_OBJECT || type == T_ARRAY) {
+ if (is_reference_type(type)) {
#ifdef _LP64
if (!checkcast) {
if (!obj_int) {
// Save count for barrier
__ movptr(r11, count);
@@ -123,11 +123,11 @@
bool checkcast = (decorators & ARRAYCOPY_CHECKCAST) != 0;
bool disjoint = (decorators & ARRAYCOPY_DISJOINT) != 0;
bool obj_int = type == T_OBJECT LP64_ONLY(&& UseCompressedOops);
Register tmp = rax;
- if (type == T_OBJECT || type == T_ARRAY) {
+ if (is_reference_type(type)) {
#ifdef _LP64
if (!checkcast) {
if (!obj_int) {
// Save count for barrier
count = r11;
@@ -532,11 +532,11 @@
}
}
void ShenandoahBarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Register dst, Address src, Register tmp1, Register tmp_thread) {
- bool on_oop = type == T_OBJECT || type == T_ARRAY;
+ bool on_oop = is_reference_type(type);
bool on_weak = (decorators & ON_WEAK_OOP_REF) != 0;
bool on_phantom = (decorators & ON_PHANTOM_OOP_REF) != 0;
bool not_in_heap = (decorators & IN_NATIVE) != 0;
bool on_reference = on_weak || on_phantom;
bool keep_alive = (decorators & AS_NO_KEEPALIVE) == 0;
@@ -572,11 +572,11 @@
}
void ShenandoahBarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Address dst, Register val, Register tmp1, Register tmp2) {
- bool on_oop = type == T_OBJECT || type == T_ARRAY;
+ bool on_oop = is_reference_type(type);
bool in_heap = (decorators & IN_HEAP) != 0;
bool as_normal = (decorators & AS_NORMAL) != 0;
if (on_oop && in_heap) {
bool needs_pre_barrier = as_normal;
< prev index next >