diff options
Diffstat (limited to 'src/qml/jit/qv4isel_masm.cpp')
-rw-r--r-- | src/qml/jit/qv4isel_masm.cpp | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index 71069d64a5..515b8aea4d 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -113,8 +113,7 @@ static void printDisassembledOutputWithCalls(QByteArray processedOutput, const Q { for (QHash<void*, const char*>::ConstIterator it = functions.begin(), end = functions.end(); it != end; ++it) { - QByteArray ptrString = QByteArray::number(quintptr(it.key()), 16); - ptrString.prepend("0x"); + const QByteArray ptrString = "0x" + QByteArray::number(quintptr(it.key()), 16); int idx = processedOutput.indexOf(ptrString); if (idx < 0) continue; @@ -191,11 +190,8 @@ JSC::MacroAssemblerCodeRef Assembler::link(int *codeSize) WTF::setDataFile(new QIODevicePrintStream(&buf)); name = _function->name->toUtf8(); - if (name.isEmpty()) { - name = QByteArray::number(quintptr(_function), 16); - name.prepend("IR::Function(0x"); - name.append(')'); - } + if (name.isEmpty()) + name = "IR::Function(0x" + QByteArray::number(quintptr(_function), 16) + ')'; codeRef = linkBuffer.finalizeCodeWithDisassembly("%s", name.data()); WTF::setDataFile(stderr); @@ -232,11 +228,8 @@ JSC::MacroAssemblerCodeRef Assembler::link(int *codeSize) // this may have been pre-populated, if QV4_SHOW_ASM was on if (name.isEmpty()) { name = _function->name->toUtf8(); - if (name.isEmpty()) { - name = QByteArray::number(quintptr(_function), 16); - name.prepend("IR::Function(0x"); - name.append(')'); - } + if (name.isEmpty()) + name = "IR::Function(0x" + QByteArray::number(quintptr(_function), 16) + ')'; } fprintf(pmap, "%llx %x %.*s\n", @@ -288,7 +281,7 @@ void InstructionSelection::run(int functionIndex) IR::Optimizer::showMeTheCode(_function, "After stack slot allocation"); calculateRegistersToSave(Assembler::getRegisterInfo()); // FIXME: this saves all registers. We can probably do with a subset: those that are not used by the register allocator. } - QSet<IR::Jump *> removableJumps = opt.calculateOptionalJumps(); + BitVector removableJumps = opt.calculateOptionalJumps(); qSwap(_removableJumps, removableJumps); Assembler* oldAssembler = _as; @@ -1389,7 +1382,7 @@ void InstructionSelection::constructValue(IR::Expr *value, IR::ExprList *args, I void InstructionSelection::visitJump(IR::Jump *s) { - if (!_removableJumps.contains(s)) + if (!_removableJumps.at(_block->index())) _as->jumpToBlock(_block, s->target); } |