< prev index next > src/hotspot/cpu/riscv/gc/shenandoah/shenandoahBarrierSetAssembler_riscv.cpp
Print this page
void ShenandoahBarrierSetAssembler::arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, bool is_oop,
Register src, Register dst, Register count, RegSet saved_regs) {
if (is_oop) {
bool dest_uninitialized = (decorators & IS_DEST_UNINITIALIZED) != 0;
- if ((ShenandoahSATBBarrier && !dest_uninitialized) || ShenandoahIUBarrier || ShenandoahLoadRefBarrier) {
+ if ((ShenandoahSATBBarrier && !dest_uninitialized) || ShenandoahLoadRefBarrier) {
Label done;
// Avoid calling runtime if count == 0
__ beqz(count, done);
__ bind(heap_stable);
__ leave();
}
- void ShenandoahBarrierSetAssembler::iu_barrier(MacroAssembler* masm, Register dst, Register tmp) {
- if (ShenandoahIUBarrier) {
- __ push_call_clobbered_registers();
-
- satb_write_barrier_pre(masm, noreg, dst, xthread, tmp, t0, true, false);
-
- __ pop_call_clobbered_registers();
- }
- }
-
//
// Arguments:
//
// Inputs:
// src: oop location to load from, might be clobbered
false /* expand_call */);
if (val == noreg) {
BarrierSetAssembler::store_at(masm, decorators, type, Address(tmp3, 0), noreg, noreg, noreg, noreg);
} else {
- iu_barrier(masm, val, tmp1);
- // G1 barrier needs uncompressed oop for region cross check.
+ // Barrier needs uncompressed oop for region cross check.
Register new_val = val;
if (UseCompressedOops) {
new_val = t1;
__ mv(new_val, val);
}
< prev index next >