| Index: runtime/vm/intermediate_language_x64.cc
|
| diff --git a/runtime/vm/intermediate_language_x64.cc b/runtime/vm/intermediate_language_x64.cc
|
| index 62db0564d927bb5d7ae8a11b8e11bae8a9c90b40..f30ffd14a90e68b2bcfc6d6ad8f3280bc5e9ecbf 100644
|
| --- a/runtime/vm/intermediate_language_x64.cc
|
| +++ b/runtime/vm/intermediate_language_x64.cc
|
| @@ -87,7 +87,6 @@ void ReturnInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ pushq(temp);
|
| compiler->GenerateCallRuntime(Isolate::kNoDeoptId,
|
| 0,
|
| - CatchClauseNode::kInvalidTryIndex,
|
| kTraceFunctionExitRuntimeEntry,
|
| NULL);
|
| __ popq(temp); // Remove argument.
|
| @@ -125,8 +124,7 @@ void ReturnInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ nop(1);
|
| compiler->AddCurrentDescriptor(PcDescriptors::kReturn,
|
| deopt_id(),
|
| - token_pos(),
|
| - CatchClauseNode::kInvalidTryIndex);
|
| + token_pos());
|
| }
|
|
|
|
|
| @@ -222,7 +220,6 @@ void AssertBooleanComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ pushq(obj); // Push the source object.
|
| compiler->GenerateCallRuntime(deopt_id(),
|
| token_pos(),
|
| - try_index(),
|
| kConditionTypeErrorRuntimeEntry,
|
| locs());
|
| // We should never return here.
|
| @@ -287,13 +284,11 @@ LocationSummary* EqualityCompareComp::MakeLocationSummary() const {
|
| static void EmitEqualityAsInstanceCall(FlowGraphCompiler* compiler,
|
| intptr_t deopt_id,
|
| intptr_t token_pos,
|
| - intptr_t try_index,
|
| Token::Kind kind,
|
| LocationSummary* locs) {
|
| compiler->AddCurrentDescriptor(PcDescriptors::kDeopt,
|
| deopt_id,
|
| - token_pos,
|
| - try_index);
|
| + token_pos);
|
| const String& operator_name = String::ZoneHandle(Symbols::New("=="));
|
| const int kNumberOfArguments = 2;
|
| const Array& kNoArgumentNames = Array::Handle();
|
| @@ -331,7 +326,6 @@ static void EmitEqualityAsInstanceCall(FlowGraphCompiler* compiler,
|
| __ pushq(right);
|
| compiler->GenerateInstanceCall(deopt_id,
|
| token_pos,
|
| - try_index,
|
| operator_name,
|
| kNumberOfArguments,
|
| kNoArgumentNames,
|
| @@ -357,8 +351,7 @@ static void EmitEqualityAsPolymorphicCall(FlowGraphCompiler* compiler,
|
| BranchInstr* branch,
|
| Token::Kind kind,
|
| intptr_t deopt_id,
|
| - intptr_t token_pos,
|
| - intptr_t try_index) {
|
| + intptr_t token_pos) {
|
| ASSERT((kind == Token::kEQ) || (kind == Token::kNE));
|
| const ICData& ic_data = ICData::Handle(orig_ic_data.AsUnaryClassChecks());
|
| ASSERT(ic_data.NumberOfChecks() > 0);
|
| @@ -412,7 +405,6 @@ static void EmitEqualityAsPolymorphicCall(FlowGraphCompiler* compiler,
|
| const Array& kNoArgumentNames = Array::Handle();
|
| compiler->GenerateStaticCall(deopt_id,
|
| token_pos,
|
| - try_index,
|
| target,
|
| kNumberOfArguments,
|
| kNoArgumentNames,
|
| @@ -504,8 +496,7 @@ static void EmitGenericEqualityCompare(FlowGraphCompiler* compiler,
|
| BranchInstr* branch,
|
| const ICData& ic_data,
|
| intptr_t deopt_id,
|
| - intptr_t token_pos,
|
| - intptr_t try_index) {
|
| + intptr_t token_pos) {
|
| ASSERT((kind == Token::kEQ) || (kind == Token::kNE));
|
| ASSERT(!ic_data.IsNull() && (ic_data.NumberOfChecks() > 0));
|
| Register left = locs->in(0).reg();
|
| @@ -537,7 +528,7 @@ static void EmitGenericEqualityCompare(FlowGraphCompiler* compiler,
|
| __ pushq(left);
|
| __ pushq(right);
|
| EmitEqualityAsPolymorphicCall(compiler, ic_data, locs, branch, kind,
|
| - deopt_id, token_pos, try_index);
|
| + deopt_id, token_pos);
|
| __ Bind(&done);
|
| }
|
|
|
| @@ -642,7 +633,7 @@ void EqualityCompareComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| }
|
| if (HasICData() && (ic_data()->NumberOfChecks() > 0)) {
|
| EmitGenericEqualityCompare(compiler, locs(), kind(), kNoBranch, *ic_data(),
|
| - deopt_id(), token_pos(), try_index());
|
| + deopt_id(), token_pos());
|
| return;
|
| }
|
| Register left = locs()->in(0).reg();
|
| @@ -652,7 +643,6 @@ void EqualityCompareComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| EmitEqualityAsInstanceCall(compiler,
|
| deopt_id(),
|
| token_pos(),
|
| - try_index(),
|
| kind(),
|
| locs());
|
| ASSERT(locs()->out().reg() == RAX);
|
| @@ -681,7 +671,7 @@ void EqualityCompareComp::EmitBranchCode(FlowGraphCompiler* compiler,
|
| }
|
| if (HasICData() && (ic_data()->NumberOfChecks() > 0)) {
|
| EmitGenericEqualityCompare(compiler, locs(), kind(), branch, *ic_data(),
|
| - deopt_id(), token_pos(), try_index());
|
| + deopt_id(), token_pos());
|
| return;
|
| }
|
| Register left = locs()->in(0).reg();
|
| @@ -691,7 +681,6 @@ void EqualityCompareComp::EmitBranchCode(FlowGraphCompiler* compiler,
|
| EmitEqualityAsInstanceCall(compiler,
|
| deopt_id(),
|
| token_pos(),
|
| - try_index(),
|
| Token::kEQ, // kNE reverse occurs at branch.
|
| locs());
|
| Condition branch_condition = (kind() == Token::kNE) ? NOT_EQUAL : EQUAL;
|
| @@ -760,7 +749,6 @@ void RelationalOpComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| deopt, // Deoptimize target.
|
| deopt_id(),
|
| token_pos(),
|
| - try_index(),
|
| locs());
|
| return;
|
| }
|
| @@ -768,13 +756,11 @@ void RelationalOpComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| String::ZoneHandle(Symbols::New(Token::Str(kind())));
|
| compiler->AddCurrentDescriptor(PcDescriptors::kDeopt,
|
| deopt_id(),
|
| - token_pos(),
|
| - try_index());
|
| + token_pos());
|
| const intptr_t kNumArguments = 2;
|
| const intptr_t kNumArgsChecked = 2; // Type-feedback.
|
| compiler->GenerateInstanceCall(deopt_id(),
|
| token_pos(),
|
| - try_index(),
|
| function_name,
|
| kNumArguments,
|
| Array::ZoneHandle(), // No optional arguments.
|
| @@ -834,7 +820,6 @@ void NativeCallComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ movq(RBX, Immediate(reinterpret_cast<uword>(native_c_function())));
|
| __ movq(R10, Immediate(arg_count));
|
| compiler->GenerateCall(token_pos(),
|
| - try_index(),
|
| &StubCode::CallNativeCFunctionLabel(),
|
| PcDescriptors::kOther,
|
| locs());
|
| @@ -1057,7 +1042,6 @@ void InstanceOfComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
|
|
| compiler->GenerateInstanceOf(deopt_id(),
|
| token_pos(),
|
| - try_index(),
|
| type(),
|
| negate_result(),
|
| locs());
|
| @@ -1081,7 +1065,6 @@ void CreateArrayComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| ASSERT(locs()->in(0).reg() == RBX);
|
| __ movq(R10, Immediate(Smi::RawValue(ArgumentCount())));
|
| compiler->GenerateCall(token_pos(),
|
| - try_index(),
|
| &StubCode::AllocateArrayLabel(),
|
| PcDescriptors::kOther,
|
| locs());
|
| @@ -1123,7 +1106,6 @@ void AllocateObjectWithBoundsCheckComp::EmitNativeCode(
|
| __ pushq(instantiator_type_arguments);
|
| compiler->GenerateCallRuntime(deopt_id(),
|
| token_pos(),
|
| - try_index(),
|
| kAllocateObjectWithBoundsCheckRuntimeEntry,
|
| locs());
|
| // Pop instantiator type arguments, type arguments, and class.
|
| @@ -1207,7 +1189,6 @@ void InstantiateTypeArgumentsComp::EmitNativeCode(
|
| __ pushq(instantiator_reg); // Push instantiator type arguments.
|
| compiler->GenerateCallRuntime(deopt_id(),
|
| token_pos(),
|
| - try_index(),
|
| kInstantiateTypeArgumentsRuntimeEntry,
|
| locs());
|
| __ Drop(2); // Drop instantiator and uninstantiated type arguments.
|
| @@ -1359,7 +1340,6 @@ void AllocateContextComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const ExternalLabel label("alloc_context",
|
| StubCode::AllocateContextEntryPoint());
|
| compiler->GenerateCall(token_pos(),
|
| - try_index(),
|
| &label,
|
| PcDescriptors::kOther,
|
| locs());
|
| @@ -1385,7 +1365,6 @@ void CloneContextComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ pushq(context_value);
|
| compiler->GenerateCallRuntime(deopt_id(),
|
| token_pos(),
|
| - try_index(),
|
| kCloneContextRuntimeEntry,
|
| locs());
|
| __ popq(result); // Remove argument.
|
| @@ -1442,7 +1421,6 @@ class CheckStackOverflowSlowPath : public SlowPathCode {
|
| compiler->SaveLiveRegisters(computation_->locs());
|
| compiler->GenerateCallRuntime(computation_->deopt_id(),
|
| computation_->token_pos(),
|
| - computation_->try_index(),
|
| kStackOverflowRuntimeEntry,
|
| computation_->locs());
|
| compiler->RestoreLiveRegisters(computation_->locs());
|
| @@ -1632,7 +1610,6 @@ void BinarySmiOpComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| compiler->GenerateStaticCall(
|
| instance_call()->deopt_id(),
|
| instance_call()->token_pos(),
|
| - instance_call()->try_index(),
|
| target,
|
| kArgumentCount,
|
| Array::Handle(), // No argument names.
|
| @@ -1737,7 +1714,6 @@ void BinaryMintOpComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| compiler->GenerateStaticCall(
|
| instance_call()->deopt_id(),
|
| instance_call()->token_pos(),
|
| - instance_call()->try_index(),
|
| target,
|
| instance_call()->ArgumentCount(),
|
| instance_call()->argument_names(),
|
| @@ -1759,7 +1735,6 @@ void BinaryMintOpComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| compiler->GenerateStaticCall(
|
| instance_call()->deopt_id(),
|
| instance_call()->token_pos(),
|
| - instance_call()->try_index(),
|
| target,
|
| instance_call()->ArgumentCount(),
|
| instance_call()->argument_names(),
|
| @@ -1787,7 +1762,6 @@ void BinaryDoubleOpComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| Code::Handle(StubCode::GetAllocationStubForClass(double_class));
|
| const ExternalLabel label(double_class.ToCString(), stub.EntryPoint());
|
| compiler->GenerateCall(instance_call()->token_pos(),
|
| - instance_call()->try_index(),
|
| &label,
|
| PcDescriptors::kOther,
|
| locs());
|
| @@ -1880,7 +1854,6 @@ class BoxDoubleSlowPath : public SlowPathCode {
|
|
|
| compiler->SaveLiveRegisters(locs);
|
| compiler->GenerateCall(computation_->instance_call()->token_pos(),
|
| - computation_->instance_call()->try_index(),
|
| &label,
|
| PcDescriptors::kOther,
|
| locs);
|
| @@ -2045,7 +2018,6 @@ void NumberNegateComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const ExternalLabel label(double_class.ToCString(), stub.EntryPoint());
|
| __ pushq(value);
|
| compiler->GenerateCall(instance_call()->token_pos(),
|
| - instance_call()->try_index(),
|
| &label,
|
| PcDescriptors::kOther,
|
| instance_call()->locs());
|
| @@ -2108,7 +2080,6 @@ void SmiToDoubleComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| // TODO(fschneider): Inline new-space allocation and move the call into
|
| // deferred code.
|
| compiler->GenerateCall(instance_call()->token_pos(),
|
| - instance_call()->try_index(),
|
| &label,
|
| PcDescriptors::kOther,
|
| locs());
|
| @@ -2144,7 +2115,6 @@ void PolymorphicInstanceCallComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| const Function& target = Function::ZoneHandle(ic_data()->GetTargetAt(0));
|
| compiler->GenerateStaticCall(instance_call()->deopt_id(),
|
| instance_call()->token_pos(),
|
| - instance_call()->try_index(),
|
| target,
|
| instance_call()->ArgumentCount(),
|
| instance_call()->argument_names(),
|
| @@ -2168,7 +2138,6 @@ void PolymorphicInstanceCallComp::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| deopt,
|
| instance_call()->deopt_id(),
|
| instance_call()->token_pos(),
|
| - instance_call()->try_index(),
|
| locs());
|
| }
|
|
|
|
|