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

Unified Diff: runtime/vm/intermediate_language_x64.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_ia32.cc ('k') | runtime/vm/object.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/intermediate_language_x64.cc
===================================================================
--- runtime/vm/intermediate_language_x64.cc (revision 10420)
+++ runtime/vm/intermediate_language_x64.cc (working copy)
@@ -326,10 +326,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();
__ testq(left, Immediate(kSmiTagMask));
@@ -460,7 +457,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,
@@ -515,7 +511,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,
@@ -588,7 +583,6 @@
}
if (HasICData() && (ic_data()->NumberOfChecks() > 0)) {
Label* deopt = compiler->AddDeoptStub(deopt_id(),
- token_pos(),
try_index(),
kDeoptRelationalOp);
// Load receiver into RAX, class into RDI.
@@ -698,7 +692,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);
@@ -745,7 +738,6 @@
kDeoptLoadIndexedGrowableArray : kDeoptLoadIndexedFixedArray;
Label* deopt = compiler->AddDeoptStub(deopt_id(),
- token_pos(),
try_index(),
deopt_reason,
receiver,
@@ -837,7 +829,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);
@@ -879,7 +870,6 @@
Register value = locs()->in(2).reg();
Label* deopt = compiler->AddDeoptStub(deopt_id(),
- token_pos(),
try_index(),
kDeoptStoreIndexed,
receiver,
@@ -945,7 +935,6 @@
if (HasICData()) {
ASSERT(original() != NULL);
Label* deopt = compiler->AddDeoptStub(original()->deopt_id(),
- original()->token_pos(),
original()->try_index(),
kDeoptInstanceGetterSameTarget,
instance_reg);
@@ -1078,7 +1067,6 @@
if (HasICData()) {
ASSERT(original() != NULL);
Label* deopt = compiler->AddDeoptStub(original()->deopt_id(),
- original()->token_pos(),
original()->try_index(),
kDeoptInstanceGetterSameTarget,
instance_reg);
@@ -1452,7 +1440,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,
@@ -1609,7 +1596,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,
@@ -1730,7 +1716,6 @@
__ popq(left);
Label* deopt = compiler->AddDeoptStub(instance_call()->deopt_id(),
- instance_call()->token_pos(),
instance_call()->try_index(),
kDeoptDoubleBinaryOp,
left,
@@ -1782,7 +1767,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);
@@ -1834,7 +1818,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);
@@ -1890,7 +1873,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);
@@ -1934,7 +1916,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_ia32.cc ('k') | runtime/vm/object.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698