116 const char *code,
int len,
int nLocals,
int nFormals,
int beginOffset,
int endOffset,
117 const QList<CompiledData::CodeOffsetToLineAndStatement> &lineAndStatementNumberMapping)
119 Q_ASSERT(beginOffset <= endOffset && 0 <= beginOffset && endOffset <= len);
124 return entry.codeOffset < offset;
128 QTextStream s{ &output };
132 const char *start = code;
133 const char *end = code + (endOffset - beginOffset) + 1;
135 const auto codeToLine = std::lower_bound(
136 lineAndStatementNumberMapping.constBegin(),
137 lineAndStatementNumberMapping.constEnd(),
138 static_cast<uint>(code - start + beginOffset) + 1, findLine) - 1;
139 int line =
int(codeToLine->line);
140 if (line != lastLine)
145 int codeOffset =
int(code - start);
150 s << dumpRegister(reg, nFormals);
154 s << dumpRegister(reg, nFormals);
158 s << dumpRegister(srcReg, nFormals) <<
", " << dumpRegister(destReg, nFormals);
189 s <<
"C" << constIndex <<
", " << dumpRegister(destTemp, nFormals);
196 s <<
"a" << (index - nLocals);
203 s <<
"a" << (index - nLocals);
208 s <<
"l" << index <<
"@" << scope;
210 s <<
"a" << (index - nLocals) <<
"@" << scope;
215 s <<
", " <<
"l" << index <<
"@" << scope;
217 s <<
", " <<
"a" << (index - nLocals) <<
"@" << scope;
225 s << regExpId <<
", " << dumpRegister(destReg, nFormals);
253 s << dumpRegister(base, nFormals) <<
"[acc]";
257 s << dumpRegister(base, nFormals) <<
"[" << dumpRegister(index, nFormals) <<
"]";
261 s <<
"acc[" << name <<
"]";
269 s <<
"acc(" << index <<
")";
277 s << dumpRegister(base, nFormals) <<
"[" << name<<
"]";
281 s << dumpRegister(base, nFormals) <<
"(" << index <<
")";
285 s << dumpRegister(property, nFormals);
289 s << dumpRegister(property, nFormals);
303 s << dumpRegister(name, nFormals) << dumpArguments(argc, argv, nFormals);
307 s << dumpRegister(name, nFormals) << dumpRegister(thisObject, nFormals)
308 << dumpArguments(argc, argv, nFormals);
312 s << dumpRegister(base, nFormals) <<
"." << name << dumpArguments(argc, argv, nFormals)
317 s << dumpRegister(base, nFormals) <<
"." << lookupIndex
318 << dumpArguments(argc, argv, nFormals);
322 s << name << dumpArguments(argc, argv, nFormals);
326 s << dumpArguments(argc, argv, nFormals);
330 s << index << dumpArguments(argc, argv, nFormals);
334 s << index << dumpArguments(argc, argv, nFormals);
338 s <<
"new " << dumpRegister(func, nFormals) << dumpRegister(thisObject, nFormals)
339 << dumpArguments(argc, argv, nFormals);
343 s <<
"new " << dumpRegister(func, nFormals) << dumpArguments(argc, argv, nFormals);
347 s <<
"new " << dumpRegister(func, nFormals) << dumpArguments(argc, argv, nFormals);
381 s << index <<
", " << name;
413 s << dumpRegister(iterator, nFormals) <<
", " << dumpRegister(object, nFormals)
424 s << dumpRegister(base, nFormals) <<
"[" << dumpRegister(index, nFormals) <<
"]";
439 s << isDeletable <<
", " << varName;
443 s << dumpRegister(args, nFormals) <<
", " << argc;
449 <<
", " << dumpRegister(args, nFormals);
454 <<
", " << dumpRegister(heritage, nFormals)
455 <<
", " << dumpRegister(computedNames, nFormals);
515 s << dumpRegister(lhs, nFormals);
519 s << dumpRegister(lhs, nFormals);
523 s << dumpRegister(lhs, nFormals);
527 s << dumpRegister(lhs, nFormals);
531 s << dumpRegister(lhs, nFormals);
535 s << dumpRegister(lhs, nFormals);
539 s << dumpRegister(lhs, nFormals);
543 s << dumpRegister(lhs, nFormals);
565 s << dumpRegister(lhs, nFormals) <<
", acc";
569 s << dumpRegister(lhs, nFormals) <<
", acc";
573 s << dumpRegister(lhs, nFormals) <<
", acc";
577 s << dumpRegister(lhs, nFormals) <<
", acc";
581 s << dumpRegister(lhs, nFormals) <<
", acc";
585 s << dumpRegister(lhs, nFormals) <<
", acc";
589 s << dumpRegister(lhs, nFormals) <<
", acc";
617 s << dumpRegister(lhs, nFormals) <<
", acc";
621 s << dumpRegister(lhs, nFormals) <<
", acc";
625 s << dumpRegister(lhs, nFormals) <<
", acc";
629 s << dumpRegister(lhs, nFormals) <<
", acc";
633 s << dumpRegister(lhs, nFormals) <<
", acc";
637 s << dumpRegister(lhs, nFormals) <<
", acc";
641 s << dumpRegister(lhs, nFormals) <<
", acc";
645 s << dumpRegister(lhs, nFormals) <<
", acc";
655 s << dumpRegister(firstReg, nFormals) <<
", " << count;
666 s << dumpRegister(func, nFormals) << dumpRegister(thisObject, nFormals) << dumpArguments(argc, argv, nFormals);