Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(729)

Side by Side Diff: src/compiler/simplified-lowering.cc

Issue 2258073002: [Turbofan]: Use new MachineTypes in access-builder. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fixed write barrier issue. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/simplified-lowering.h" 5 #include "src/compiler/simplified-lowering.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "src/address-map.h" 9 #include "src/address-map.h"
10 #include "src/base/bits.h" 10 #include "src/base/bits.h"
(...skipping 1007 matching lines...) Expand 10 before | Expand all | Expand 10 after
1018 1018
1019 const Operator* Float64Op(Node* node) { 1019 const Operator* Float64Op(Node* node) {
1020 return changer_->Float64OperatorFor(node->opcode()); 1020 return changer_->Float64OperatorFor(node->opcode());
1021 } 1021 }
1022 1022
1023 WriteBarrierKind WriteBarrierKindFor( 1023 WriteBarrierKind WriteBarrierKindFor(
1024 BaseTaggedness base_taggedness, 1024 BaseTaggedness base_taggedness,
1025 MachineRepresentation field_representation, Type* field_type, 1025 MachineRepresentation field_representation, Type* field_type,
1026 Node* value) { 1026 Node* value) {
1027 if (base_taggedness == kTaggedBase && 1027 if (base_taggedness == kTaggedBase &&
1028 field_representation == MachineRepresentation::kTagged) { 1028 (field_representation == MachineRepresentation::kTagged ||
1029 field_representation == MachineRepresentation::kTaggedPointer)) {
1029 Type* value_type = NodeProperties::GetType(value); 1030 Type* value_type = NodeProperties::GetType(value);
1030 if (field_type->Is(Type::TaggedSigned()) || 1031 if (field_type->Is(Type::TaggedSigned()) ||
1031 value_type->Is(Type::TaggedSigned())) { 1032 value_type->Is(Type::TaggedSigned())) {
1032 // Write barriers are only for stores of heap objects. 1033 // Write barriers are only for stores of heap objects.
1033 return kNoWriteBarrier; 1034 return kNoWriteBarrier;
1034 } 1035 }
1035 if (field_type->Is(Type::BooleanOrNullOrUndefined()) || 1036 if (field_type->Is(Type::BooleanOrNullOrUndefined()) ||
1036 value_type->Is(Type::BooleanOrNullOrUndefined())) { 1037 value_type->Is(Type::BooleanOrNullOrUndefined())) {
1037 // Write barriers are not necessary when storing true, false, null or 1038 // Write barriers are not necessary when storing true, false, null or
1038 // undefined, because these special oddballs are always in the root set. 1039 // undefined, because these special oddballs are always in the root set.
(...skipping 2284 matching lines...) Expand 10 before | Expand all | Expand 10 after
3323 isolate(), graph()->zone(), callable.descriptor(), 0, flags, 3324 isolate(), graph()->zone(), callable.descriptor(), 0, flags,
3324 Operator::kNoProperties); 3325 Operator::kNoProperties);
3325 to_number_operator_.set(common()->Call(desc)); 3326 to_number_operator_.set(common()->Call(desc));
3326 } 3327 }
3327 return to_number_operator_.get(); 3328 return to_number_operator_.get();
3328 } 3329 }
3329 3330
3330 } // namespace compiler 3331 } // namespace compiler
3331 } // namespace internal 3332 } // namespace internal
3332 } // namespace v8 3333 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698