12c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar//===- lib/MC/MCValue.cpp - MCValue implementation ------------------------===// 22c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar// 32c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar// The LLVM Compiler Infrastructure 42c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar// 52c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar// This file is distributed under the University of Illinois Open Source 62c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar// License. See LICENSE.TXT for details. 72c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar// 82c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar//===----------------------------------------------------------------------===// 92c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar 102c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar#include "llvm/MC/MCValue.h" 119a1d20042f6a6ec648a3588f9b13264a4570aab0Daniel Dunbar#include "llvm/MC/MCExpr.h" 1224c802bc8d6b3e248b4bc4e5951c88127dd799d6David Greene#include "llvm/Support/Debug.h" 132c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar#include "llvm/Support/raw_ostream.h" 142c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar 152c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbarusing namespace llvm; 162c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar 17684c593d05db0bd277268fc9d8c05bce138c745aChris Lattnervoid MCValue::print(raw_ostream &OS, const MCAsmInfo *MAI) const { 182c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar if (isAbsolute()) { 192c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar OS << getConstant(); 202c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar return; 212c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar } 222c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar 239a1d20042f6a6ec648a3588f9b13264a4570aab0Daniel Dunbar getSymA()->print(OS); 241689e0cf55205042b830fdbe3fc5f7b483997334Daniel Dunbar 259a1d20042f6a6ec648a3588f9b13264a4570aab0Daniel Dunbar if (getSymB()) { 269a1d20042f6a6ec648a3588f9b13264a4570aab0Daniel Dunbar OS << " - "; 279a1d20042f6a6ec648a3588f9b13264a4570aab0Daniel Dunbar getSymB()->print(OS); 289a1d20042f6a6ec648a3588f9b13264a4570aab0Daniel Dunbar } 291689e0cf55205042b830fdbe3fc5f7b483997334Daniel Dunbar 302c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar if (getConstant()) 312c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar OS << " + " << getConstant(); 322c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar} 332c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar 34286c4dc355b8be6806081b23c3097485821c7642Manman Ren#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) 352c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbarvoid MCValue::dump() const { 3624c802bc8d6b3e248b4bc4e5951c88127dd799d6David Greene print(dbgs(), 0); 372c11624b65a65fe487f335603dc0bf6372a50a89Daniel Dunbar} 38cc77eece74c8db09acc2af425e7e6c88a5bb30d1Manman Ren#endif 39