diff options
| author | 2025-01-20 16:01:49 -0800 | |
|---|---|---|
| committer | 2025-01-20 16:01:49 -0800 | |
| commit | 6921a67edc5e10fe2431c09501f996a7fff753fc (patch) | |
| tree | 473d7967434e65c3fe6555504005a67426916b0d /compiler/optimizing | |
| parent | ce448caab89ca3e65262f517ae86fa2766941995 (diff) | |
| parent | 504abad6403a188b25a6bc37ce4a3328cd2e0559 (diff) | |
Snap for 12943675 from 504abad6403a188b25a6bc37ce4a3328cd2e0559 to 25Q2-release
Change-Id: Id80ca6f9861b04c0ff9ffef46389417e849a660a
Diffstat (limited to 'compiler/optimizing')
| -rw-r--r-- | compiler/optimizing/nodes.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h index c209ef5450..094bcfa876 100644 --- a/compiler/optimizing/nodes.h +++ b/compiler/optimizing/nodes.h @@ -6146,7 +6146,10 @@ class HInstanceFieldSet final : public HExpression<2> { declaring_class_def_index, dex_file) { SetPackedFlag<kFlagValueCanBeNull>(true); - SetPackedField<WriteBarrierKindField>(WriteBarrierKind::kEmitNotBeingReliedOn); + SetPackedField<WriteBarrierKindField>( + field_type == DataType::Type::kReference + ? WriteBarrierKind::kEmitNotBeingReliedOn + : WriteBarrierKind::kDontEmit); SetRawInputAt(0, object); SetRawInputAt(1, value); } @@ -6313,7 +6316,10 @@ class HArraySet final : public HExpression<3> { SetPackedFlag<kFlagNeedsTypeCheck>(value->GetType() == DataType::Type::kReference); SetPackedFlag<kFlagValueCanBeNull>(true); SetPackedFlag<kFlagStaticTypeOfArrayIsObjectArray>(false); - SetPackedField<WriteBarrierKindField>(WriteBarrierKind::kEmitNotBeingReliedOn); + SetPackedField<WriteBarrierKindField>( + value->GetType() == DataType::Type::kReference + ? WriteBarrierKind::kEmitNotBeingReliedOn + : WriteBarrierKind::kDontEmit); SetRawInputAt(0, array); SetRawInputAt(1, index); SetRawInputAt(2, value); @@ -7272,7 +7278,10 @@ class HStaticFieldSet final : public HExpression<2> { declaring_class_def_index, dex_file) { SetPackedFlag<kFlagValueCanBeNull>(true); - SetPackedField<WriteBarrierKindField>(WriteBarrierKind::kEmitNotBeingReliedOn); + SetPackedField<WriteBarrierKindField>( + field_type == DataType::Type::kReference + ? WriteBarrierKind::kEmitNotBeingReliedOn + : WriteBarrierKind::kDontEmit); SetRawInputAt(0, cls); SetRawInputAt(1, value); } |