Chromium Code Reviews| Index: runtime/vm/intrinsifier_arm.cc |
| diff --git a/runtime/vm/intrinsifier_arm.cc b/runtime/vm/intrinsifier_arm.cc |
| index e878d033bdc1b7c73d269f0bc34330f742dae26c..739cc42632254ce6aa59a0a080fa6a0dfa1e9903 100644 |
| --- a/runtime/vm/intrinsifier_arm.cc |
| +++ b/runtime/vm/intrinsifier_arm.cc |
| @@ -15,6 +15,7 @@ |
| #include "vm/object_store.h" |
| #include "vm/regexp_assembler.h" |
| #include "vm/symbols.h" |
| +#include "vm/timeline.h" |
| namespace dart { |
| @@ -2104,6 +2105,29 @@ void Intrinsifier::Profiler_getCurrentTag(Assembler* assembler) { |
| __ Ret(); |
| } |
| + |
| +void Intrinsifier::Timeline_isDartStreamEnabled(Assembler* assembler) { |
| + if (!FLAG_support_timeline) { |
| + __ LoadObject(R0, Bool::False()); |
| + __ Ret(); |
| + return; |
| + } |
| + Label true_label; |
| + // Load TimelineStream*. |
| + __ ldr(R0, Address(THR, Thread::dart_stream_offset())); |
| + // Load uintptr_t from TimelineStream*. |
| + __ ldr(R0, Address(R0, TimelineStream::enabled_offset())); |
| + __ cmp(R0, Operand(0)); |
|
zra
2016/05/17 17:35:49
__ cmp(R0, Operand(0));
__ LoadObject(R0, Bool::Tr
|
| + __ b(&true_label, NE); |
| + // Not enabled. |
| + __ LoadObject(R0, Bool::False()); |
| + __ Ret(); |
| + // Enabled. |
| + __ Bind(&true_label); |
| + __ LoadObject(R0, Bool::True()); |
| + __ Ret(); |
| +} |
| + |
| } // namespace dart |
| #endif // defined TARGET_ARCH_ARM |