[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:
Ryan Macnak
2023-07-21 17:13:31 +00:00
committed by Commit Queue
parent 1cfcb4feaa
commit cdddf869f2
+3 -3
View File
@@ -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());