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

Unified Diff: runtime/vm/intermediate_language_mips.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_mips.cc
diff --git a/runtime/vm/intermediate_language_mips.cc b/runtime/vm/intermediate_language_mips.cc
index 4456f6ea2dd0f4222d9b1e4bcd1fc0147bb0804d..b5b42d784ca5946f874efa41e2a438f4b48923a0 100644
--- a/runtime/vm/intermediate_language_mips.cc
+++ b/runtime/vm/intermediate_language_mips.cc
@@ -249,7 +249,7 @@ static void EmitAssertBoolean(Register reg,
__ BranchEqual(reg, Bool::False(), &done);
__ Push(reg); // Push the source object.
- compiler->GenerateCallRuntime(token_pos,
+ compiler->GenerateRuntimeCall(token_pos,
deopt_id,
kConditionTypeErrorRuntimeEntry,
1,
@@ -1918,7 +1918,7 @@ AllocateObjectWithBoundsCheckInstr::MakeLocationSummary() const {
void AllocateObjectWithBoundsCheckInstr::EmitNativeCode(
FlowGraphCompiler* compiler) {
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kAllocateObjectWithBoundsCheckRuntimeEntry,
3,
@@ -1971,7 +1971,7 @@ void InstantiateTypeInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
// Push instantiator type arguments.
__ sw(instantiator_reg, Address(SP, 0 * kWordSize));
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kInstantiateTypeRuntimeEntry,
2,
@@ -2025,7 +2025,7 @@ void InstantiateTypeArgumentsInstr::EmitNativeCode(
// Push instantiator type arguments.
__ sw(instantiator_reg, Address(SP, 0 * kWordSize));
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kInstantiateTypeArgumentsRuntimeEntry,
2,
@@ -2168,7 +2168,7 @@ void CloneContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
__ sw(TMP1, Address(SP, 1 * kWordSize));
__ sw(context_value, Address(SP, 0 * kWordSize));
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kCloneContextRuntimeEntry,
1,
@@ -2243,8 +2243,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,
@@ -3738,7 +3739,7 @@ LocationSummary* ThrowInstr::MakeLocationSummary() const {
void ThrowInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kThrowRuntimeEntry,
1,
@@ -3754,7 +3755,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