5#include <private/qv4compileddata_p.h>
6#include <private/qv4calldata_p.h>
8#include <QtCore/qdebug.h>
15#define MOTH_RETURN_INSTR_SIZE(I) case Instr::Type::I: case Instr::Type::I##_Wide: return InstrMeta<int(Instr::Type::I)>::Size;
19#undef MOTH_RETURN_INSTR_SIZE
50#define ABSOLUTE_OFFSET() \
51 (code + beginOffset - start + offset)
53#define MOTH_BEGIN_INSTR(instr) \
55 INSTR_##instr(MOTH_DECODE_WITH_BASE) \
56 if (static_cast<int>(Instr::Type::instr) >= 0x100) \
58 s << alignedLineNumber(line) << alignedNumber(beginOffset + codeOffset).constData() << ": " \
59 << rawBytes(base_ptr, int(code - base_ptr)) << #instr << " ";
61#define MOTH_END_INSTR(instr) \
108 const char *code,
int len,
int nLocals,
int nFormals,
int ,
111 return dumpBytecode(code,
len, nLocals, nFormals, 0,
len - 1, lineAndStatementNumberMapping);
115 const char *code,
int len,
int nLocals,
int nFormals,
int beginOffset,
int endOffset,
118 Q_ASSERT(beginOffset <= endOffset && 0 <= beginOffset && endOffset <=
len);
131 const char *
start = code;
132 const char *
end = code + (endOffset - beginOffset) + 1;
134 const auto codeToLine = std::lower_bound(
136 lineAndStatementNumberMapping.
constEnd(),
137 static_cast<uint>(code -
start + beginOffset) + 1, findLine) - 1;
138 int line = int(codeToLine->line);
139 if (
line != lastLine)
144 int codeOffset = int(code -
start);
188 s <<
dumpRegister(destTemp, nFormals) <<
", C" << constIndex;
195 s <<
"a" << (
index - nLocals);
202 s <<
"a" << (
index - nLocals);
207 s <<
"l" <<
index <<
"@" << scope;
209 s <<
"a" << (
index - nLocals) <<
"@" << scope;
214 s <<
", " <<
"l" <<
index <<
"@" << scope;
216 s <<
", " <<
"a" << (
index - nLocals) <<
"@" << scope;
260 s <<
"acc[" <<
name <<
"]";
268 s <<
"acc(" <<
index <<
")";
438 s << isDeletable <<
", " << varName;
qsizetype size() const noexcept
Returns the number of bytes in this byte array.
static QByteArray number(int, int base=10)
Returns a byte-array representing the whole number n as text.
const_iterator constBegin() const noexcept
const_iterator constEnd() const noexcept
\macro QT_RESTRICTED_CAST_FROM_ASCII
static QString number(int, int base=10)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Combined button and popup list for selecting options.
QString dumpBytecode(const char *code, int len, int nLocals, int nFormals, int, const QVector< CompiledData::CodeOffsetToLineAndStatement > &lineAndStatementNumberMapping)
QString dumpRegister(int reg, int nFormals)
QString dumpArguments(int argc, int argv, int nFormals)
\qmltype Particle \inqmlmodule QtQuick.Particles
#define Q_STATIC_ASSERT(Condition)
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction function
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLenum GLuint GLint level
GLenum GLenum GLsizei count
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLuint GLintptr offset
#define QStringLiteral(str)
#define ABSOLUTE_OFFSET()
static QByteArray rawBytes(const char *data, int n)
static QByteArray alignedLineNumber(int line)
#define MOTH_RETURN_INSTR_SIZE(I)
#define MOTH_BEGIN_INSTR(instr)
#define MOTH_END_INSTR(instr)
static QByteArray alignedNumber(int n)
#define MOTH_COLLECT_NARGS(instr)
#define FOR_EACH_MOTH_INSTR_ALL(F)
QT_BEGIN_NAMESPACE typedef uchar * output
static constexpr int HeaderSize()
static const int argumentCount[]
static int size(Instr::Type type)