File tree Expand file tree Collapse file tree 2 files changed +12
-6
lines changed
runtime/vm/compiler/backend Expand file tree Collapse file tree 2 files changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -2957,8 +2957,14 @@ void StoreStaticFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
29572957 : compiler::target::Thread::field_table_values_offset ());
29582958
29592959 // Note: static fields ids won't be changed by hot-reload.
2960- __ StoreToOffset (value, temp,
2961- compiler::target::FieldTable::OffsetOf (field ()));
2960+ if (field ().is_shared ()) {
2961+ __ StoreRelease (value,
2962+ compiler::Address (
2963+ temp, compiler::target::FieldTable::OffsetOf (field ())));
2964+ } else {
2965+ __ StoreToOffset (value, temp,
2966+ compiler::target::FieldTable::OffsetOf (field ()));
2967+ }
29622968}
29632969
29642970LocationSummary* InstanceOfInstr::MakeLocationSummary (Zone* zone,
Original file line number Diff line number Diff line change @@ -2500,13 +2500,13 @@ void StoreStaticFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
25002500 : compiler::target::Thread::field_table_values_offset ()));
25012501 // Note: static fields ids won't be changed by hot-reload.
25022502 if (field ().is_shared ()) {
2503- __ movq (compiler::Address (temp,
2504- compiler::target::FieldTable::OffsetOf (field ())),
2505- value);
2506- } else {
25072503 __ StoreRelease (value,
25082504 compiler::Address (
25092505 temp, compiler::target::FieldTable::OffsetOf (field ())));
2506+ } else {
2507+ __ movq (compiler::Address (temp,
2508+ compiler::target::FieldTable::OffsetOf (field ())),
2509+ value);
25102510 }
25112511}
25122512
You can’t perform that action at this time.
0 commit comments