| Index: runtime/vm/flow_graph_compiler_x64.cc
|
| ===================================================================
|
| --- runtime/vm/flow_graph_compiler_x64.cc (revision 8165)
|
| +++ runtime/vm/flow_graph_compiler_x64.cc (working copy)
|
| @@ -1063,70 +1063,14 @@
|
|
|
|
|
| void FlowGraphCompiler::VisitBind(BindInstr* instr) {
|
| - ASSERT(instr->locs() == NULL);
|
| -
|
| - // If instruction does not have special location requirements
|
| - // then it returns result in register RAX.
|
| - instr->computation()->Accept(this);
|
| - __ pushq(RAX);
|
| + // Moved to intermediate_language_x64.cc.
|
| + UNREACHABLE();
|
| }
|
|
|
|
|
| void FlowGraphCompiler::VisitReturn(ReturnInstr* instr) {
|
| - LoadValue(RAX, instr->value());
|
| - if (!is_optimizing()) {
|
| - // Count only in unoptimized code.
|
| - // TODO(srdjan): Replace the counting code with a type feedback
|
| - // collection and counting stub.
|
| - const Function& function =
|
| - Function::ZoneHandle(parsed_function_.function().raw());
|
| - __ LoadObject(RCX, function);
|
| - __ incq(FieldAddress(RCX, Function::usage_counter_offset()));
|
| - if (CodeGenerator::CanOptimize()) {
|
| - // Do not optimize if usage count must be reported.
|
| - __ cmpl(FieldAddress(RCX, Function::usage_counter_offset()),
|
| - Immediate(FLAG_optimization_counter_threshold));
|
| - Label not_yet_hot;
|
| - __ j(LESS_EQUAL, ¬_yet_hot, Assembler::kNearJump);
|
| - __ pushq(RAX); // Preserve result.
|
| - __ pushq(RCX); // Argument for runtime: function to optimize.
|
| - __ CallRuntime(kOptimizeInvokedFunctionRuntimeEntry);
|
| - __ popq(RCX); // Remove argument.
|
| - __ popq(RAX); // Restore result.
|
| - __ Bind(¬_yet_hot);
|
| - }
|
| - }
|
| -
|
| - if (FLAG_trace_functions) {
|
| - __ pushq(RAX); // Preserve result.
|
| - const Function& function =
|
| - Function::ZoneHandle(parsed_function_.function().raw());
|
| - __ LoadObject(RBX, function);
|
| - __ pushq(RBX);
|
| - GenerateCallRuntime(AstNode::kNoId,
|
| - 0,
|
| - CatchClauseNode::kInvalidTryIndex,
|
| - kTraceFunctionExitRuntimeEntry);
|
| - __ popq(RAX); // Remove argument.
|
| - __ popq(RAX); // Restore result.
|
| - }
|
| - __ LeaveFrame();
|
| - __ ret();
|
| -
|
| - // Generate 8 bytes of NOPs so that the debugger can patch the
|
| - // return pattern with a call to the debug stub.
|
| - __ nop(1);
|
| - __ nop(1);
|
| - __ nop(1);
|
| - __ nop(1);
|
| - __ nop(1);
|
| - __ nop(1);
|
| - __ nop(1);
|
| - __ nop(1);
|
| - AddCurrentDescriptor(PcDescriptors::kReturn,
|
| - instr->cid(),
|
| - instr->token_index(),
|
| - CatchClauseNode::kInvalidTryIndex); // try-index.
|
| + // Moved to intermediate_language_x64.cc.
|
| + UNREACHABLE();
|
| }
|
|
|
|
|
|
|