Skip to content
Permalink
Browse files
8267818: [lworld] [AArch64] Shenandoah barrier set build warnings and…
… register conflict

Reviewed-by: fparain
  • Loading branch information
nick-arm authored and TobiHartmann committed May 31, 2021
1 parent 0871590 commit 44cb67ea3457e7359a3c055a08a4105bbd068564
@@ -367,7 +367,7 @@ void ShenandoahBarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet d
}

void ShenandoahBarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Address dst, Register val, Register tmp1, Register tmp2) {
Address dst, Register val, Register tmp1, Register tmp2, Register tmp3) {
bool on_oop = is_reference_type(type);
if (!on_oop) {
BarrierSetAssembler::store_at(masm, decorators, type, dst, val, tmp1, tmp2);
@@ -392,7 +392,7 @@ void ShenandoahBarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet
false /* expand_call */);

if (val == noreg) {
BarrierSetAssembler::store_at(masm, decorators, type, Address(r3, 0), noreg, noreg, noreg);
BarrierSetAssembler::store_at(masm, decorators, type, Address(r3, 0), noreg, noreg, noreg, noreg);
} else {
iu_barrier(masm, val, tmp1);
// G1 barrier needs uncompressed oop for region cross check.
@@ -401,7 +401,7 @@ void ShenandoahBarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet
new_val = rscratch2;
__ mov(new_val, val);
}
BarrierSetAssembler::store_at(masm, decorators, type, Address(r3, 0), val, noreg, noreg);
BarrierSetAssembler::store_at(masm, decorators, type, Address(r3, 0), val, noreg, noreg, noreg);
}

}
@@ -74,7 +74,7 @@ class ShenandoahBarrierSetAssembler: public BarrierSetAssembler {
virtual void load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Register dst, Address src, Register tmp1, Register tmp_thread);
virtual void store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
Address dst, Register val, Register tmp1, Register tmp2);
Address dst, Register val, Register tmp1, Register tmp2, Register tmp3 = noreg);
virtual void try_resolve_jobject_in_native(MacroAssembler* masm, Register jni_env,
Register obj, Register tmp, Label& slowpath);
void cmpxchg_oop(MacroAssembler* masm, Register addr, Register expected, Register new_val,
@@ -3306,7 +3306,7 @@ void TemplateTable::fast_accessfield(TosState state)
switch (bytecode()) {
case Bytecodes::_fast_qgetfield:
{
Register index = r4, klass = r5, inline_klass = r6;
Register index = r4, klass = r5, inline_klass = r6, tmp = r7;
Label is_inlined, nonnull, Done;
__ test_field_is_inlined(r3, noreg /* temp */, is_inlined);
// field is not inlined
@@ -3316,7 +3316,7 @@ void TemplateTable::fast_accessfield(TosState state)
__ ldr(klass, Address(r2, in_bytes(ConstantPoolCache::base_offset() +
ConstantPoolCacheEntry::f1_offset())));
__ get_inline_type_field_klass(klass, index, inline_klass);
__ get_default_value_oop(inline_klass, rscratch1 /* temp */, r0);
__ get_default_value_oop(inline_klass, tmp /* temp */, r0);
__ bind(nonnull);
__ verify_oop(r0);
__ b(Done);
@@ -3325,7 +3325,7 @@ void TemplateTable::fast_accessfield(TosState state)
__ andw(index, r3, ConstantPoolCacheEntry::field_index_mask);
__ ldr(klass, Address(r2, in_bytes(ConstantPoolCache::base_offset() +
ConstantPoolCacheEntry::f1_offset())));
__ read_inlined_field(klass, index, r1, inline_klass /* temp */, r0);
__ read_inlined_field(klass, index, r1, tmp /* temp */, r0);
__ verify_oop(r0);
__ bind(Done);
}

0 comments on commit 44cb67e

Please sign in to comment.