changeset 6446:b96466d40a92

8154739, PR3100: AArch64: TemplateTable::fast_xaccess loads in wrong mode Reviewed-by: roland
author aph
date Wed, 20 Apr 2016 11:14:10 +0000
parents da12b61bf5a2
children bb1818a74170
files src/cpu/aarch64/vm/templateTable_aarch64.cpp
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/aarch64/vm/templateTable_aarch64.cpp	Tue Apr 19 19:52:39 2016 -0700
+++ b/src/cpu/aarch64/vm/templateTable_aarch64.cpp	Wed Apr 20 11:14:10 2016 +0000
@@ -3087,7 +3087,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)));
@@ -3107,7 +3107,7 @@
     __ ldrw(r3, Address(r2, in_bytes(constantPoolCacheOopDesc::base_offset() +
 				     ConstantPoolCacheEntry::flags_offset())));
     __ tbz(r3, ConstantPoolCacheEntry::is_volatile_shift, notVolatile);
-    __ membar(MacroAssembler::LoadLoad);
+    __ membar(MacroAssembler::LoadLoad | MacroAssembler::LoadStore);
     __ bind(notVolatile);
   }