< prev index next >

src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp

Print this page

        

*** 50,60 **** 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) { #ifdef _LP64 if (!checkcast) { if (!obj_int) { // Save count for barrier __ movptr(r11, count); --- 50,60 ---- 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 (is_reference_type(type)) { #ifdef _LP64 if (!checkcast) { if (!obj_int) { // Save count for barrier __ movptr(r11, count);
*** 123,133 **** 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) { #ifdef _LP64 if (!checkcast) { if (!obj_int) { // Save count for barrier count = r11; --- 123,133 ---- 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 (is_reference_type(type)) { #ifdef _LP64 if (!checkcast) { if (!obj_int) { // Save count for barrier count = r11;
*** 532,542 **** } } 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_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; --- 532,542 ---- } } void ShenandoahBarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, Register dst, Address src, Register tmp1, Register tmp_thread) { ! 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,582 **** } 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 in_heap = (decorators & IN_HEAP) != 0; bool as_normal = (decorators & AS_NORMAL) != 0; if (on_oop && in_heap) { bool needs_pre_barrier = as_normal; --- 572,582 ---- } void ShenandoahBarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, Address dst, Register val, Register tmp1, Register tmp2) { ! 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 >