| Index: runtime/vm/intermediate_language_arm.cc
|
| diff --git a/runtime/vm/intermediate_language_arm.cc b/runtime/vm/intermediate_language_arm.cc
|
| index 395b59abee900b45617c2d943451d3ca23fadaed..87a7c800be9d2c1b8847465e106da29bade0d242 100644
|
| --- a/runtime/vm/intermediate_language_arm.cc
|
| +++ b/runtime/vm/intermediate_language_arm.cc
|
| @@ -1934,6 +1934,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());
|
| @@ -1954,6 +1956,8 @@ class BoxAllocationSlowPath : public SlowPathCode {
|
| __ MoveRegister(result_, R0);
|
| compiler->RestoreLiveRegisters(locs);
|
| __ b(exit_label());
|
| + compiler->SpecialStatsEnd(
|
| + CombinedCodeStatistics::kTagBoxAllocationSlowPath);
|
| }
|
|
|
| static void Allocate(FlowGraphCompiler* compiler,
|
| @@ -2734,6 +2738,8 @@ class AllocateContextSlowPath : public SlowPathCode {
|
| : instruction_(instruction) {}
|
|
|
| virtual void EmitNativeCode(FlowGraphCompiler* compiler) {
|
| + compiler->SpecialStatsBegin(
|
| + CombinedCodeStatistics::kTagAllocateContextSlowPath);
|
| __ Comment("AllocateContextSlowPath");
|
| __ Bind(entry_label());
|
|
|
| @@ -2752,6 +2758,8 @@ class AllocateContextSlowPath : public SlowPathCode {
|
| ASSERT(instruction_->locs()->out(0).reg() == R0);
|
| compiler->RestoreLiveRegisters(instruction_->locs());
|
| __ b(exit_label());
|
| + compiler->SpecialStatsEnd(
|
| + CombinedCodeStatistics::kTagAllocateContextSlowPath);
|
| }
|
|
|
| private:
|
| @@ -2948,6 +2956,8 @@ class CheckStackOverflowSlowPath : public SlowPathCode {
|
| : instruction_(instruction) {}
|
|
|
| virtual void EmitNativeCode(FlowGraphCompiler* compiler) {
|
| + compiler->SpecialStatsBegin(
|
| + CombinedCodeStatistics::kTagCheckStackOverflowSlowPath);
|
| if (FLAG_use_osr && osr_entry_label()->IsLinked()) {
|
| const Register value = instruction_->locs()->temp(0).reg();
|
| __ Comment("CheckStackOverflowSlowPathOsr");
|
| @@ -2976,6 +2986,8 @@ class CheckStackOverflowSlowPath : public SlowPathCode {
|
| compiler->pending_deoptimization_env_ = NULL;
|
| compiler->RestoreLiveRegisters(instruction_->locs());
|
| __ b(exit_label());
|
| + compiler->SpecialStatsEnd(
|
| + CombinedCodeStatistics::kTagCheckStackOverflowSlowPath);
|
| }
|
|
|
| Label* osr_entry_label() {
|
| @@ -3116,6 +3128,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");
|
| }
|
| @@ -3135,6 +3148,7 @@ class CheckedSmiSlowPath : public SlowPathCode {
|
| __ mov(result, Operand(R0));
|
| compiler->RestoreLiveRegisters(locs);
|
| __ b(exit_label());
|
| + compiler->SpecialStatsEnd(CombinedCodeStatistics::kTagCheckedSmiSlowPath);
|
| }
|
|
|
| private:
|
| @@ -3250,6 +3264,7 @@ class CheckedSmiComparisonSlowPath : public SlowPathCode {
|
| merged_(merged) {}
|
|
|
| virtual void EmitNativeCode(FlowGraphCompiler* compiler) {
|
| + compiler->SpecialStatsBegin(CombinedCodeStatistics::kTagCheckedSmiCmpSlowPath);
|
| if (Assembler::EmittingComments()) {
|
| __ Comment("slow path smi operation");
|
| }
|
| @@ -3278,6 +3293,7 @@ class CheckedSmiComparisonSlowPath : public SlowPathCode {
|
| } else {
|
| __ b(exit_label());
|
| }
|
| + compiler->SpecialStatsEnd(CombinedCodeStatistics::kTagCheckedSmiCmpSlowPath);
|
| }
|
|
|
| private:
|
|
|