diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-08-14 03:11:09 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-08-14 03:11:09 +0000 |
commit | 2c11624b65a65fe487f335603dc0bf6372a50a89 (patch) | |
tree | c8755f42fc8aab99157fdd4c869f3bda15ad1e27 | |
parent | 7b7f51425e1626485f232ca57c135e30b6785be7 (diff) | |
download | llvm-2c11624b65a65fe487f335603dc0bf6372a50a89.tar.gz llvm-2c11624b65a65fe487f335603dc0bf6372a50a89.tar.bz2 llvm-2c11624b65a65fe487f335603dc0bf6372a50a89.tar.xz |
Add MCValue::{print, dump}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78982 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/MC/MCValue.h | 7 | ||||
-rw-r--r-- | lib/MC/MCValue.cpp | 30 |
2 files changed, 37 insertions, 0 deletions
diff --git a/include/llvm/MC/MCValue.h b/include/llvm/MC/MCValue.h index d032f170c3..ee5ba84dd0 100644 --- a/include/llvm/MC/MCValue.h +++ b/include/llvm/MC/MCValue.h @@ -20,6 +20,7 @@ namespace llvm { class MCSymbol; +class raw_ostream; /// MCValue - This represents an "assembler immediate". In its most general /// form, this can hold "SymbolA - SymbolB + imm64". Not all targets supports @@ -52,6 +53,12 @@ public: return SymA ? SymA->getSection() : 0; } + /// print - Print the value to the stream \arg OS. + void print(raw_ostream &OS) const; + + /// dump - Print the value to stderr. + void dump() const; + static MCValue get(MCSymbol *SymA, MCSymbol *SymB = 0, int64_t Val = 0) { MCValue R; assert((!SymB || SymA) && "Invalid relocatable MCValue!"); diff --git a/lib/MC/MCValue.cpp b/lib/MC/MCValue.cpp new file mode 100644 index 0000000000..9c7317096c --- /dev/null +++ b/lib/MC/MCValue.cpp @@ -0,0 +1,30 @@ +//===- lib/MC/MCValue.cpp - MCValue 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/MCValue.h" +#include "llvm/Support/raw_ostream.h" + +using namespace llvm; + +void MCValue::print(raw_ostream &OS) const { + if (isAbsolute()) { + OS << getConstant(); + return; + } + + OS << getSymA(); + if (getSymB()) + OS << " - " << getSymB(); + if (getConstant()) + OS << " + " << getConstant(); +} + +void MCValue::dump() const { + print(errs()); +} |