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

Unified Diff: runtime/vm/intermediate_language_ia32.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_ia32.cc
diff --git a/runtime/vm/intermediate_language_ia32.cc b/runtime/vm/intermediate_language_ia32.cc
index bbbbe97e0981db64cc3bc36940ed3a8c3960dc5a..57d6bec09ebfcbd2176cc97f03e2dee34ee1bd62 100644
--- a/runtime/vm/intermediate_language_ia32.cc
+++ b/runtime/vm/intermediate_language_ia32.cc
@@ -194,7 +194,7 @@ static void EmitAssertBoolean(Register reg,
__ j(EQUAL, &done, Assembler::kNearJump);
__ pushl(reg); // Push the source object.
- compiler->GenerateCallRuntime(token_pos,
+ compiler->GenerateRuntimeCall(token_pos,
deopt_id,
kConditionTypeErrorRuntimeEntry,
1,
@@ -1933,7 +1933,7 @@ AllocateObjectWithBoundsCheckInstr::MakeLocationSummary() const {
void AllocateObjectWithBoundsCheckInstr::EmitNativeCode(
FlowGraphCompiler* compiler) {
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kAllocateObjectWithBoundsCheckRuntimeEntry,
3,
@@ -1980,7 +1980,7 @@ void InstantiateTypeInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
__ PushObject(Object::ZoneHandle()); // Make room for the result.
__ PushObject(type());
__ pushl(instantiator_reg); // Push instantiator type arguments.
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kInstantiateTypeRuntimeEntry,
2,
@@ -2028,7 +2028,7 @@ void InstantiateTypeArgumentsInstr::EmitNativeCode(
__ PushObject(Object::ZoneHandle()); // Make room for the result.
__ PushObject(type_arguments());
__ pushl(instantiator_reg); // Push instantiator type arguments.
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kInstantiateTypeArgumentsRuntimeEntry,
2,
@@ -2166,7 +2166,7 @@ void CloneContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
__ PushObject(Object::ZoneHandle()); // Make room for the result.
__ pushl(context_value);
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kCloneContextRuntimeEntry,
1,
@@ -2232,8 +2232,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,
@@ -4678,7 +4679,7 @@ LocationSummary* ThrowInstr::MakeLocationSummary() const {
void ThrowInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
- compiler->GenerateCallRuntime(token_pos(),
+ compiler->GenerateRuntimeCall(token_pos(),
deopt_id(),
kThrowRuntimeEntry,
1,
@@ -4694,7 +4695,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