X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fv8%2Fsrc%2Fcompiler%2Fraw-machine-assembler.cc;h=a8b658f9635c1e9eb1ddfa8acf26433c6a237089;hb=1afa4dd80ef85af7c90efaea6959db1d92330844;hp=7f45eb941d020a206001678464aa18dffc49c442;hpb=90762837333c13ccf56f2ad88e4481fc71e8d281;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/v8/src/compiler/raw-machine-assembler.cc b/src/v8/src/compiler/raw-machine-assembler.cc index 7f45eb9..a8b658f 100644 --- a/src/v8/src/compiler/raw-machine-assembler.cc +++ b/src/v8/src/compiler/raw-machine-assembler.cc @@ -13,10 +13,11 @@ namespace compiler { RawMachineAssembler::RawMachineAssembler(Graph* graph, MachineSignature* machine_sig, - MachineType word) + MachineType word, + MachineOperatorBuilder::Flags flags) : GraphBuilder(graph), schedule_(new (zone()) Schedule(zone())), - machine_(word), + machine_(word, flags), common_(zone()), machine_sig_(machine_sig), call_descriptor_( @@ -39,7 +40,8 @@ RawMachineAssembler::RawMachineAssembler(Graph* graph, Schedule* RawMachineAssembler::Export() { // Compute the correct codegen order. DCHECK(schedule_->rpo_order()->empty()); - Scheduler::ComputeSpecialRPO(schedule_); + ZonePool zone_pool(isolate()); + Scheduler::ComputeSpecialRPO(&zone_pool, schedule_); // Invalidate MachineAssembler. Schedule* schedule = schedule_; schedule_ = NULL; @@ -97,7 +99,8 @@ Node* RawMachineAssembler::CallFunctionStub0(Node* function, Node* receiver, Node* RawMachineAssembler::CallJS0(Node* function, Node* receiver, Node* context, Node* frame_state) { - CallDescriptor* descriptor = Linkage::GetJSCallDescriptor(1, zone()); + CallDescriptor* descriptor = + Linkage::GetJSCallDescriptor(1, zone(), CallDescriptor::kNeedsFrameState); Node* call = graph()->NewNode(common()->Call(descriptor), function, receiver, context, frame_state); schedule()->AddNode(CurrentBlock(), call); @@ -150,10 +153,10 @@ BasicBlock* RawMachineAssembler::CurrentBlock() { Node* RawMachineAssembler::MakeNode(const Operator* op, int input_count, - Node** inputs) { + Node** inputs, bool incomplete) { DCHECK(ScheduleValid()); DCHECK(current_block_ != NULL); - Node* node = graph()->NewNode(op, input_count, inputs); + Node* node = graph()->NewNode(op, input_count, inputs, incomplete); BasicBlock* block = op->opcode() == IrOpcode::kParameter ? schedule()->start() : CurrentBlock(); schedule()->AddNode(block, node);