< prev index next >

src/hotspot/cpu/riscv/gc/shenandoah/shenandoahBarrierSetAssembler_riscv.cpp

Print this page
*** 62,11 ***
        __ lbu(t0, gc_state);
        if (ShenandoahSATBBarrier && dest_uninitialized) {
          __ andi(t0, t0, ShenandoahHeap::HAS_FORWARDED);
          __ beqz(t0, done);
        } else {
!         __ andi(t0, t0, ShenandoahHeap::HAS_FORWARDED | ShenandoahHeap::MARKING);
          __ beqz(t0, done);
        }
  
        __ push_reg(saved_regs, sp);
        if (UseCompressedOops) {
--- 62,11 ---
        __ lbu(t0, gc_state);
        if (ShenandoahSATBBarrier && dest_uninitialized) {
          __ andi(t0, t0, ShenandoahHeap::HAS_FORWARDED);
          __ beqz(t0, done);
        } else {
!         __ andi(t0, t0, ShenandoahHeap::HAS_FORWARDED | ShenandoahHeap::YOUNG_MARKING | ShenandoahHeap::OLD_MARKING);
          __ beqz(t0, done);
        }
  
        __ push_reg(saved_regs, sp);
        if (UseCompressedOops) {

*** 640,11 ***
    Label runtime;
  
    // Is marking still active?
    Address gc_state(thread, in_bytes(ShenandoahThreadLocalData::gc_state_offset()));
    __ lb(tmp, gc_state);
!   __ andi(tmp, tmp, ShenandoahHeap::MARKING);
    __ beqz(tmp, done);
  
    // Can we store original value in the thread's buffer?
    __ ld(tmp, queue_index);
    __ beqz(tmp, runtime);
--- 640,11 ---
    Label runtime;
  
    // Is marking still active?
    Address gc_state(thread, in_bytes(ShenandoahThreadLocalData::gc_state_offset()));
    __ lb(tmp, gc_state);
!   __ andi(tmp, tmp, ShenandoahHeap::YOUNG_MARKING | ShenandoahHeap::OLD_MARKING);
    __ beqz(tmp, done);
  
    // Can we store original value in the thread's buffer?
    __ ld(tmp, queue_index);
    __ beqz(tmp, runtime);
< prev index next >