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 1013 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1024 | 1024 |
1025 const Operator* Float64Op(Node* node) { | 1025 const Operator* Float64Op(Node* node) { |
1026 return changer_->Float64OperatorFor(node->opcode()); | 1026 return changer_->Float64OperatorFor(node->opcode()); |
1027 } | 1027 } |
1028 | 1028 |
1029 WriteBarrierKind WriteBarrierKindFor( | 1029 WriteBarrierKind WriteBarrierKindFor( |
1030 BaseTaggedness base_taggedness, | 1030 BaseTaggedness base_taggedness, |
1031 MachineRepresentation field_representation, Type* field_type, | 1031 MachineRepresentation field_representation, Type* field_type, |
1032 Node* value) { | 1032 Node* value) { |
1033 if (base_taggedness == kTaggedBase && | 1033 if (base_taggedness == kTaggedBase && |
1034 field_representation == MachineRepresentation::kTagged) { | 1034 CanBeTaggedPointer(field_representation)) { |
1035 Type* value_type = NodeProperties::GetType(value); | 1035 Type* value_type = NodeProperties::GetType(value); |
1036 if (field_type->Is(Type::TaggedSigned()) || | 1036 if (field_type->Is(Type::TaggedSigned()) || |
1037 value_type->Is(Type::TaggedSigned())) { | 1037 value_type->Is(Type::TaggedSigned())) { |
1038 // Write barriers are only for stores of heap objects. | 1038 // Write barriers are only for stores of heap objects. |
1039 return kNoWriteBarrier; | 1039 return kNoWriteBarrier; |
1040 } | 1040 } |
1041 if (field_type->Is(Type::BooleanOrNullOrUndefined()) || | 1041 if (field_type->Is(Type::BooleanOrNullOrUndefined()) || |
1042 value_type->Is(Type::BooleanOrNullOrUndefined())) { | 1042 value_type->Is(Type::BooleanOrNullOrUndefined())) { |
1043 // Write barriers are not necessary when storing true, false, null or | 1043 // Write barriers are not necessary when storing true, false, null or |
1044 // undefined, because these special oddballs are always in the root set. | 1044 // undefined, because these special oddballs are always in the root set. |
(...skipping 2284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3329 isolate(), graph()->zone(), callable.descriptor(), 0, flags, | 3329 isolate(), graph()->zone(), callable.descriptor(), 0, flags, |
3330 Operator::kNoProperties); | 3330 Operator::kNoProperties); |
3331 to_number_operator_.set(common()->Call(desc)); | 3331 to_number_operator_.set(common()->Call(desc)); |
3332 } | 3332 } |
3333 return to_number_operator_.get(); | 3333 return to_number_operator_.get(); |
3334 } | 3334 } |
3335 | 3335 |
3336 } // namespace compiler | 3336 } // namespace compiler |
3337 } // namespace internal | 3337 } // namespace internal |
3338 } // namespace v8 | 3338 } // namespace v8 |
OLD | NEW |