summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2011-09-15 23:38:46 +0000
committerOwen Anderson <resistor@mac.com>2011-09-15 23:38:46 +0000
commit98c5ddabca1debf935a07d14d0cbc9732374bdb8 (patch)
tree74e944d1e23e4ead852d53c54a5946ae6f1e56f8 /include
parent71280b55a3406c7dd4215449bf4a3ab216e78ffd (diff)
downloadllvm-98c5ddabca1debf935a07d14d0cbc9732374bdb8.tar.gz
llvm-98c5ddabca1debf935a07d14d0cbc9732374bdb8.tar.bz2
llvm-98c5ddabca1debf935a07d14d0cbc9732374bdb8.tar.xz
Don't attach annotations to MCInst's. Instead, have the disassembler return, and the printer accept, an annotation string which can be passed through if the client cares about annotations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139876 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/MC/MCDisassembler.h4
-rw-r--r--include/llvm/MC/MCInst.h14
-rw-r--r--include/llvm/MC/MCInstPrinter.h10
3 files changed, 9 insertions, 19 deletions
diff --git a/include/llvm/MC/MCDisassembler.h b/include/llvm/MC/MCDisassembler.h
index 404b8aa985..f7a9f1c9d9 100644
--- a/include/llvm/MC/MCDisassembler.h
+++ b/include/llvm/MC/MCDisassembler.h
@@ -70,6 +70,7 @@ public:
/// @param address - The address, in the memory space of region, of the first
/// byte of the instruction.
/// @param vStream - The stream to print warnings and diagnostic messages on.
+ /// @param cStream - The stream to print comments and annotations on.
/// @return - MCDisassembler::Success if the instruction is valid,
/// MCDisassembler::SoftFail if the instruction was
/// disassemblable but invalid,
@@ -78,7 +79,8 @@ public:
uint64_t& size,
const MemoryObject &region,
uint64_t address,
- raw_ostream &vStream) const = 0;
+ raw_ostream &vStream,
+ raw_ostream &cStream) const = 0;
/// getEDInfo - Returns the enhanced instruction information corresponding to
/// the disassembler.
diff --git a/include/llvm/MC/MCInst.h b/include/llvm/MC/MCInst.h
index d443536d40..d384764774 100644
--- a/include/llvm/MC/MCInst.h
+++ b/include/llvm/MC/MCInst.h
@@ -129,7 +129,6 @@ public:
class MCInst {
unsigned Opcode;
SmallVector<MCOperand, 8> Operands;
- SmallVector<std::string, 1> Annotations;
public:
MCInst() : Opcode(0) {}
@@ -145,15 +144,7 @@ public:
Operands.push_back(Op);
}
- void addAnnotation(const std::string &Annot) {
- Annotations.push_back(Annot);
- }
-
- void clear() {
- Operands.clear();
- Annotations.clear();
- }
-
+ void clear() { Operands.clear(); }
size_t size() { return Operands.size(); }
typedef SmallVector<MCOperand, 8>::iterator iterator;
@@ -163,9 +154,6 @@ public:
return Operands.insert(I, Op);
}
- size_t getNumAnnotations() const { return Annotations.size(); }
- std::string getAnnotation(size_t i) const { return Annotations[i]; }
-
void print(raw_ostream &OS, const MCAsmInfo *MAI) const;
void dump() const;
diff --git a/include/llvm/MC/MCInstPrinter.h b/include/llvm/MC/MCInstPrinter.h
index 4c12d10d5b..01ad2d3f80 100644
--- a/include/llvm/MC/MCInstPrinter.h
+++ b/include/llvm/MC/MCInstPrinter.h
@@ -28,6 +28,9 @@ protected:
/// The current set of available features.
unsigned AvailableFeatures;
+
+ /// Utility function for printing annotations.
+ void printAnnotation(raw_ostream &OS, StringRef Annot);
public:
MCInstPrinter(const MCAsmInfo &mai)
: CommentStream(0), MAI(mai), AvailableFeatures(0) {}
@@ -39,11 +42,8 @@ public:
/// printInst - Print the specified MCInst to the specified raw_ostream.
///
- virtual void printInst(const MCInst *MI, raw_ostream &OS) = 0;
-
- /// printAnnotations - Print the annotation comments attached to specified
- /// MCInst to the specified raw_ostream.
- void printAnnotations(const MCInst *MI, raw_ostream &OS);
+ virtual void printInst(const MCInst *MI, raw_ostream &OS,
+ StringRef Annot) = 0;
/// getOpcodeName - Return the name of the specified opcode enum (e.g.
/// "MOV32ri") or empty if we can't resolve it.