mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 04:38:24 +00:00
Add special code to make printing SSA form machine instructions nicer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4446 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -266,17 +266,28 @@ static void print(const MachineOperand &MO, std::ostream &OS,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MachineInstr::print(std::ostream &OS, const TargetMachine &TM) {
|
void MachineInstr::print(std::ostream &OS, const TargetMachine &TM) {
|
||||||
OS << TM.getInstrInfo().getName(getOpcode());
|
unsigned StartOp = 0;
|
||||||
for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
|
|
||||||
OS << "\t";
|
|
||||||
::print(getOperand(i), OS, TM);
|
|
||||||
|
|
||||||
|
// Specialize printing if op#0 is definition
|
||||||
|
if (getNumOperands() && operandIsDefined(0)) {
|
||||||
|
::print(getOperand(0), OS, TM);
|
||||||
|
OS << " = ";
|
||||||
|
++StartOp; // Don't print this operand again!
|
||||||
|
}
|
||||||
|
OS << TM.getInstrInfo().getName(getOpcode());
|
||||||
|
|
||||||
|
for (unsigned i = StartOp, e = getNumOperands(); i != e; ++i) {
|
||||||
|
if (i != StartOp)
|
||||||
|
OS << ",";
|
||||||
|
OS << " ";
|
||||||
|
::print(getOperand(i), OS, TM);
|
||||||
|
|
||||||
if (operandIsDefinedAndUsed(i))
|
if (operandIsDefinedAndUsed(i))
|
||||||
OS << "<def&use>";
|
OS << "<def&use>";
|
||||||
else if (operandIsDefined(i))
|
else if (operandIsDefined(i))
|
||||||
OS << "<def>";
|
OS << "<def>";
|
||||||
}
|
}
|
||||||
|
|
||||||
// code for printing implict references
|
// code for printing implict references
|
||||||
if (getNumImplicitRefs()) {
|
if (getNumImplicitRefs()) {
|
||||||
OS << "\tImplicitRefs: ";
|
OS << "\tImplicitRefs: ";
|
||||||
|
Reference in New Issue
Block a user