8#include <assembler/MacroAssemblerCodeRef.h>
10#include <QtCore/qfile.h>
11#include <QtCore/qcoreapplication.h>
25 static bool doProfile = !qEnvironmentVariableIsEmpty(
"QV4_PROFILE_WRITE_PERF_MAP");
26 if (Q_UNLIKELY(doProfile)) {
27 static QFile perfMapFile(QString::fromLatin1(
"/tmp/perf-%1.map")
28 .arg(QCoreApplication::applicationPid()));
29 static const bool isOpen = perfMapFile.open(QIODevice::WriteOnly);
31 qWarning(
"QV4::JIT::Assembler: Cannot write perf map file.");
34 const void *address = codeRef->code().executableAddress();
35 perfMapFile.write(QByteArray::number(
reinterpret_cast<quintptr>(address), 16));
36 perfMapFile.putChar(
' ');
37 perfMapFile.write(QByteArray::number(
static_cast<qsizetype>(codeRef->size()), 16));
38 perfMapFile.putChar(
' ');
39 perfMapFile.write(Function::prettyName(function, address).toUtf8());
40 perfMapFile.putChar(
'\n');
size_t exceptionHandlerSize()
void generateFunctionTable(Function *function, JSC::MacroAssemblerCodeRef *codeRef)
void destroyFunctionTable(Function *function, JSC::MacroAssemblerCodeRef *codeRef)