| 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:
|
|
|