115 const char *code,
int len,
int nLocals,
int nFormals,
int beginOffset,
int endOffset,
116 const QVector<CompiledData::CodeOffsetToLineAndStatement> &lineAndStatementNumberMapping)
118 Q_ASSERT(beginOffset <= endOffset && 0 <= beginOffset && endOffset <= len);
123 return entry.codeOffset < offset;
127 QTextStream s{ &output };
131 const char *start = code;
132 const char *end = code + (endOffset - beginOffset) + 1;
134 const auto codeToLine = std::lower_bound(
135 lineAndStatementNumberMapping.constBegin(),
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);
149 s << dumpRegister(reg, nFormals);
153 s << dumpRegister(reg, nFormals);
157 s << dumpRegister(srcReg, nFormals) <<
", " << dumpRegister(destReg, nFormals);
188 s <<
"C" << constIndex <<
", " << dumpRegister(destTemp, nFormals);
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;
224 s << regExpId <<
", " << dumpRegister(destReg, nFormals);
252 s << dumpRegister(base, nFormals) <<
"[acc]";
256 s << dumpRegister(base, nFormals) <<
"[" << dumpRegister(index, nFormals) <<
"]";
260 s <<
"acc[" << name <<
"]";
268 s <<
"acc(" << index <<
")";
276 s << dumpRegister(base, nFormals) <<
"[" << name<<
"]";
280 s << dumpRegister(base, nFormals) <<
"(" << index <<
")";
284 s << dumpRegister(property, nFormals);
288 s << dumpRegister(property, nFormals);
302 s << dumpRegister(name, nFormals) << dumpArguments(argc, argv, nFormals);
306 s << dumpRegister(name, nFormals) << dumpRegister(thisObject, nFormals)
307 << dumpArguments(argc, argv, nFormals);
311 s << dumpRegister(base, nFormals) <<
"." << name << dumpArguments(argc, argv, nFormals)
316 s << dumpRegister(base, nFormals) <<
"." << lookupIndex
317 << dumpArguments(argc, argv, nFormals);
321 s << name << dumpArguments(argc, argv, nFormals);
325 s << dumpArguments(argc, argv, nFormals);
329 s << index << dumpArguments(argc, argv, nFormals);
333 s << index << dumpArguments(argc, argv, nFormals);
337 s <<
"new " << dumpRegister(func, nFormals) << dumpRegister(thisObject, nFormals)
338 << dumpArguments(argc, argv, nFormals);
342 s <<
"new " << dumpRegister(func, nFormals) << dumpArguments(argc, argv, nFormals);
346 s <<
"new " << dumpRegister(func, nFormals) << dumpArguments(argc, argv, nFormals);
380 s << index <<
", " << name;
412 s << dumpRegister(iterator, nFormals) <<
", " << dumpRegister(object, nFormals)
423 s << dumpRegister(base, nFormals) <<
"[" << dumpRegister(index, nFormals) <<
"]";
438 s << isDeletable <<
", " << varName;
442 s << dumpRegister(args, nFormals) <<
", " << argc;
448 <<
", " << dumpRegister(args, nFormals);
453 <<
", " << dumpRegister(heritage, nFormals)
454 <<
", " << dumpRegister(computedNames, nFormals);
514 s << dumpRegister(lhs, nFormals);
518 s << dumpRegister(lhs, nFormals);
522 s << dumpRegister(lhs, nFormals);
526 s << dumpRegister(lhs, nFormals);
530 s << dumpRegister(lhs, nFormals);
534 s << dumpRegister(lhs, nFormals);
538 s << dumpRegister(lhs, nFormals);
542 s << dumpRegister(lhs, nFormals);
564 s << dumpRegister(lhs, nFormals) <<
", acc";
568 s << dumpRegister(lhs, nFormals) <<
", acc";
572 s << dumpRegister(lhs, nFormals) <<
", acc";
576 s << dumpRegister(lhs, nFormals) <<
", acc";
580 s << dumpRegister(lhs, nFormals) <<
", acc";
584 s << dumpRegister(lhs, nFormals) <<
", acc";
588 s << dumpRegister(lhs, nFormals) <<
", acc";
616 s << dumpRegister(lhs, nFormals) <<
", acc";
620 s << dumpRegister(lhs, nFormals) <<
", acc";
624 s << dumpRegister(lhs, nFormals) <<
", acc";
628 s << dumpRegister(lhs, nFormals) <<
", acc";
632 s << dumpRegister(lhs, nFormals) <<
", acc";
636 s << dumpRegister(lhs, nFormals) <<
", acc";
640 s << dumpRegister(lhs, nFormals) <<
", acc";
644 s << dumpRegister(lhs, nFormals) <<
", acc";
654 s << dumpRegister(firstReg, nFormals) <<
", " << count;
665 s << dumpRegister(func, nFormals) << dumpRegister(thisObject, nFormals) << dumpArguments(argc, argv, nFormals);