8154739: AArch64: TemplateTable::fast_xaccess loads in wrong mode

Reviewed-by: roland
This commit is contained in:
Andrew Haley 2016-04-20 11:14:10 +00:00
parent 1832f0f0f1
commit 2b0d77befa

View File

@ -2982,7 +2982,7 @@ void TemplateTable::fast_xaccess(TosState state)
__ 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 @@ void TemplateTable::fast_xaccess(TosState state)
__ 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);
}