llvm-6502/lib/MC/MCValue.cpp
Tim Northover 8a272f00a0 MC: add a RefKind field to MCValue
This is principally to allow neater mapping of fixups to relocations
in ARM64 ELF. Without this, there isn't enough information available
to GetRelocType, leading to many more fixup_arm64_... enumerators.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205085 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-29 08:22:20 +00:00

44 lines
1.0 KiB
C++

//===- 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/MC/MCExpr.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
void MCValue::print(raw_ostream &OS, const MCAsmInfo *MAI) const {
if (isAbsolute()) {
OS << getConstant();
return;
}
// FIXME: prints as a number, which isn't ideal. But the meaning will be
// target-specific anyway.
if (getRefKind())
OS << ':' << getRefKind() << ':';
getSymA()->print(OS);
if (getSymB()) {
OS << " - ";
getSymB()->print(OS);
}
if (getConstant())
OS << " + " << getConstant();
}
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
void MCValue::dump() const {
print(dbgs(), 0);
}
#endif