| 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 |