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-intrinsic-lowering.h" | 5 #include "src/compiler/js-intrinsic-lowering.h" |
6 | 6 |
7 #include <stack> | 7 #include <stack> |
8 | 8 |
9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
10 #include "src/compiler/access-builder.h" | 10 #include "src/compiler/access-builder.h" |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 case Runtime::kInlineIsJSProxy: | 51 case Runtime::kInlineIsJSProxy: |
52 return ReduceIsInstanceType(node, JS_PROXY_TYPE); | 52 return ReduceIsInstanceType(node, JS_PROXY_TYPE); |
53 case Runtime::kInlineIsJSReceiver: | 53 case Runtime::kInlineIsJSReceiver: |
54 return ReduceIsJSReceiver(node); | 54 return ReduceIsJSReceiver(node); |
55 case Runtime::kInlineIsSmi: | 55 case Runtime::kInlineIsSmi: |
56 return ReduceIsSmi(node); | 56 return ReduceIsSmi(node); |
57 case Runtime::kInlineFixedArrayGet: | 57 case Runtime::kInlineFixedArrayGet: |
58 return ReduceFixedArrayGet(node); | 58 return ReduceFixedArrayGet(node); |
59 case Runtime::kInlineFixedArraySet: | 59 case Runtime::kInlineFixedArraySet: |
60 return ReduceFixedArraySet(node); | 60 return ReduceFixedArraySet(node); |
61 case Runtime::kInlineRegExpExec: | |
62 return ReduceRegExpExec(node); | |
63 case Runtime::kInlineSubString: | 61 case Runtime::kInlineSubString: |
64 return ReduceSubString(node); | 62 return ReduceSubString(node); |
65 case Runtime::kInlineToInteger: | 63 case Runtime::kInlineToInteger: |
66 return ReduceToInteger(node); | 64 return ReduceToInteger(node); |
67 case Runtime::kInlineToLength: | 65 case Runtime::kInlineToLength: |
68 return ReduceToLength(node); | 66 return ReduceToLength(node); |
69 case Runtime::kInlineToNumber: | 67 case Runtime::kInlineToNumber: |
70 return ReduceToNumber(node); | 68 return ReduceToNumber(node); |
71 case Runtime::kInlineToObject: | 69 case Runtime::kInlineToObject: |
72 return ReduceToObject(node); | 70 return ReduceToObject(node); |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 Node* effect = NodeProperties::GetEffectInput(node); | 252 Node* effect = NodeProperties::GetEffectInput(node); |
255 Node* control = NodeProperties::GetControlInput(node); | 253 Node* control = NodeProperties::GetControlInput(node); |
256 Node* store = (graph()->NewNode( | 254 Node* store = (graph()->NewNode( |
257 simplified()->StoreElement(AccessBuilder::ForFixedArrayElement()), base, | 255 simplified()->StoreElement(AccessBuilder::ForFixedArrayElement()), base, |
258 index, value, effect, control)); | 256 index, value, effect, control)); |
259 ReplaceWithValue(node, value, store); | 257 ReplaceWithValue(node, value, store); |
260 return Changed(store); | 258 return Changed(store); |
261 } | 259 } |
262 | 260 |
263 | 261 |
264 Reduction JSIntrinsicLowering::ReduceRegExpExec(Node* node) { | |
265 return Change(node, CodeFactory::RegExpExec(isolate()), 4); | |
266 } | |
267 | |
268 | |
269 Reduction JSIntrinsicLowering::ReduceSubString(Node* node) { | 262 Reduction JSIntrinsicLowering::ReduceSubString(Node* node) { |
270 return Change(node, CodeFactory::SubString(isolate()), 3); | 263 return Change(node, CodeFactory::SubString(isolate()), 3); |
271 } | 264 } |
272 | 265 |
273 | 266 |
274 Reduction JSIntrinsicLowering::ReduceToInteger(Node* node) { | 267 Reduction JSIntrinsicLowering::ReduceToInteger(Node* node) { |
275 NodeProperties::ChangeOp(node, javascript()->ToInteger()); | 268 NodeProperties::ChangeOp(node, javascript()->ToInteger()); |
276 return Changed(node); | 269 return Changed(node); |
277 } | 270 } |
278 | 271 |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
426 return jsgraph_->javascript(); | 419 return jsgraph_->javascript(); |
427 } | 420 } |
428 | 421 |
429 SimplifiedOperatorBuilder* JSIntrinsicLowering::simplified() const { | 422 SimplifiedOperatorBuilder* JSIntrinsicLowering::simplified() const { |
430 return jsgraph()->simplified(); | 423 return jsgraph()->simplified(); |
431 } | 424 } |
432 | 425 |
433 } // namespace compiler | 426 } // namespace compiler |
434 } // namespace internal | 427 } // namespace internal |
435 } // namespace v8 | 428 } // namespace v8 |
OLD | NEW |