mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-15 16:44:36 +02:00
8248219: aarch64: missing memory barrier in fast_storefield and fast_accessfield
Reviewed-by: aph
This commit is contained in:
parent
1b3a127d06
commit
c7ecaa4a1d
1 changed files with 7 additions and 0 deletions
|
@ -2975,6 +2975,9 @@ void TemplateTable::fast_storefield(TosState state)
|
||||||
// access constant pool cache
|
// access constant pool cache
|
||||||
__ get_cache_and_index_at_bcp(r2, r1, 1);
|
__ get_cache_and_index_at_bcp(r2, r1, 1);
|
||||||
|
|
||||||
|
// Must prevent reordering of the following cp cache loads with bytecode load
|
||||||
|
__ membar(MacroAssembler::LoadLoad);
|
||||||
|
|
||||||
// test for volatile with r3
|
// test for volatile with r3
|
||||||
__ ldrw(r3, Address(r2, in_bytes(base +
|
__ ldrw(r3, Address(r2, in_bytes(base +
|
||||||
ConstantPoolCacheEntry::flags_offset())));
|
ConstantPoolCacheEntry::flags_offset())));
|
||||||
|
@ -3067,6 +3070,10 @@ void TemplateTable::fast_accessfield(TosState state)
|
||||||
|
|
||||||
// access constant pool cache
|
// access constant pool cache
|
||||||
__ get_cache_and_index_at_bcp(r2, r1, 1);
|
__ get_cache_and_index_at_bcp(r2, r1, 1);
|
||||||
|
|
||||||
|
// Must prevent reordering of the following cp cache loads with bytecode load
|
||||||
|
__ membar(MacroAssembler::LoadLoad);
|
||||||
|
|
||||||
__ ldr(r1, Address(r2, in_bytes(ConstantPoolCache::base_offset() +
|
__ ldr(r1, Address(r2, in_bytes(ConstantPoolCache::base_offset() +
|
||||||
ConstantPoolCacheEntry::f2_offset())));
|
ConstantPoolCacheEntry::f2_offset())));
|
||||||
__ ldrw(r3, Address(r2, in_bytes(ConstantPoolCache::base_offset() +
|
__ ldrw(r3, Address(r2, in_bytes(ConstantPoolCache::base_offset() +
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue