| 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/code-assembler.h" | 5 #include "src/compiler/code-assembler.h" | 
| 6 | 6 | 
| 7 #include <ostream> | 7 #include <ostream> | 
| 8 | 8 | 
| 9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" | 
| 10 #include "src/compiler/graph.h" | 10 #include "src/compiler/graph.h" | 
| (...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 522 | 522 | 
| 523   Node** args = zone()->NewArray<Node*>(4); | 523   Node** args = zone()->NewArray<Node*>(4); | 
| 524   args[0] = arg1; | 524   args[0] = arg1; | 
| 525   args[1] = arg2; | 525   args[1] = arg2; | 
| 526   args[2] = arg3; | 526   args[2] = arg3; | 
| 527   args[3] = context; | 527   args[3] = context; | 
| 528 | 528 | 
| 529   return raw_assembler_->TailCallN(call_descriptor, target, args); | 529   return raw_assembler_->TailCallN(call_descriptor, target, args); | 
| 530 } | 530 } | 
| 531 | 531 | 
|  | 532 Node* CodeAssembler::TailCallStub(const CallInterfaceDescriptor& descriptor, | 
|  | 533                                   Node* target, Node* context, Node* arg1, | 
|  | 534                                   Node* arg2, Node* arg3, Node* arg4, | 
|  | 535                                   size_t result_size) { | 
|  | 536   CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor( | 
|  | 537       isolate(), zone(), descriptor, descriptor.GetStackParameterCount(), | 
|  | 538       CallDescriptor::kSupportsTailCalls, Operator::kNoProperties, | 
|  | 539       MachineType::AnyTagged(), result_size); | 
|  | 540 | 
|  | 541   Node** args = zone()->NewArray<Node*>(5); | 
|  | 542   args[0] = arg1; | 
|  | 543   args[1] = arg2; | 
|  | 544   args[2] = arg3; | 
|  | 545   args[3] = arg4; | 
|  | 546   args[4] = context; | 
|  | 547 | 
|  | 548   return raw_assembler_->TailCallN(call_descriptor, target, args); | 
|  | 549 } | 
|  | 550 | 
| 532 Node* CodeAssembler::TailCallBytecodeDispatch( | 551 Node* CodeAssembler::TailCallBytecodeDispatch( | 
| 533     const CallInterfaceDescriptor& interface_descriptor, | 552     const CallInterfaceDescriptor& interface_descriptor, | 
| 534     Node* code_target_address, Node** args) { | 553     Node* code_target_address, Node** args) { | 
| 535   CallDescriptor* descriptor = Linkage::GetBytecodeDispatchCallDescriptor( | 554   CallDescriptor* descriptor = Linkage::GetBytecodeDispatchCallDescriptor( | 
| 536       isolate(), zone(), interface_descriptor, | 555       isolate(), zone(), interface_descriptor, | 
| 537       interface_descriptor.GetStackParameterCount()); | 556       interface_descriptor.GetStackParameterCount()); | 
| 538   return raw_assembler_->TailCallN(descriptor, code_target_address, args); | 557   return raw_assembler_->TailCallN(descriptor, code_target_address, args); | 
| 539 } | 558 } | 
| 540 | 559 | 
| 541 void CodeAssembler::Goto(CodeAssembler::Label* label) { | 560 void CodeAssembler::Goto(CodeAssembler::Label* label) { | 
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 732       } | 751       } | 
| 733     } | 752     } | 
| 734   } | 753   } | 
| 735 | 754 | 
| 736   bound_ = true; | 755   bound_ = true; | 
| 737 } | 756 } | 
| 738 | 757 | 
| 739 }  // namespace compiler | 758 }  // namespace compiler | 
| 740 }  // namespace internal | 759 }  // namespace internal | 
| 741 }  // namespace v8 | 760 }  // namespace v8 | 
| OLD | NEW | 
|---|