Index: runtime/vm/intermediate_language_x64.cc |
diff --git a/runtime/vm/intermediate_language_x64.cc b/runtime/vm/intermediate_language_x64.cc |
index 097df6ec33f1ff5c69f4efecbd4fc5d080f2c317..90aa325ea1f858f7155c4caaa1d813812f4321fc 100644 |
--- a/runtime/vm/intermediate_language_x64.cc |
+++ b/runtime/vm/intermediate_language_x64.cc |
@@ -1726,6 +1726,8 @@ class BoxAllocationSlowPath : public SlowPathCode { |
: instruction_(instruction), cls_(cls), result_(result) {} |
virtual void EmitNativeCode(FlowGraphCompiler* compiler) { |
+ compiler->SpecialStatsBegin( |
+ CombinedCodeStatistics::kTagBoxAllocationSlowPath); |
if (Assembler::EmittingComments()) { |
__ Comment("%s slow path allocation of %s", instruction_->DebugName(), |
String::Handle(cls_.ScrubbedName()).ToCString()); |
@@ -1746,6 +1748,8 @@ class BoxAllocationSlowPath : public SlowPathCode { |
__ MoveRegister(result_, RAX); |
compiler->RestoreLiveRegisters(locs); |
__ jmp(exit_label()); |
+ compiler->SpecialStatsEnd( |
+ CombinedCodeStatistics::kTagBoxAllocationSlowPath); |
} |
static void Allocate(FlowGraphCompiler* compiler, |
@@ -2404,6 +2408,8 @@ class AllocateContextSlowPath : public SlowPathCode { |
: instruction_(instruction) {} |
virtual void EmitNativeCode(FlowGraphCompiler* compiler) { |
+ compiler->SpecialStatsBegin( |
+ CombinedCodeStatistics::kTagAllocateContextSlowPath); |
__ Comment("AllocateContextSlowPath"); |
__ Bind(entry_label()); |
@@ -2422,6 +2428,8 @@ class AllocateContextSlowPath : public SlowPathCode { |
ASSERT(instruction_->locs()->out(0).reg() == RAX); |
compiler->RestoreLiveRegisters(instruction_->locs()); |
__ jmp(exit_label()); |
+ compiler->SpecialStatsEnd( |
+ CombinedCodeStatistics::kTagAllocateContextSlowPath); |
} |
private: |
@@ -2631,6 +2639,8 @@ class CheckStackOverflowSlowPath : public SlowPathCode { |
: instruction_(instruction) {} |
virtual void EmitNativeCode(FlowGraphCompiler* compiler) { |
+ compiler->SpecialStatsBegin( |
+ CombinedCodeStatistics::kTagCheckStackOverflowSlowPath); |
if (FLAG_use_osr && osr_entry_label()->IsLinked()) { |
__ Comment("CheckStackOverflowSlowPathOsr"); |
__ Bind(osr_entry_label()); |
@@ -2658,6 +2668,8 @@ class CheckStackOverflowSlowPath : public SlowPathCode { |
compiler->pending_deoptimization_env_ = NULL; |
compiler->RestoreLiveRegisters(instruction_->locs()); |
__ jmp(exit_label()); |
+ compiler->SpecialStatsEnd( |
+ CombinedCodeStatistics::kTagCheckStackOverflowSlowPath); |
} |
@@ -2818,6 +2830,7 @@ class CheckedSmiSlowPath : public SlowPathCode { |
: instruction_(instruction), try_index_(try_index) {} |
virtual void EmitNativeCode(FlowGraphCompiler* compiler) { |
+ compiler->SpecialStatsBegin(CombinedCodeStatistics::kTagCheckedSmiSlowPath); |
if (Assembler::EmittingComments()) { |
__ Comment("slow path smi operation"); |
} |
@@ -2837,6 +2850,7 @@ class CheckedSmiSlowPath : public SlowPathCode { |
__ MoveRegister(result, RAX); |
compiler->RestoreLiveRegisters(locs); |
__ jmp(exit_label()); |
+ compiler->SpecialStatsEnd(CombinedCodeStatistics::kTagCheckedSmiSlowPath); |
} |
private: |
@@ -2978,6 +2992,7 @@ class CheckedSmiComparisonSlowPath : public SlowPathCode { |
merged_(merged) {} |
virtual void EmitNativeCode(FlowGraphCompiler* compiler) { |
+ compiler->SpecialStatsBegin(CombinedCodeStatistics::kTagCheckedSmiCmpSlowPath); |
if (Assembler::EmittingComments()) { |
__ Comment("slow path smi comparison"); |
} |
@@ -3005,6 +3020,7 @@ class CheckedSmiComparisonSlowPath : public SlowPathCode { |
} else { |
__ jmp(exit_label()); |
} |
+ compiler->SpecialStatsEnd(CombinedCodeStatistics::kTagCheckedSmiCmpSlowPath); |
} |
private: |