mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-15 05:24:01 +00:00
Add {MCInst,MCOperand}::{print,dump}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80231 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -22,6 +22,7 @@
|
|||||||
#include "llvm/Support/DebugLoc.h"
|
#include "llvm/Support/DebugLoc.h"
|
||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
|
class raw_ostream;
|
||||||
|
|
||||||
/// MCOperand - Instances of this class represent operands of the MCInst class.
|
/// MCOperand - Instances of this class represent operands of the MCInst class.
|
||||||
/// This is a simple discriminated union.
|
/// This is a simple discriminated union.
|
||||||
@ -119,6 +120,9 @@ public:
|
|||||||
Op.MCValueVal = Val;
|
Op.MCValueVal = Val;
|
||||||
return Op;
|
return Op;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void print(raw_ostream &OS) const;
|
||||||
|
void dump() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -142,6 +146,9 @@ public:
|
|||||||
void addOperand(const MCOperand &Op) {
|
void addOperand(const MCOperand &Op) {
|
||||||
Operands.push_back(Op);
|
Operands.push_back(Op);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void print(raw_ostream &OS) const;
|
||||||
|
void dump() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ add_llvm_library(LLVMMC
|
|||||||
MCAssembler.cpp
|
MCAssembler.cpp
|
||||||
MCCodeEmitter.cpp
|
MCCodeEmitter.cpp
|
||||||
MCContext.cpp
|
MCContext.cpp
|
||||||
|
MCInst.cpp
|
||||||
MCMachOStreamer.cpp
|
MCMachOStreamer.cpp
|
||||||
MCNullStreamer.cpp
|
MCNullStreamer.cpp
|
||||||
MCSection.cpp
|
MCSection.cpp
|
||||||
|
52
lib/MC/MCInst.cpp
Normal file
52
lib/MC/MCInst.cpp
Normal file
@ -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";
|
||||||
|
}
|
Reference in New Issue
Block a user