--- old/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp 2019-09-11 09:48:06.394129525 -0400 +++ new/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp 2019-09-11 09:48:06.092554223 -0400 @@ -52,7 +52,7 @@ 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) { @@ -125,7 +125,7 @@ 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) { @@ -534,7 +534,7 @@ 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; @@ -574,7 +574,7 @@ 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) {