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/code-stubs.h" | 5 #include "src/code-stubs.h" |
6 #include "src/compiler/common-operator.h" | 6 #include "src/compiler/common-operator.h" |
7 #include "src/compiler/graph-inl.h" | 7 #include "src/compiler/graph-inl.h" |
8 #include "src/compiler/js-generic-lowering.h" | 8 #include "src/compiler/js-generic-lowering.h" |
9 #include "src/compiler/machine-operator.h" | 9 #include "src/compiler/machine-operator.h" |
10 #include "src/compiler/node-aux-data-inl.h" | 10 #include "src/compiler/node-aux-data-inl.h" |
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
273 REPLACE_RUNTIME_CALL(JSCreateModuleContext, Runtime::kPushModuleContext) | 273 REPLACE_RUNTIME_CALL(JSCreateModuleContext, Runtime::kPushModuleContext) |
274 REPLACE_RUNTIME_CALL(JSCreateGlobalContext, Runtime::kAbort) | 274 REPLACE_RUNTIME_CALL(JSCreateGlobalContext, Runtime::kAbort) |
275 #undef REPLACE_RUNTIME | 275 #undef REPLACE_RUNTIME |
276 | 276 |
277 | 277 |
278 #define REPLACE_UNIMPLEMENTED(op) \ | 278 #define REPLACE_UNIMPLEMENTED(op) \ |
279 Node* JSGenericLowering::Lower##op(Node* node) { \ | 279 Node* JSGenericLowering::Lower##op(Node* node) { \ |
280 UNIMPLEMENTED(); \ | 280 UNIMPLEMENTED(); \ |
281 return node; \ | 281 return node; \ |
282 } | 282 } |
283 REPLACE_UNIMPLEMENTED(JSToString) | |
284 REPLACE_UNIMPLEMENTED(JSToName) | 283 REPLACE_UNIMPLEMENTED(JSToName) |
285 REPLACE_UNIMPLEMENTED(JSYield) | 284 REPLACE_UNIMPLEMENTED(JSYield) |
286 REPLACE_UNIMPLEMENTED(JSDebugger) | 285 REPLACE_UNIMPLEMENTED(JSDebugger) |
287 #undef REPLACE_UNIMPLEMENTED | 286 #undef REPLACE_UNIMPLEMENTED |
288 | 287 |
289 | 288 |
290 static CallDescriptor::Flags FlagsForNode(Node* node) { | 289 static CallDescriptor::Flags FlagsForNode(Node* node) { |
291 CallDescriptor::Flags result = CallDescriptor::kNoFlags; | 290 CallDescriptor::Flags result = CallDescriptor::kNoFlags; |
292 if (OperatorProperties::HasFrameStateInput(node->op())) { | 291 if (OperatorProperties::HasFrameStateInput(node->op())) { |
293 result |= CallDescriptor::kNeedsFrameState; | 292 result |= CallDescriptor::kNeedsFrameState; |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 } | 394 } |
396 | 395 |
397 | 396 |
398 Node* JSGenericLowering::LowerJSToBoolean(Node* node) { | 397 Node* JSGenericLowering::LowerJSToBoolean(Node* node) { |
399 ToBooleanStub stub(isolate(), ToBooleanStub::RESULT_AS_ODDBALL); | 398 ToBooleanStub stub(isolate(), ToBooleanStub::RESULT_AS_ODDBALL); |
400 ReplaceWithStubCall(node, &stub, CallDescriptor::kPatchableCallSite); | 399 ReplaceWithStubCall(node, &stub, CallDescriptor::kPatchableCallSite); |
401 return node; | 400 return node; |
402 } | 401 } |
403 | 402 |
404 | 403 |
| 404 Node* JSGenericLowering::LowerJSToString(Node* node) { |
| 405 ReplaceWithBuiltinCall(node, Builtins::TO_STRING, 1); |
| 406 return node; |
| 407 } |
| 408 |
| 409 |
405 Node* JSGenericLowering::LowerJSToObject(Node* node) { | 410 Node* JSGenericLowering::LowerJSToObject(Node* node) { |
406 ReplaceWithBuiltinCall(node, Builtins::TO_OBJECT, 1); | 411 ReplaceWithBuiltinCall(node, Builtins::TO_OBJECT, 1); |
407 return node; | 412 return node; |
408 } | 413 } |
409 | 414 |
410 | 415 |
411 Node* JSGenericLowering::LowerJSLoadProperty(Node* node) { | 416 Node* JSGenericLowering::LowerJSLoadProperty(Node* node) { |
412 KeyedLoadICStubShim stub(isolate()); | 417 KeyedLoadICStubShim stub(isolate()); |
413 ReplaceWithStubCall(node, &stub, CallDescriptor::kPatchableCallSite); | 418 ReplaceWithStubCall(node, &stub, CallDescriptor::kPatchableCallSite); |
414 return node; | 419 return node; |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
539 Node* JSGenericLowering::LowerJSCallRuntime(Node* node) { | 544 Node* JSGenericLowering::LowerJSCallRuntime(Node* node) { |
540 Runtime::FunctionId function = OpParameter<Runtime::FunctionId>(node); | 545 Runtime::FunctionId function = OpParameter<Runtime::FunctionId>(node); |
541 int arity = OperatorProperties::GetValueInputCount(node->op()); | 546 int arity = OperatorProperties::GetValueInputCount(node->op()); |
542 ReplaceWithRuntimeCall(node, function, arity); | 547 ReplaceWithRuntimeCall(node, function, arity); |
543 return node; | 548 return node; |
544 } | 549 } |
545 | 550 |
546 } // namespace compiler | 551 } // namespace compiler |
547 } // namespace internal | 552 } // namespace internal |
548 } // namespace v8 | 553 } // namespace v8 |
OLD | NEW |