Merge IsFixupFullyResolved and IsSymbolRefDifferenceFullyResolved. We now

have a single point where targets test if a relocation is needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122549 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2010-12-24 21:22:02 +00:00
parent a112087e42
commit fea753b397
6 changed files with 108 additions and 223 deletions

View File

@@ -21,6 +21,7 @@ class MCAssembler;
class MCFixup;
class MCFragment;
class MCSymbol;
class MCSymbolData;
class MCSymbolRefExpr;
class MCValue;
class raw_ostream;
@@ -84,21 +85,19 @@ public:
///
/// Clients are not required to answer precisely and may conservatively return
/// false, even when a difference is fully resolved.
virtual bool
bool
IsSymbolRefDifferenceFullyResolved(const MCAssembler &Asm,
const MCSymbolRefExpr *A,
const MCSymbolRefExpr *B,
bool InSet) const;
/// Check if a fixup is fully resolved.
///
/// This routine is used by the assembler to let the file format decide
/// if a fixup is not fully resolved. For example, one that crosses
/// two sections on ELF.
virtual bool IsFixupFullyResolved(const MCAssembler &Asm,
const MCValue Target,
bool IsPCRel,
const MCFragment *DF) const = 0;
virtual bool
IsSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm,
const MCSymbolData &DataA,
const MCFragment &FB,
bool InSet,
bool IsPCRel) const = 0;
/// Write the object file.
///