llvm-mc: Make MCValue take const MCSymbol*s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80078 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar 2009-08-26 09:16:46 +00:00
parent b58a804400
commit d644c32a52
2 changed files with 9 additions and 8 deletions

View File

@ -33,13 +33,13 @@ class raw_ostream;
/// Note that this class must remain a simple POD value class, because we need
/// it to live in unions etc.
class MCValue {
MCSymbol *SymA, *SymB;
const MCSymbol *SymA, *SymB;
int64_t Cst;
public:
int64_t getConstant() const { return Cst; }
MCSymbol *getSymA() const { return SymA; }
MCSymbol *getSymB() const { return SymB; }
const MCSymbol *getSymA() const { return SymA; }
const MCSymbol *getSymB() const { return SymB; }
/// isAbsolute - Is this an absolute (as opposed to relocatable) value.
bool isAbsolute() const { return !SymA && !SymB; }
@ -60,7 +60,8 @@ public:
/// dump - Print the value to stderr.
void dump() const;
static MCValue get(MCSymbol *SymA, MCSymbol *SymB = 0, int64_t Val = 0) {
static MCValue get(const MCSymbol *SymA, const MCSymbol *SymB = 0,
int64_t Val = 0) {
MCValue R;
assert((!SymB || SymA) && "Invalid relocatable MCValue!");
R.Cst = Val;

View File

@ -26,16 +26,16 @@ bool AsmExpr::EvaluateAsAbsolute(MCContext &Ctx, int64_t &Res) const {
return true;
}
static bool EvaluateSymbolicAdd(const MCValue &LHS, MCSymbol *RHS_A,
MCSymbol *RHS_B, int64_t RHS_Cst,
static bool EvaluateSymbolicAdd(const MCValue &LHS, const MCSymbol *RHS_A,
const MCSymbol *RHS_B, int64_t RHS_Cst,
MCValue &Res) {
// We can't add or subtract two symbols.
if ((LHS.getSymA() && RHS_A) ||
(LHS.getSymB() && RHS_B))
return false;
MCSymbol *A = LHS.getSymA() ? LHS.getSymA() : RHS_A;
MCSymbol *B = LHS.getSymB() ? LHS.getSymB() : RHS_B;
const MCSymbol *A = LHS.getSymA() ? LHS.getSymA() : RHS_A;
const MCSymbol *B = LHS.getSymB() ? LHS.getSymB() : RHS_B;
if (B) {
// If we have a negated symbol, then we must have also have a non-negated
// symbol in order to encode the expression. We can do this check later to