From cdddf869f2273c1c08ff39b00a8f7f585ce74deb Mon Sep 17 00:00:00 2001 From: Ryan Macnak Date: Fri, 21 Jul 2023 17:13:31 +0000 Subject: [PATCH] [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 Commit-Queue: Ryan Macnak --- runtime/vm/compiler/stub_code_compiler.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runtime/vm/compiler/stub_code_compiler.cc b/runtime/vm/compiler/stub_code_compiler.cc index 6e32411131d..602c4c0a680 100644 --- a/runtime/vm/compiler/stub_code_compiler.cc +++ b/runtime/vm/compiler/stub_code_compiler.cc @@ -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());