changeset 8575:d74991e8f574

8143285: aarch64: Missing load acquire when checking if ConstantPoolCacheEntry is resolved Reviewed-by: roland, aph
author hshi
date Tue, 24 Nov 2015 09:02:26 +0000
parents 3b4d83989d8e
children b2df86902f5e
files src/cpu/aarch64/vm/interp_masm_aarch64.cpp
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/aarch64/vm/interp_masm_aarch64.cpp	Thu Nov 19 15:15:20 2015 +0000
+++ b/src/cpu/aarch64/vm/interp_masm_aarch64.cpp	Tue Nov 24 09:02:26 2015 +0000
@@ -185,10 +185,11 @@
   get_cache_and_index_at_bcp(cache, index, bcp_offset, index_size);
   // We use a 32-bit load here since the layout of 64-bit words on
   // little-endian machines allow us that.
-  // n.b. unlike x86 cache alreeady includes the index offset
-  ldrw(bytecode, Address(cache,
+  // n.b. unlike x86 cache already includes the index offset
+  lea(bytecode, Address(cache,
 			 ConstantPoolCache::base_offset()
 			 + ConstantPoolCacheEntry::indices_offset()));
+  ldarw(bytecode, bytecode);
   const int shift_count = (1 + byte_no) * BitsPerByte;
   ubfx(bytecode, bytecode, shift_count, BitsPerByte);
 }