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

Unified Diff: runtime/vm/intermediate_language_arm.cc

Issue 26823006: Record a correct deoptimization environment for slow-path code. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Use an environment value's representation to decide its size. Created 7 years, 2 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
Index: runtime/vm/intermediate_language_arm.cc
diff --git a/runtime/vm/intermediate_language_arm.cc b/runtime/vm/intermediate_language_arm.cc
index 35b43d9c547bc15605689b365832e0976f194686..c62d728786ff96d22b5715773175c49ae693da2a 100644
--- a/runtime/vm/intermediate_language_arm.cc
+++ b/runtime/vm/intermediate_language_arm.cc
@@ -246,7 +246,7 @@ static void EmitAssertBoolean(Register reg,
__ b(&done, EQ);
__ Push(reg); // Push the source object.
- compiler->GenerateCallRuntime(token_pos,
+ compiler->GenerateRuntimeCall(token_pos,
deopt_id,
kConditionTypeErrorRuntimeEntry,
1,
@@ -1850,7 +1850,7 @@ AllocateObjectWithBoundsCheckInstr::MakeLocationSummary() const {
void AllocateObjectWithBoundsCheckInstr::EmitNativeCode(
FlowGraphCompiler* compiler) {
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kAllocateObjectWithBoundsCheckRuntimeEntry,
3,
@@ -1898,7 +1898,7 @@ void InstantiateTypeInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
__ PushObject(Object::ZoneHandle()); // Make room for the result.
__ PushObject(type());
__ Push(instantiator_reg); // Push instantiator type arguments.
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kInstantiateTypeRuntimeEntry,
2,
@@ -1945,7 +1945,7 @@ void InstantiateTypeArgumentsInstr::EmitNativeCode(
__ PushObject(Object::ZoneHandle()); // Make room for the result.
__ PushObject(type_arguments());
__ Push(instantiator_reg); // Push instantiator type arguments.
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kInstantiateTypeArgumentsRuntimeEntry,
2,
@@ -2081,7 +2081,7 @@ void CloneContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
__ PushObject(Object::ZoneHandle()); // Make room for the result.
__ Push(context_value);
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kCloneContextRuntimeEntry,
1,
@@ -2152,8 +2152,9 @@ class CheckStackOverflowSlowPath : public SlowPathCode {
// pending_deoptimization_env_ is needed to generate a runtime call that
// may throw an exception.
ASSERT(compiler->pending_deoptimization_env_ == NULL);
- compiler->pending_deoptimization_env_ = instruction_->env();
- compiler->GenerateCallRuntime(instruction_->token_pos(),
+ Environment* env = compiler->SlowPathEnvironmentFor(instruction_);
+ compiler->pending_deoptimization_env_ = env;
+ compiler->GenerateRuntimeCall(instruction_->token_pos(),
instruction_->deopt_id(),
kStackOverflowRuntimeEntry,
0,
@@ -4347,7 +4348,7 @@ LocationSummary* ThrowInstr::MakeLocationSummary() const {
void ThrowInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kThrowRuntimeEntry,
1,
@@ -4363,7 +4364,7 @@ LocationSummary* ReThrowInstr::MakeLocationSummary() const {
void ReThrowInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
compiler->SetNeedsStacktrace(catch_try_index());
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kReThrowRuntimeEntry,
2,

Powered by Google App Engine
This is Rietveld 408576698