Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Unified Diff: runtime/vm/intermediate_language_ia32.cc

Issue 10832214: Move deopt reason into PcDescriptor so the EAX/RAX register is not destroyed. Some cleanups in PC d… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/intermediate_language.cc ('k') | runtime/vm/intermediate_language_x64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/intermediate_language_ia32.cc
===================================================================
--- runtime/vm/intermediate_language_ia32.cc (revision 10420)
+++ runtime/vm/intermediate_language_ia32.cc (working copy)
@@ -318,10 +318,7 @@
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(deopt_id,
- token_pos,
- try_index,
- kDeoptEquality);
+ Label* deopt = compiler->AddDeoptStub(deopt_id, try_index, kDeoptEquality);
Register left = locs.in(0).reg();
Register right = locs.in(1).reg();
__ testl(left, Immediate(kSmiTagMask));
@@ -452,7 +449,6 @@
Register right = locs.in(1).reg();
Register temp = locs.temp(0).reg();
Label* deopt = compiler->AddDeoptStub(deopt_id,
- token_pos,
try_index,
kDeoptSmiCompareSmi,
left,
@@ -507,7 +503,6 @@
// TODO(srdjan): temp is only needed if a conversion Smi->Double occurs.
Register temp = locs.temp(0).reg();
Label* deopt = compiler->AddDeoptStub(deopt_id,
- token_pos,
try_index,
kDeoptDoubleComparison,
left,
@@ -580,7 +575,6 @@
}
if (HasICData() && (ic_data()->NumberOfChecks() > 0)) {
Label* deopt = compiler->AddDeoptStub(deopt_id(),
- token_pos(),
try_index(),
kDeoptRelationalOp);
// Load receiver into EAX, class into EDI.
@@ -687,7 +681,6 @@
static void EmitLoadIndexedPolymorphic(FlowGraphCompiler* compiler,
LoadIndexedComp* comp) {
Label* deopt = compiler->AddDeoptStub(comp->deopt_id(),
- comp->token_pos(),
comp->try_index(),
kDeoptLoadIndexedPolymorphic);
ASSERT(comp->ic_data()->NumberOfChecks() > 0);
@@ -735,7 +728,6 @@
kDeoptLoadIndexedGrowableArray : kDeoptLoadIndexedFixedArray;
Label* deopt = compiler->AddDeoptStub(deopt_id(),
- token_pos(),
try_index(),
deopt_reason,
receiver,
@@ -824,7 +816,6 @@
static void EmitStoreIndexedPolymorphic(FlowGraphCompiler* compiler,
StoreIndexedComp* comp) {
Label* deopt = compiler->AddDeoptStub(comp->deopt_id(),
- comp->token_pos(),
comp->try_index(),
kDeoptStoreIndexedPolymorphic);
ASSERT(comp->ic_data()->NumberOfChecks() > 0);
@@ -867,7 +858,6 @@
Register temp = locs()->temp(0).reg();
Label* deopt = compiler->AddDeoptStub(deopt_id(),
- token_pos(),
try_index(),
kDeoptStoreIndexed,
receiver,
@@ -932,7 +922,6 @@
if (HasICData()) {
ASSERT(original() != NULL);
Label* deopt = compiler->AddDeoptStub(original()->deopt_id(),
- original()->token_pos(),
original()->try_index(),
kDeoptInstanceGetterSameTarget,
instance_reg);
@@ -1066,7 +1055,6 @@
if (HasICData()) {
ASSERT(original() != NULL);
Label* deopt = compiler->AddDeoptStub(original()->deopt_id(),
- original()->token_pos(),
original()->try_index(),
kDeoptInstanceGetterSameTarget,
instance_reg);
@@ -1442,7 +1430,6 @@
Register temp = comp->locs()->temp(0).reg();
ASSERT(left == result);
Label* deopt = compiler->AddDeoptStub(comp->instance_call()->deopt_id(),
- comp->instance_call()->token_pos(),
comp->instance_call()->try_index(),
kDeoptSmiBinaryOp,
temp,
@@ -1600,7 +1587,6 @@
ASSERT(left == result);
ASSERT(comp->op_kind() == Token::kBIT_AND);
Label* deopt = compiler->AddDeoptStub(comp->instance_call()->deopt_id(),
- comp->instance_call()->token_pos(),
comp->instance_call()->try_index(),
kDeoptMintBinaryOp,
left,
@@ -1721,7 +1707,6 @@
__ popl(left);
Label* deopt = compiler->AddDeoptStub(instance_call()->deopt_id(),
- instance_call()->token_pos(),
instance_call()->try_index(),
kDeoptDoubleBinaryOp,
left,
@@ -1773,7 +1758,6 @@
Register result = locs()->out().reg();
ASSERT(value == result);
Label* deopt = compiler->AddDeoptStub(instance_call()->deopt_id(),
- instance_call()->token_pos(),
instance_call()->try_index(),
kDeoptUnaryOp,
value);
@@ -1825,7 +1809,6 @@
Register result = locs()->out().reg();
ASSERT(value == result);
Label* deopt = compiler->AddDeoptStub(instance_call()->deopt_id(),
- instance_call()->token_pos(),
instance_call()->try_index(),
kDeoptUnaryOp,
value);
@@ -1883,7 +1866,6 @@
const DeoptReasonId deopt_reason = (from() == kDoubleCid) ?
kDeoptDoubleToDouble : kDeoptIntegerToDouble;
Label* deopt = compiler->AddDeoptStub(instance_call()->deopt_id(),
- instance_call()->token_pos(),
instance_call()->try_index(),
deopt_reason,
value);
@@ -1928,7 +1910,6 @@
void PolymorphicInstanceCallComp::EmitNativeCode(FlowGraphCompiler* compiler) {
Label* deopt = compiler->AddDeoptStub(instance_call()->deopt_id(),
- instance_call()->token_pos(),
instance_call()->try_index(),
kDeoptPolymorphicInstanceCallTestFail);
if (!HasICData() || (ic_data()->NumberOfChecks() == 0)) {
« no previous file with comments | « runtime/vm/intermediate_language.cc ('k') | runtime/vm/intermediate_language_x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698