| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |