# HG changeset patch # Parent 001ef15b8894d6926237e20307203be41beaa616 diff -r 001ef15b8894 src/hotspot/cpu/arm/macroAssembler_arm.cpp --- a/src/hotspot/cpu/arm/macroAssembler_arm.cpp Tue May 01 19:16:21 2018 +0200 +++ b/src/hotspot/cpu/arm/macroAssembler_arm.cpp Wed May 02 11:17:59 2018 +0200 @@ -45,12 +45,6 @@ #include "runtime/sharedRuntime.hpp" #include "runtime/stubRoutines.hpp" #include "utilities/macros.hpp" -#if INCLUDE_ALL_GCS -#include "gc/g1/g1BarrierSet.hpp" -#include "gc/g1/g1CardTable.hpp" -#include "gc/g1/g1ThreadLocalData.hpp" -#include "gc/g1/heapRegion.hpp" -#endif // Implementation of AddressLiteral @@ -2127,8 +2121,6 @@ void MacroAssembler::resolve_jobject(Register value, Register tmp1, Register tmp2) { - BarrierSetAssembler* bs = BarrierSet::barrier_set()->barrier_set_assembler(); - assert_different_registers(value, tmp1, tmp2); Label done, not_weak; cbz(value, done); // Use NULL as-is. @@ -2136,13 +2128,13 @@ tbz(value, 0, not_weak); // Test for jweak tag. // Resolve jweak. - bs->load_at(this, IN_ROOT | ON_PHANTOM_OOP_REF, T_OBJECT, - value, Address(value, -JNIHandles::weak_tag_value), tmp1, tmp2, noreg); + access_load_at(T_OBJECT, IN_ROOT | ON_PHANTOM_OOP_REF, + Address(value, -JNIHandles::weak_tag_value), value, tmp1, tmp2, noreg); b(done); bind(not_weak); // Resolve (untagged) jobject. - bs->load_at(this, IN_ROOT | IN_CONCURRENT_ROOT, T_OBJECT, - value, Address(value, 0), tmp1, tmp2, noreg); + access_load_at(T_OBJECT, IN_ROOT | IN_CONCURRENT_ROOT, + Address(value, 0), value, tmp1, tmp2, noreg); verify_oop(value); bind(done); } diff -r 001ef15b8894 src/hotspot/cpu/arm/templateInterpreterGenerator_arm.cpp --- a/src/hotspot/cpu/arm/templateInterpreterGenerator_arm.cpp Tue May 01 19:16:21 2018 +0200 +++ b/src/hotspot/cpu/arm/templateInterpreterGenerator_arm.cpp Wed May 02 11:17:59 2018 +0200 @@ -889,7 +889,7 @@ // Load the value of the referent field. const Address field_address(Rthis, referent_offset); - __ load_heap_oop(R0, field_address, R0, Rtemp, R1_tmp); + __ load_heap_oop(R0, field_address, Rtemp, R1_tmp, R2_tmp, ON_WEAK_OOP_REF); // _areturn __ mov(SP, Rsender_sp);