OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/js-native-context-specialization.h" | 5 #include "src/compiler/js-native-context-specialization.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
9 #include "src/compilation-dependencies.h" | 9 #include "src/compilation-dependencies.h" |
10 #include "src/compiler/access-builder.h" | 10 #include "src/compiler/access-builder.h" |
(...skipping 1262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1273 length, effect, control); | 1273 length, effect, control); |
1274 } | 1274 } |
1275 | 1275 |
1276 // Compute the element access. | 1276 // Compute the element access. |
1277 Type* element_type = Type::NonInternal(); | 1277 Type* element_type = Type::NonInternal(); |
1278 MachineType element_machine_type = MachineType::AnyTagged(); | 1278 MachineType element_machine_type = MachineType::AnyTagged(); |
1279 if (IsFastDoubleElementsKind(elements_kind)) { | 1279 if (IsFastDoubleElementsKind(elements_kind)) { |
1280 element_type = Type::Number(); | 1280 element_type = Type::Number(); |
1281 element_machine_type = MachineType::Float64(); | 1281 element_machine_type = MachineType::Float64(); |
1282 } else if (IsFastSmiElementsKind(elements_kind)) { | 1282 } else if (IsFastSmiElementsKind(elements_kind)) { |
1283 element_type = type_cache_.kSmi; | 1283 element_type = Type::SignedSmall(); |
1284 element_machine_type = MachineType::TaggedSigned(); | 1284 element_machine_type = MachineType::TaggedSigned(); |
1285 } | 1285 } |
1286 ElementAccess element_access = {kTaggedBase, FixedArray::kHeaderSize, | 1286 ElementAccess element_access = {kTaggedBase, FixedArray::kHeaderSize, |
1287 element_type, element_machine_type, | 1287 element_type, element_machine_type, |
1288 kFullWriteBarrier}; | 1288 kFullWriteBarrier}; |
1289 | 1289 |
1290 // Access the actual element. | 1290 // Access the actual element. |
1291 if (access_mode == AccessMode::kLoad) { | 1291 if (access_mode == AccessMode::kLoad) { |
1292 // Compute the real element access type, which includes the hole in case | 1292 // Compute the real element access type, which includes the hole in case |
1293 // of holey backing stores. | 1293 // of holey backing stores. |
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1617 return jsgraph()->javascript(); | 1617 return jsgraph()->javascript(); |
1618 } | 1618 } |
1619 | 1619 |
1620 SimplifiedOperatorBuilder* JSNativeContextSpecialization::simplified() const { | 1620 SimplifiedOperatorBuilder* JSNativeContextSpecialization::simplified() const { |
1621 return jsgraph()->simplified(); | 1621 return jsgraph()->simplified(); |
1622 } | 1622 } |
1623 | 1623 |
1624 } // namespace compiler | 1624 } // namespace compiler |
1625 } // namespace internal | 1625 } // namespace internal |
1626 } // namespace v8 | 1626 } // namespace v8 |
OLD | NEW |