diff options
author | Erik Verbruggen <erik.verbruggen@qt.io> | 2018-08-21 16:24:10 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@qt.io> | 2018-08-30 13:44:14 +0000 |
commit | 920f50731a8fe7507aece1318c9e91f3f12b525e (patch) | |
tree | d0cbb8fd23d94977ddaebb56b757b5ef72c282ec | |
parent | 8725f9873deda85eb426b989aa911f07fd80bf09 (diff) |
V4: Add JIT kind to disassembly
Change-Id: I6dd1cd6f795a93a186e84f5ab1c606f7e23fb85d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r-- | src/3rdparty/masm/assembler/LinkBuffer.h | 18 | ||||
-rw-r--r-- | src/3rdparty/masm/stubs/WTFStubs.cpp | 6 | ||||
-rw-r--r-- | src/3rdparty/masm/yarr/YarrJIT.cpp | 8 | ||||
-rw-r--r-- | src/qml/jit/qv4assemblercommon.cpp | 4 | ||||
-rw-r--r-- | src/qml/jit/qv4assemblercommon_p.h | 2 | ||||
-rw-r--r-- | src/qml/jit/qv4baselineassembler.cpp | 2 |
6 files changed, 20 insertions, 20 deletions
diff --git a/src/3rdparty/masm/assembler/LinkBuffer.h b/src/3rdparty/masm/assembler/LinkBuffer.h index 9b0016e96a..c79b0663c8 100644 --- a/src/3rdparty/masm/assembler/LinkBuffer.h +++ b/src/3rdparty/masm/assembler/LinkBuffer.h @@ -211,7 +211,7 @@ public: // displaying disassembly. inline CodeRef finalizeCodeWithoutDisassembly(); - inline CodeRef finalizeCodeWithDisassembly(const char* format, ...) WTF_ATTRIBUTE_PRINTF(2, 3); + inline CodeRef finalizeCodeWithDisassembly(const char *jitKind, const char* format, ...) WTF_ATTRIBUTE_PRINTF(3, 4); CodePtr trampolineAt(Label label) { @@ -265,9 +265,9 @@ protected: #endif }; -#define FINALIZE_CODE_IF(condition, linkBufferReference, dataLogFArgumentsForHeading) \ +#define FINALIZE_CODE_IF(condition, linkBufferReference, jitKind, dataLogFArgumentsForHeading) \ (UNLIKELY((condition)) \ - ? ((linkBufferReference).finalizeCodeWithDisassembly (dataLogFArgumentsForHeading)) \ + ? ((linkBufferReference).finalizeCodeWithDisassembly (jitKind, dataLogFArgumentsForHeading)) \ : (linkBufferReference).finalizeCodeWithoutDisassembly()) // Use this to finalize code, like so: @@ -286,11 +286,11 @@ protected: // Note that the dataLogFArgumentsForHeading are only evaluated when showDisassembly // is true, so you can hide expensive disassembly-only computations inside there. -#define FINALIZE_CODE(linkBufferReference, dataLogFArgumentsForHeading) \ - FINALIZE_CODE_IF(Options::showDisassembly(), linkBufferReference, dataLogFArgumentsForHeading) +#define FINALIZE_CODE(linkBufferReference, jitKind, dataLogFArgumentsForHeading) \ + FINALIZE_CODE_IF(Options::showDisassembly(), linkBufferReference, jitKind, dataLogFArgumentsForHeading) -#define FINALIZE_DFG_CODE(linkBufferReference, dataLogFArgumentsForHeading) \ - FINALIZE_CODE_IF((Options::showDisassembly() || Options::showDFGDisassembly()), linkBufferReference, dataLogFArgumentsForHeading) +#define FINALIZE_DFG_CODE(linkBufferReference, jitKind, dataLogFArgumentsForHeading) \ + FINALIZE_CODE_IF((Options::showDisassembly() || Options::showDFGDisassembly()), linkBufferReference, jitKind, dataLogFArgumentsForHeading) template <typename MacroAssembler, template <typename T> class ExecutableOffsetCalculator> @@ -302,13 +302,13 @@ inline typename LinkBufferBase<MacroAssembler, ExecutableOffsetCalculator>::Code } template <typename MacroAssembler, template <typename T> class ExecutableOffsetCalculator> -inline typename LinkBufferBase<MacroAssembler, ExecutableOffsetCalculator>::CodeRef LinkBufferBase<MacroAssembler, ExecutableOffsetCalculator>::finalizeCodeWithDisassembly(const char* format, ...) +inline typename LinkBufferBase<MacroAssembler, ExecutableOffsetCalculator>::CodeRef LinkBufferBase<MacroAssembler, ExecutableOffsetCalculator>::finalizeCodeWithDisassembly(const char *jitKind, const char* format, ...) { ASSERT(Options::showDisassembly() || Options::showDFGDisassembly()); CodeRef result = finalizeCodeWithoutDisassembly(); - dataLogF("Generated JIT code for "); + dataLogF("Generated %s code for ", jitKind); va_list argList; va_start(argList, format); WTF::dataLogFV(format, argList); diff --git a/src/3rdparty/masm/stubs/WTFStubs.cpp b/src/3rdparty/masm/stubs/WTFStubs.cpp index ea7e2d78e0..b26d10b3ab 100644 --- a/src/3rdparty/masm/stubs/WTFStubs.cpp +++ b/src/3rdparty/masm/stubs/WTFStubs.cpp @@ -91,7 +91,7 @@ void dataLogFV(const char* format, va_list args) { char buffer[1024]; qvsnprintf(buffer, sizeof(buffer), format, args); - qDebug("%s", buffer); + qDebug().nospace().noquote() << buffer; } void dataLogF(const char* format, ...) @@ -101,12 +101,12 @@ void dataLogF(const char* format, ...) va_start(args, format); qvsnprintf(buffer, sizeof(buffer), format, args); va_end(args); - qDebug("%s", buffer); + qDebug().nospace().noquote() << buffer; } void dataLogFString(const char* str) { - qDebug("%s", str); + qDebug().nospace().noquote() << str; } } diff --git a/src/3rdparty/masm/yarr/YarrJIT.cpp b/src/3rdparty/masm/yarr/YarrJIT.cpp index 056de2dbde..ce7c7163ed 100644 --- a/src/3rdparty/masm/yarr/YarrJIT.cpp +++ b/src/3rdparty/masm/yarr/YarrJIT.cpp @@ -3521,14 +3521,14 @@ public: if (compileMode == MatchOnly) { if (m_charSize == Char8) - codeBlock.set8BitCodeMatchOnly(FINALIZE_CODE(linkBuffer, "Match-only 8-bit regular expression")); + codeBlock.set8BitCodeMatchOnly(FINALIZE_CODE(linkBuffer, "YarJIT", "Match-only 8-bit regular expression")); else - codeBlock.set16BitCodeMatchOnly(FINALIZE_CODE(linkBuffer, "Match-only 16-bit regular expression")); + codeBlock.set16BitCodeMatchOnly(FINALIZE_CODE(linkBuffer, "YarJIT", "Match-only 16-bit regular expression")); } else { if (m_charSize == Char8) - codeBlock.set8BitCode(FINALIZE_CODE(linkBuffer, "8-bit regular expression")); + codeBlock.set8BitCode(FINALIZE_CODE(linkBuffer, "YarJIT", "8-bit regular expression")); else - codeBlock.set16BitCode(FINALIZE_CODE(linkBuffer, "16-bit regular expression")); + codeBlock.set16BitCode(FINALIZE_CODE(linkBuffer, "YarJIT", "16-bit regular expression")); } if (m_failureReason) codeBlock.setFallBackWithFailureReason(*m_failureReason); diff --git a/src/qml/jit/qv4assemblercommon.cpp b/src/qml/jit/qv4assemblercommon.cpp index 79a8237878..0ae4da17fa 100644 --- a/src/qml/jit/qv4assemblercommon.cpp +++ b/src/qml/jit/qv4assemblercommon.cpp @@ -126,7 +126,7 @@ static QByteArray functionName(Function *function) JIT::PlatformAssemblerCommon::~PlatformAssemblerCommon() {} -void PlatformAssemblerCommon::link(Function *function) +void PlatformAssemblerCommon::link(Function *function, const char *jitKind) { for (const auto &jumpTarget : jumpsToLink) jumpTarget.jump.linkTo(labelForOffset[jumpTarget.offset], this); @@ -148,7 +148,7 @@ void PlatformAssemblerCommon::link(Function *function) WTF::setDataFile(new QIODevicePrintStream(&buf)); QByteArray name = functionName(function); - codeRef = linkBuffer.finalizeCodeWithDisassembly("%s", name.constData()); + codeRef = linkBuffer.finalizeCodeWithDisassembly(jitKind, "%s", name.constData()); WTF::setDataFile(stderr); printDisassembledOutputWithCalls(buf.data(), functions); diff --git a/src/qml/jit/qv4assemblercommon_p.h b/src/qml/jit/qv4assemblercommon_p.h index a48d6fae44..d64b9d0e5d 100644 --- a/src/qml/jit/qv4assemblercommon_p.h +++ b/src/qml/jit/qv4assemblercommon_p.h @@ -645,7 +645,7 @@ public: ehTargets.push_back({ label, offset }); } - void link(Function *function); + void link(Function *function, const char *jitKind); Value constant(int idx) const { return constantTable[idx]; } diff --git a/src/qml/jit/qv4baselineassembler.cpp b/src/qml/jit/qv4baselineassembler.cpp index 5950901499..c822a0f371 100644 --- a/src/qml/jit/qv4baselineassembler.cpp +++ b/src/qml/jit/qv4baselineassembler.cpp @@ -827,7 +827,7 @@ void BaselineAssembler::generateEpilogue() void BaselineAssembler::link(Function *function) { - pasm()->link(function); + pasm()->link(function, "BaselineJIT"); } void BaselineAssembler::addLabel(int offset) |