forked from OSchip/llvm-project
parent
d18dd1d5f8
commit
212b6d8a57
|
@ -22,6 +22,7 @@
|
|||
#include "llvm/Support/DebugLoc.h"
|
||||
|
||||
namespace llvm {
|
||||
class raw_ostream;
|
||||
|
||||
/// MCOperand - Instances of this class represent operands of the MCInst class.
|
||||
/// This is a simple discriminated union.
|
||||
|
@ -119,6 +120,9 @@ public:
|
|||
Op.MCValueVal = Val;
|
||||
return Op;
|
||||
}
|
||||
|
||||
void print(raw_ostream &OS) const;
|
||||
void dump() const;
|
||||
};
|
||||
|
||||
|
||||
|
@ -142,6 +146,9 @@ public:
|
|||
void addOperand(const MCOperand &Op) {
|
||||
Operands.push_back(Op);
|
||||
}
|
||||
|
||||
void print(raw_ostream &OS) const;
|
||||
void dump() const;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ add_llvm_library(LLVMMC
|
|||
MCAssembler.cpp
|
||||
MCCodeEmitter.cpp
|
||||
MCContext.cpp
|
||||
MCInst.cpp
|
||||
MCMachOStreamer.cpp
|
||||
MCNullStreamer.cpp
|
||||
MCSection.cpp
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
//===- lib/MC/MCInst.cpp - MCInst implementation --------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/MC/MCInst.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
void MCOperand::print(raw_ostream &OS) const {
|
||||
OS << "<MCOperand ";
|
||||
if (!isValid())
|
||||
OS << "INVALID";
|
||||
else if (isReg())
|
||||
OS << "Reg:" << getReg();
|
||||
else if (isImm())
|
||||
OS << "Imm:" << getImm();
|
||||
else if (isMBBLabel())
|
||||
OS << "MBB:(" << getMBBLabelFunction() << ","
|
||||
<< getMBBLabelBlock() << ")";
|
||||
else if (isMCValue()) {
|
||||
OS << "Value:(";
|
||||
getMCValue().print(OS);
|
||||
OS << ")";
|
||||
} else
|
||||
OS << "UNDEFINED";
|
||||
OS << ">";
|
||||
}
|
||||
|
||||
void MCOperand::dump() const {
|
||||
print(errs());
|
||||
errs() << "\n";
|
||||
}
|
||||
|
||||
void MCInst::print(raw_ostream &OS) const {
|
||||
OS << "<MCInst " << getOpcode();
|
||||
for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
|
||||
OS << " ";
|
||||
getOperand(i).print(OS);
|
||||
}
|
||||
OS << ">";
|
||||
}
|
||||
|
||||
void MCInst::dump() const {
|
||||
print(errs());
|
||||
errs() << "\n";
|
||||
}
|
Loading…
Reference in New Issue