summaryrefslogtreecommitdiff
path: root/compiler/optimizing
diff options
context:
space:
mode:
author Android Build Coastguard Worker <android-build-coastguard-worker@google.com> 2025-01-20 16:01:49 -0800
committer Android Build Coastguard Worker <android-build-coastguard-worker@google.com> 2025-01-20 16:01:49 -0800
commit6921a67edc5e10fe2431c09501f996a7fff753fc (patch)
tree473d7967434e65c3fe6555504005a67426916b0d /compiler/optimizing
parentce448caab89ca3e65262f517ae86fa2766941995 (diff)
parent504abad6403a188b25a6bc37ce4a3328cd2e0559 (diff)
Snap for 12943675 from 504abad6403a188b25a6bc37ce4a3328cd2e0559 to 25Q2-release
Change-Id: Id80ca6f9861b04c0ff9ffef46389417e849a660a
Diffstat (limited to 'compiler/optimizing')
-rw-r--r--compiler/optimizing/nodes.h15
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);
}