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); __ null_check(r0);
switch (state) { switch (state) {
case itos: case itos:
__ ldr(r0, Address(r0, r1, Address::lsl(0))); __ ldrw(r0, Address(r0, r1, Address::lsl(0)));
break; break;
case atos: case atos:
__ load_heap_oop(r0, Address(r0, r1, Address::lsl(0))); __ 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() + __ ldrw(r3, Address(r2, in_bytes(ConstantPoolCache::base_offset() +
ConstantPoolCacheEntry::flags_offset()))); ConstantPoolCacheEntry::flags_offset())));
__ tbz(r3, ConstantPoolCacheEntry::is_volatile_shift, notVolatile); __ tbz(r3, ConstantPoolCacheEntry::is_volatile_shift, notVolatile);
__ membar(MacroAssembler::LoadLoad); __ membar(MacroAssembler::LoadLoad | MacroAssembler::LoadStore);
__ bind(notVolatile); __ bind(notVolatile);
} }