Index: runtime/vm/intermediate_language_ia32.cc |
=================================================================== |
--- runtime/vm/intermediate_language_ia32.cc (revision 10302) |
+++ runtime/vm/intermediate_language_ia32.cc (working copy) |
@@ -88,7 +88,7 @@ |
__ LoadObject(temp, function); |
__ pushl(result); // Preserve result. |
__ pushl(temp); |
- compiler->GenerateCallRuntime(AstNode::kNoId, |
+ compiler->GenerateCallRuntime(Isolate::kNoDeoptId, |
0, |
CatchClauseNode::kInvalidTryIndex, |
kTraceFunctionExitRuntimeEntry); |
@@ -102,7 +102,7 @@ |
// return pattern with a call to the debug stub. |
__ nop(1); |
compiler->AddCurrentDescriptor(PcDescriptors::kReturn, |
- cid(), |
+ deopt_id(), |
token_pos(), |
CatchClauseNode::kInvalidTryIndex); |
} |
@@ -197,7 +197,7 @@ |
__ j(EQUAL, &done, Assembler::kNearJump); |
__ pushl(obj); // Push the source object. |
- compiler->GenerateCallRuntime(cid(), |
+ compiler->GenerateCallRuntime(deopt_id(), |
token_pos(), |
try_index(), |
kConditionTypeErrorRuntimeEntry); |
@@ -264,7 +264,7 @@ |
Register left = comp->locs()->in(0).reg(); |
Register right = comp->locs()->in(1).reg(); |
Register temp = comp->locs()->temp(0).reg(); |
- Label* deopt = compiler->AddDeoptStub(comp->cid(), |
+ Label* deopt = compiler->AddDeoptStub(comp->deopt_id(), |
comp->token_pos(), |
comp->try_index(), |
kDeoptSmiCompareSmi, |
@@ -293,7 +293,7 @@ |
Register left = comp->locs()->in(0).reg(); |
Register right = comp->locs()->in(1).reg(); |
Register temp = comp->locs()->temp(0).reg(); |
- Label* deopt = compiler->AddDeoptStub(comp->cid(), |
+ Label* deopt = compiler->AddDeoptStub(comp->deopt_id(), |
comp->token_pos(), |
comp->try_index(), |
kDeoptDoubleCompareDouble, |
@@ -315,7 +315,7 @@ |
static void EmitEqualityAsInstanceCall(FlowGraphCompiler* compiler, |
EqualityCompareComp* comp) { |
compiler->AddCurrentDescriptor(PcDescriptors::kDeopt, |
- comp->cid(), |
+ comp->deopt_id(), |
comp->token_pos(), |
comp->try_index()); |
const String& operator_name = String::ZoneHandle(Symbols::New("==")); |
@@ -323,7 +323,7 @@ |
const Array& kNoArgumentNames = Array::Handle(); |
const int kNumArgumentsChecked = 2; |
- compiler->GenerateInstanceCall(comp->cid(), |
+ compiler->GenerateInstanceCall(comp->deopt_id(), |
comp->token_pos(), |
comp->try_index(), |
operator_name, |
@@ -349,14 +349,14 @@ |
const LocationSummary& locs, |
BranchInstr* branch, |
Token::Kind kind, |
- intptr_t cid, |
+ intptr_t deopt_id, |
intptr_t token_pos, |
intptr_t try_index) { |
ASSERT((kind == Token::kEQ) || (kind == Token::kNE)); |
const ICData& ic_data = ICData::Handle(orig_ic_data.AsUnaryClassChecks()); |
ASSERT(ic_data.NumberOfChecks() > 0); |
ASSERT(ic_data.num_args_tested() == 1); |
- Label* deopt = compiler->AddDeoptStub(cid, |
+ Label* deopt = compiler->AddDeoptStub(deopt_id, |
token_pos, |
try_index, |
kDeoptEquality); |
@@ -404,7 +404,7 @@ |
} else { |
const int kNumberOfArguments = 2; |
const Array& kNoArgumentNames = Array::Handle(); |
- compiler->GenerateStaticCall(cid, |
+ compiler->GenerateStaticCall(deopt_id, |
token_pos, |
try_index, |
target, |
@@ -443,7 +443,7 @@ |
Token::Kind kind, |
BranchInstr* branch, |
const ICData& ic_data, |
- intptr_t cid, |
+ intptr_t deopt_id, |
intptr_t token_pos, |
intptr_t try_index) { |
ASSERT((kind == Token::kEQ) || (kind == Token::kNE)); |
@@ -474,7 +474,7 @@ |
__ pushl(left); |
__ pushl(right); |
EmitEqualityAsPolymorphicCall(compiler, ic_data, locs, branch, kind, |
- cid, token_pos, try_index); |
+ deopt_id, token_pos, try_index); |
__ Bind(&done); |
} |
@@ -489,8 +489,8 @@ |
return; |
} |
if (HasICData() && (ic_data()->NumberOfChecks() > 0)) { |
- EmitGenericEqualityCompare(compiler, *locs(), kind(), NULL, |
- *ic_data(), cid(), token_pos(), try_index()); |
+ EmitGenericEqualityCompare(compiler, *locs(), kind(), NULL, *ic_data(), |
+ deopt_id(), token_pos(), try_index()); |
} else { |
Register left = locs()->in(0).reg(); |
Register right = locs()->in(1).reg(); |
@@ -522,13 +522,13 @@ |
const LocationSummary& locs, |
Token::Kind kind, |
BranchInstr* branch, |
- intptr_t cid, |
+ intptr_t deopt_id, |
intptr_t token_pos, |
intptr_t try_index) { |
Register left = locs.in(0).reg(); |
Register right = locs.in(1).reg(); |
Register temp = locs.temp(0).reg(); |
- Label* deopt = compiler->AddDeoptStub(cid, |
+ Label* deopt = compiler->AddDeoptStub(deopt_id, |
token_pos, |
try_index, |
kDeoptSmiCompareSmi, |
@@ -576,14 +576,14 @@ |
const LocationSummary& locs, |
Token::Kind kind, |
BranchInstr* branch, |
- intptr_t cid, |
+ intptr_t deopt_id, |
intptr_t token_pos, |
intptr_t try_index) { |
Register left = locs.in(0).reg(); |
Register right = locs.in(1).reg(); |
// TODO(srdjan): temp is only needed if a conversion Smi->Double occurs. |
Register temp = locs.temp(0).reg(); |
- Label* deopt = compiler->AddDeoptStub(cid, |
+ Label* deopt = compiler->AddDeoptStub(deopt_id, |
token_pos, |
try_index, |
kDeoptDoubleComparison, |
@@ -606,16 +606,16 @@ |
void RelationalOpComp::EmitNativeCode(FlowGraphCompiler* compiler) { |
if (operands_class_id() == kSmi) { |
EmitSmiComparisonOp(compiler, *locs(), kind(), NULL, |
- cid(), token_pos(), try_index()); |
+ deopt_id(), token_pos(), try_index()); |
return; |
} |
if (operands_class_id() == kDouble) { |
EmitDoubleComparisonOp(compiler, *locs(), kind(), NULL, |
- cid(), token_pos(), try_index()); |
+ deopt_id(), token_pos(), try_index()); |
return; |
} |
if (HasICData() && (ic_data()->NumberOfChecks() > 0)) { |
- Label* deopt = compiler->AddDeoptStub(cid(), |
+ Label* deopt = compiler->AddDeoptStub(deopt_id(), |
token_pos(), |
try_index(), |
kDeoptRelationalOp); |
@@ -634,7 +634,7 @@ |
Array::Handle(), // No named arguments. |
deopt, // Deoptimize target. |
NULL, // Fallthrough when done. |
- cid(), |
+ deopt_id(), |
token_pos(), |
try_index()); |
return; |
@@ -642,12 +642,12 @@ |
const String& function_name = |
String::ZoneHandle(Symbols::New(Token::Str(kind()))); |
compiler->AddCurrentDescriptor(PcDescriptors::kDeopt, |
- cid(), |
+ deopt_id(), |
token_pos(), |
try_index()); |
const intptr_t kNumArguments = 2; |
const intptr_t kNumArgsChecked = 2; // Type-feedback. |
- compiler->GenerateInstanceCall(cid(), |
+ compiler->GenerateInstanceCall(deopt_id(), |
token_pos(), |
try_index(), |
function_name, |
@@ -722,7 +722,7 @@ |
static void EmitLoadIndexedPolymorphic(FlowGraphCompiler* compiler, |
LoadIndexedComp* comp) { |
- Label* deopt = compiler->AddDeoptStub(comp->cid(), |
+ Label* deopt = compiler->AddDeoptStub(comp->deopt_id(), |
comp->token_pos(), |
comp->try_index(), |
kDeoptLoadIndexedPolymorphic); |
@@ -744,7 +744,7 @@ |
Array::Handle(), // No named arguments. |
deopt, // Deoptimize target. |
NULL, // Fallthrough when done. |
- comp->cid(), |
+ comp->deopt_id(), |
comp->token_pos(), |
comp->try_index()); |
} |
@@ -769,7 +769,7 @@ |
const DeoptReasonId deopt_reason = (receiver_type() == kGrowableObjectArray) ? |
kDeoptLoadIndexedGrowableArray : kDeoptLoadIndexedFixedArray; |
- Label* deopt = compiler->AddDeoptStub(cid(), |
+ Label* deopt = compiler->AddDeoptStub(deopt_id(), |
token_pos(), |
try_index(), |
deopt_reason, |
@@ -840,13 +840,13 @@ |
String::ZoneHandle(Symbols::New(Token::Str(Token::kASSIGN_INDEX))); |
compiler->AddCurrentDescriptor(PcDescriptors::kDeopt, |
- comp->cid(), |
+ comp->deopt_id(), |
comp->token_pos(), |
comp->try_index()); |
const intptr_t kNumArguments = 3; |
const intptr_t kNumArgsChecked = 1; // Type-feedback. |
- compiler->GenerateInstanceCall(comp->cid(), |
+ compiler->GenerateInstanceCall(comp->deopt_id(), |
comp->token_pos(), |
comp->try_index(), |
function_name, |
@@ -858,7 +858,7 @@ |
static void EmitStoreIndexedPolymorphic(FlowGraphCompiler* compiler, |
StoreIndexedComp* comp) { |
- Label* deopt = compiler->AddDeoptStub(comp->cid(), |
+ Label* deopt = compiler->AddDeoptStub(comp->deopt_id(), |
comp->token_pos(), |
comp->try_index(), |
kDeoptStoreIndexedPolymorphic); |
@@ -880,7 +880,7 @@ |
Array::Handle(), // No named arguments. |
deopt, // Deoptimize target. |
NULL, // Fallthrough when done. |
- comp->cid(), |
+ comp->deopt_id(), |
comp->token_pos(), |
comp->try_index()); |
} |
@@ -901,7 +901,7 @@ |
Register value = locs()->in(2).reg(); |
Register temp = locs()->temp(0).reg(); |
- Label* deopt = compiler->AddDeoptStub(cid(), |
+ Label* deopt = compiler->AddDeoptStub(deopt_id(), |
token_pos(), |
try_index(), |
kDeoptStoreIndexed, |
@@ -966,7 +966,7 @@ |
if (HasICData()) { |
ASSERT(original() != NULL); |
- Label* deopt = compiler->AddDeoptStub(original()->cid(), |
+ Label* deopt = compiler->AddDeoptStub(original()->deopt_id(), |
original()->token_pos(), |
original()->try_index(), |
kDeoptInstanceGetterSameTarget, |
@@ -1013,7 +1013,7 @@ |
ASSERT(locs()->in(1).reg() == ECX); // Instantiator. |
ASSERT(locs()->in(2).reg() == EDX); // Instantiator type arguments. |
- compiler->GenerateInstanceOf(cid(), |
+ compiler->GenerateInstanceOf(deopt_id(), |
token_pos(), |
try_index(), |
type(), |
@@ -1072,7 +1072,7 @@ |
__ PushObject(cls); |
__ pushl(type_arguments); |
__ pushl(instantiator_type_arguments); |
- compiler->GenerateCallRuntime(cid(), |
+ compiler->GenerateCallRuntime(deopt_id(), |
token_pos(), |
try_index(), |
kAllocateObjectWithBoundsCheckRuntimeEntry); |
@@ -1095,7 +1095,7 @@ |
Register result_reg = locs()->out().reg(); |
if (HasICData()) { |
ASSERT(original() != NULL); |
- Label* deopt = compiler->AddDeoptStub(original()->cid(), |
+ Label* deopt = compiler->AddDeoptStub(original()->deopt_id(), |
original()->token_pos(), |
original()->try_index(), |
kDeoptInstanceGetterSameTarget, |
@@ -1161,7 +1161,7 @@ |
__ PushObject(Object::ZoneHandle()); // Make room for the result. |
__ PushObject(type_arguments()); |
__ pushl(instantiator_reg); // Push instantiator type arguments. |
- compiler->GenerateCallRuntime(cid(), |
+ compiler->GenerateCallRuntime(deopt_id(), |
token_pos(), |
try_index(), |
kInstantiateTypeArgumentsRuntimeEntry); |
@@ -1341,7 +1341,7 @@ |
__ PushObject(Object::ZoneHandle()); // Make room for the result. |
__ pushl(context_value); |
- compiler->GenerateCallRuntime(cid(), |
+ compiler->GenerateCallRuntime(deopt_id(), |
token_pos(), |
try_index(), |
kCloneContextRuntimeEntry); |
@@ -1392,7 +1392,7 @@ |
Address::Absolute(Isolate::Current()->stack_limit_address())); |
Label no_stack_overflow; |
__ j(ABOVE, &no_stack_overflow); |
- compiler->GenerateCallRuntime(cid(), |
+ compiler->GenerateCallRuntime(deopt_id(), |
token_pos(), |
try_index(), |
kStackOverflowRuntimeEntry); |
@@ -1471,7 +1471,7 @@ |
Register result = comp->locs()->out().reg(); |
Register temp = comp->locs()->temp(0).reg(); |
ASSERT(left == result); |
- Label* deopt = compiler->AddDeoptStub(comp->instance_call()->cid(), |
+ Label* deopt = compiler->AddDeoptStub(comp->instance_call()->deopt_id(), |
comp->instance_call()->token_pos(), |
comp->instance_call()->try_index(), |
kDeoptSmiBinaryOp, |
@@ -1582,7 +1582,7 @@ |
const intptr_t kArgumentCount = 2; |
__ pushl(temp); |
__ pushl(right); |
- compiler->GenerateStaticCall(comp->instance_call()->cid(), |
+ compiler->GenerateStaticCall(comp->instance_call()->deopt_id(), |
comp->instance_call()->token_pos(), |
comp->instance_call()->try_index(), |
target, |
@@ -1629,7 +1629,7 @@ |
Register temp = comp->locs()->temp(0).reg(); |
ASSERT(left == result); |
ASSERT(comp->op_kind() == Token::kBIT_AND); |
- Label* deopt = compiler->AddDeoptStub(comp->instance_call()->cid(), |
+ Label* deopt = compiler->AddDeoptStub(comp->instance_call()->deopt_id(), |
comp->instance_call()->token_pos(), |
comp->instance_call()->try_index(), |
kDeoptMintBinaryOp, |
@@ -1677,7 +1677,7 @@ |
} else { |
__ pushl(left); |
__ pushl(right); |
- compiler->GenerateStaticCall(comp->instance_call()->cid(), |
+ compiler->GenerateStaticCall(comp->instance_call()->deopt_id(), |
comp->instance_call()->token_pos(), |
comp->instance_call()->try_index(), |
target, |
@@ -1697,7 +1697,7 @@ |
} else { |
__ pushl(left); |
__ pushl(right); |
- compiler->GenerateStaticCall(comp->instance_call()->cid(), |
+ compiler->GenerateStaticCall(comp->instance_call()->deopt_id(), |
comp->instance_call()->token_pos(), |
comp->instance_call()->try_index(), |
target, |
@@ -1750,7 +1750,7 @@ |
__ popl(right); |
__ popl(left); |
- Label* deopt = compiler->AddDeoptStub(instance_call()->cid(), |
+ Label* deopt = compiler->AddDeoptStub(instance_call()->deopt_id(), |
instance_call()->token_pos(), |
instance_call()->try_index(), |
kDeoptDoubleBinaryOp, |
@@ -1796,7 +1796,7 @@ |
Register value = locs()->in(0).reg(); |
Register result = locs()->out().reg(); |
ASSERT(value == result); |
- Label* deopt = compiler->AddDeoptStub(instance_call()->cid(), |
+ Label* deopt = compiler->AddDeoptStub(instance_call()->deopt_id(), |
instance_call()->token_pos(), |
instance_call()->try_index(), |
kDeoptUnaryOp, |
@@ -1848,7 +1848,7 @@ |
Register value = locs()->in(0).reg(); |
Register result = locs()->out().reg(); |
ASSERT(value == result); |
- Label* deopt = compiler->AddDeoptStub(instance_call()->cid(), |
+ Label* deopt = compiler->AddDeoptStub(instance_call()->deopt_id(), |
instance_call()->token_pos(), |
instance_call()->try_index(), |
kDeoptUnaryOp, |
@@ -1906,7 +1906,7 @@ |
const DeoptReasonId deopt_reason = (from() == kDouble) ? |
kDeoptDoubleToDouble : kDeoptIntegerToDouble; |
- Label* deopt = compiler->AddDeoptStub(instance_call()->cid(), |
+ Label* deopt = compiler->AddDeoptStub(instance_call()->deopt_id(), |
instance_call()->token_pos(), |
instance_call()->try_index(), |
deopt_reason, |
@@ -1951,7 +1951,7 @@ |
void PolymorphicInstanceCallComp::EmitNativeCode(FlowGraphCompiler* compiler) { |
- Label* deopt = compiler->AddDeoptStub(instance_call()->cid(), |
+ Label* deopt = compiler->AddDeoptStub(instance_call()->deopt_id(), |
instance_call()->token_pos(), |
instance_call()->try_index(), |
kDeoptPolymorphicInstanceCallTestFail); |
@@ -1978,14 +1978,14 @@ |
instance_call()->argument_names(), |
deopt, |
(is_smi_label == &handle_smi) ? &done : NULL, |
- instance_call()->cid(), |
+ instance_call()->deopt_id(), |
instance_call()->token_pos(), |
instance_call()->try_index()); |
if (is_smi_label == &handle_smi) { |
__ Bind(&handle_smi); |
ASSERT(ic_data()->GetReceiverClassIdAt(0) == kSmi); |
const Function& target = Function::ZoneHandle(ic_data()->GetTargetAt(0)); |
- compiler->GenerateStaticCall(instance_call()->cid(), |
+ compiler->GenerateStaticCall(instance_call()->deopt_id(), |
instance_call()->token_pos(), |
instance_call()->try_index(), |
target, |
@@ -2059,18 +2059,18 @@ |
if (HasICData() && (ic_data()->NumberOfChecks() > 0)) { |
if (ICDataWithBothClassIds(*ic_data(), kSmi)) { |
EmitSmiComparisonOp(compiler, *locs(), kind(), this, |
- cid(), token_pos(), try_index()); |
+ deopt_id(), token_pos(), try_index()); |
return; |
} |
if (ICDataWithBothClassIds(*ic_data(), kDouble)) { |
EmitDoubleComparisonOp(compiler, *locs(), kind(), this, |
- cid(), token_pos(), try_index()); |
+ deopt_id(), token_pos(), try_index()); |
return; |
} |
// TODO(srdjan): Add Smi/Double, Double/Smi comparisons. |
if ((kind() == Token::kEQ) || (kind() == Token::kNE)) { |
EmitGenericEqualityCompare(compiler, *locs(), kind(), this, *ic_data(), |
- cid(), token_pos(), try_index()); |
+ deopt_id(), token_pos(), try_index()); |
return; |
} |
// Otherwise polymorphic dispatch? |
@@ -2081,12 +2081,12 @@ |
const String& function_name = |
String::ZoneHandle(Symbols::New(Token::Str(call_kind))); |
compiler->AddCurrentDescriptor(PcDescriptors::kDeopt, |
- cid(), |
+ deopt_id(), |
token_pos(), |
try_index()); |
const intptr_t kNumArguments = 2; |
const intptr_t kNumArgsChecked = 2; // Type-feedback. |
- compiler->GenerateInstanceCall(cid(), |
+ compiler->GenerateInstanceCall(deopt_id(), |
token_pos(), |
try_index(), |
function_name, |