[vm, compiler] Use acquire ordering to load the type arguments instantiation cache.
TEST=tsan Change-Id: I6dea219ecb26949f01fc51b1c46fd53d3921aba8 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/315246 Reviewed-by: Tess Strickland <sstrickl@google.com> Commit-Queue: Ryan Macnak <rmacnak@google.com>
This commit is contained in:
committed by
Commit Queue
parent
1cfcb4feaa
commit
cdddf869f2
@@ -321,10 +321,10 @@ void StubCodeCompiler::GenerateInstantiateTypeArgumentsStub() {
|
||||
};
|
||||
|
||||
// Lookup cache before calling runtime.
|
||||
__ LoadCompressed(
|
||||
__ LoadAcquireCompressed(
|
||||
InstantiationABI::kScratchReg,
|
||||
compiler::FieldAddress(InstantiationABI::kUninstantiatedTypeArgumentsReg,
|
||||
target::TypeArguments::instantiations_offset()));
|
||||
InstantiationABI::kUninstantiatedTypeArgumentsReg,
|
||||
target::TypeArguments::instantiations_offset() - kHeapObjectTag);
|
||||
// Go ahead and load the backing array data address into kEntryReg.
|
||||
__ LoadFieldAddressForOffset(kEntryReg, InstantiationABI::kScratchReg,
|
||||
target::Array::data_offset());
|
||||
|
||||
Reference in New Issue
Block a user