Bug 1192786 - support an installed printer, for profiling. r=nbp

This commit is contained in:
Lars T Hansen 2015-08-25 08:09:12 +02:00
parent ed00523f8a
commit 057fb5a15a
2 changed files with 8 additions and 1 deletions

View File

@ -1525,7 +1525,7 @@ Assembler::spewData(BufferOffset addr, size_t numInstr, bool loadToPC)
bool
Assembler::spewDisabled()
{
return !JitSpewEnabled(JitSpew_Codegen);
return !(JitSpewEnabled(JitSpew_Codegen) || printer_);
}
void
@ -1540,6 +1540,10 @@ Assembler::spew(const char* fmt, ...)
void
Assembler::spew(const char* fmt, va_list va)
{
if (printer_) {
printer_->vprintf(fmt, va);
printer_->put("\n");
}
js::jit::JitSpewVA(js::jit::JitSpew_Codegen, fmt, va);
}

View File

@ -1305,6 +1305,7 @@ class Assembler : public AssemblerShared
SpewNodes spewNodes_;
uint32_t spewNext_;
Sprinter* printer_;
bool spewDisabled();
uint32_t spewResolve(Label* l);
@ -1321,6 +1322,7 @@ class Assembler : public AssemblerShared
: m_buffer(1, 1, 8, GetPoolMaxOffset(), 8, 0xe320f000, 0xeaffffff, GetNopFill()),
#ifdef JS_DISASM_ARM
spewNext_(1000),
printer_(nullptr),
#endif
isFinished(false),
dtmActive(false),
@ -1381,6 +1383,7 @@ class Assembler : public AssemblerShared
bool oom() const;
void setPrinter(Sprinter* sp) {
printer_ = sp;
}
static const Register getStackPointer() {