8154739: AArch64: TemplateTable::fast_xaccess loads in wrong mode
Reviewed-by: roland
--- a/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp Wed Apr 20 11:11:56 2016 +0000
+++ b/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp Wed Apr 20 11:14:10 2016 +0000
@@ -2982,7 +2982,7 @@
__ null_check(r0);
switch (state) {
case itos:
- __ ldr(r0, Address(r0, r1, Address::lsl(0)));
+ __ ldrw(r0, Address(r0, r1, Address::lsl(0)));
break;
case atos:
__ load_heap_oop(r0, Address(r0, r1, Address::lsl(0)));
@@ -3000,7 +3000,7 @@
__ ldrw(r3, Address(r2, in_bytes(ConstantPoolCache::base_offset() +
ConstantPoolCacheEntry::flags_offset())));
__ tbz(r3, ConstantPoolCacheEntry::is_volatile_shift, notVolatile);
- __ membar(MacroAssembler::LoadLoad);
+ __ membar(MacroAssembler::LoadLoad | MacroAssembler::LoadStore);
__ bind(notVolatile);
}