mirror of
https://github.com/intel/llvm.git
synced 2026-01-13 19:08:21 +08:00
Add printing support for indirect tail calls.
Summary: LLVM was missing assembler print string for indirect tail calls which are synthetic instructions created by us. (cherry picked from FBD3640197)
This commit is contained in:
@@ -289,11 +289,7 @@ void BinaryContext::printInstruction(raw_ostream &OS,
|
||||
OS << "\n";
|
||||
return;
|
||||
}
|
||||
if (!MIA->isUnsupported(Instruction)) {
|
||||
InstPrinter->printInst(&Instruction, OS, "", *STI);
|
||||
} else {
|
||||
OS << "unsupported (probably jmpr)";
|
||||
}
|
||||
InstPrinter->printInst(&Instruction, OS, "", *STI);
|
||||
if (MIA->isCall(Instruction)) {
|
||||
if (MIA->isTailCall(Instruction))
|
||||
OS << " # TAILCALL ";
|
||||
|
||||
@@ -386,15 +386,6 @@ bool BinaryFunction::disassemble(ArrayRef<uint8_t> FunctionData) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (MIA->isUnsupported(Instruction)) {
|
||||
errs() << "BOLT-WARNING: unsupported instruction seen at offset 0x"
|
||||
<< Twine::utohexstr(Offset) << " (address 0x"
|
||||
<< Twine::utohexstr(AbsoluteInstrAddr) << ") in function "
|
||||
<< getName() << '\n';
|
||||
IsSimple = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// Convert instruction to a shorter version that could be relaxed if needed.
|
||||
MIA->shortenInstruction(Instruction);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user