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/base/flags.h" | 5 #include "src/base/flags.h" |
6 #include "src/bootstrapper.h" | 6 #include "src/bootstrapper.h" |
7 #include "src/compiler/graph-reducer.h" | 7 #include "src/compiler/graph-reducer.h" |
8 #include "src/compiler/js-operator.h" | 8 #include "src/compiler/js-operator.h" |
9 #include "src/compiler/node.h" | 9 #include "src/compiler/node.h" |
10 #include "src/compiler/node-properties.h" | 10 #include "src/compiler/node-properties.h" |
(...skipping 1488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1499 | 1499 |
1500 | 1500 |
1501 Bounds Typer::Visitor::TypeJSCallRuntime(Node* node) { | 1501 Bounds Typer::Visitor::TypeJSCallRuntime(Node* node) { |
1502 switch (CallRuntimeParametersOf(node->op()).id()) { | 1502 switch (CallRuntimeParametersOf(node->op()).id()) { |
1503 case Runtime::kInlineIsSmi: | 1503 case Runtime::kInlineIsSmi: |
1504 case Runtime::kInlineIsNonNegativeSmi: | 1504 case Runtime::kInlineIsNonNegativeSmi: |
1505 case Runtime::kInlineIsArray: | 1505 case Runtime::kInlineIsArray: |
1506 case Runtime::kInlineIsFunction: | 1506 case Runtime::kInlineIsFunction: |
1507 case Runtime::kInlineIsRegExp: | 1507 case Runtime::kInlineIsRegExp: |
1508 return Bounds(Type::None(zone()), Type::Boolean(zone())); | 1508 return Bounds(Type::None(zone()), Type::Boolean(zone())); |
| 1509 case Runtime::kInlineOptimizedDoubleLo: |
| 1510 case Runtime::kInlineOptimizedDoubleHi: |
| 1511 return Bounds(Type::None(zone()), Type::Signed32()); |
| 1512 case Runtime::kInlineOptimizedConstructDouble: |
| 1513 return Bounds(Type::None(zone()), Type::Number()); |
1509 default: | 1514 default: |
1510 break; | 1515 break; |
1511 } | 1516 } |
1512 return Bounds::Unbounded(zone()); | 1517 return Bounds::Unbounded(zone()); |
1513 } | 1518 } |
1514 | 1519 |
1515 | 1520 |
1516 Bounds Typer::Visitor::TypeJSDebugger(Node* node) { | 1521 Bounds Typer::Visitor::TypeJSDebugger(Node* node) { |
1517 return Bounds::Unbounded(zone()); | 1522 return Bounds::Unbounded(zone()); |
1518 } | 1523 } |
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2091 return Bounds(Type::Number()); | 2096 return Bounds(Type::Number()); |
2092 } | 2097 } |
2093 | 2098 |
2094 | 2099 |
2095 Bounds Typer::Visitor::TypeFloat64RoundTiesAway(Node* node) { | 2100 Bounds Typer::Visitor::TypeFloat64RoundTiesAway(Node* node) { |
2096 // TODO(sigurds): We could have a tighter bound here. | 2101 // TODO(sigurds): We could have a tighter bound here. |
2097 return Bounds(Type::Number()); | 2102 return Bounds(Type::Number()); |
2098 } | 2103 } |
2099 | 2104 |
2100 | 2105 |
| 2106 Bounds Typer::Visitor::TypeFloat64ExtractWord32(Node* node) { |
| 2107 return Bounds(Type::Signed32()); |
| 2108 } |
| 2109 |
| 2110 |
| 2111 Bounds Typer::Visitor::TypeFloat64InsertWord32(Node* node) { |
| 2112 return Bounds(Type::Number()); |
| 2113 } |
| 2114 |
| 2115 |
2101 Bounds Typer::Visitor::TypeLoadStackPointer(Node* node) { | 2116 Bounds Typer::Visitor::TypeLoadStackPointer(Node* node) { |
2102 return Bounds(Type::Internal()); | 2117 return Bounds(Type::Internal()); |
2103 } | 2118 } |
2104 | 2119 |
2105 | 2120 |
2106 Bounds Typer::Visitor::TypeCheckedLoad(Node* node) { | 2121 Bounds Typer::Visitor::TypeCheckedLoad(Node* node) { |
2107 return Bounds::Unbounded(zone()); | 2122 return Bounds::Unbounded(zone()); |
2108 } | 2123 } |
2109 | 2124 |
2110 | 2125 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2186 TYPED_ARRAYS(TYPED_ARRAY_CASE) | 2201 TYPED_ARRAYS(TYPED_ARRAY_CASE) |
2187 #undef TYPED_ARRAY_CASE | 2202 #undef TYPED_ARRAY_CASE |
2188 } | 2203 } |
2189 } | 2204 } |
2190 return Type::Constant(value, zone()); | 2205 return Type::Constant(value, zone()); |
2191 } | 2206 } |
2192 | 2207 |
2193 } // namespace compiler | 2208 } // namespace compiler |
2194 } // namespace internal | 2209 } // namespace internal |
2195 } // namespace v8 | 2210 } // namespace v8 |
OLD | NEW |