OpenJDK / jdk / jdk12
changeset 50517:618526574f8b
8204628: [AArch64] Assertion failure in BarrierSetAssembler::load_at
Reviewed-by: aph, drwhite, eosterlund, adinn
author | smonteith |
---|---|
date | Sun, 10 Jun 2018 20:53:10 +0100 |
parents | 77f9fece2f19 |
children | e775444c555e 17bde7f98889 |
files | src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp |
diffstat | 1 files changed, 6 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp Wed May 30 14:46:17 2018 +0200 +++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp Sun Jun 10 20:53:10 2018 +0100 @@ -2113,7 +2113,6 @@ #endif void MacroAssembler::resolve_jobject(Register value, Register thread, Register tmp) { - BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler(); Label done, not_weak; cbz(value, done); // Use NULL as-is. @@ -2121,15 +2120,15 @@ tbz(r0, 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), tmp, thread); + access_load_at(T_OBJECT, IN_ROOT | ON_PHANTOM_OOP_REF, value, + Address(value, -JNIHandles::weak_tag_value), tmp, thread); verify_oop(value); b(done); bind(not_weak); // Resolve (untagged) jobject. - bs->load_at(this, IN_CONCURRENT_ROOT, T_OBJECT, - value, Address(value, 0), tmp, thread); + access_load_at(T_OBJECT, IN_CONCURRENT_ROOT, value, Address(value, 0), tmp, + thread); verify_oop(value); bind(done); } @@ -3664,9 +3663,8 @@ // ((OopHandle)result).resolve(); void MacroAssembler::resolve_oop_handle(Register result, Register tmp) { // OopHandle::resolve is an indirection. - BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler(); - bs->load_at(this, IN_CONCURRENT_ROOT, T_OBJECT, - result, Address(result, 0), tmp, rthread); + access_load_at(T_OBJECT, IN_CONCURRENT_ROOT, + result, Address(result, 0), tmp, noreg); } void MacroAssembler::load_mirror(Register dst, Register method, Register tmp) {