mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-22 10:29:35 +00:00
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:
parent
b58a804400
commit
d644c32a52
@ -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;
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user