mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-12-20 03:17:48 +00:00
MC: Tidy up formatting and doc comments. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239107 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -25,8 +25,8 @@ class MCFragment;
|
|||||||
class MCSymbolRefExpr;
|
class MCSymbolRefExpr;
|
||||||
class MCValue;
|
class MCValue;
|
||||||
|
|
||||||
/// MCObjectWriter - Defines the object file and target independent interfaces
|
/// Defines the object file and target independent interfaces used by the
|
||||||
/// used by the assembler backend to write native file format object files.
|
/// assembler backend to write native file format object files.
|
||||||
///
|
///
|
||||||
/// The object writer contains a few callbacks used by the assembler to allow
|
/// The object writer contains a few callbacks used by the assembler to allow
|
||||||
/// the object writer to modify the assembler data structures at appropriate
|
/// the object writer to modify the assembler data structures at appropriate
|
||||||
@@ -53,7 +53,7 @@ public:
|
|||||||
virtual ~MCObjectWriter();
|
virtual ~MCObjectWriter();
|
||||||
|
|
||||||
/// lifetime management
|
/// lifetime management
|
||||||
virtual void reset() { }
|
virtual void reset() {}
|
||||||
|
|
||||||
bool isLittleEndian() const { return IsLittleEndian; }
|
bool isLittleEndian() const { return IsLittleEndian; }
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@ public:
|
|||||||
/// \name High-Level API
|
/// \name High-Level API
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/// \brief Perform any late binding of symbols (for example, to assign symbol
|
/// Perform any late binding of symbols (for example, to assign symbol
|
||||||
/// indices for use when generating relocations).
|
/// indices for use when generating relocations).
|
||||||
///
|
///
|
||||||
/// This routine is called by the assembler after layout and relaxation is
|
/// This routine is called by the assembler after layout and relaxation is
|
||||||
@@ -70,7 +70,7 @@ public:
|
|||||||
virtual void ExecutePostLayoutBinding(MCAssembler &Asm,
|
virtual void ExecutePostLayoutBinding(MCAssembler &Asm,
|
||||||
const MCAsmLayout &Layout) = 0;
|
const MCAsmLayout &Layout) = 0;
|
||||||
|
|
||||||
/// \brief Record a relocation entry.
|
/// Record a relocation entry.
|
||||||
///
|
///
|
||||||
/// This routine is called by the assembler after layout and relaxation, and
|
/// This routine is called by the assembler after layout and relaxation, and
|
||||||
/// post layout binding. The implementation is responsible for storing
|
/// post layout binding. The implementation is responsible for storing
|
||||||
@@ -81,8 +81,8 @@ public:
|
|||||||
const MCFixup &Fixup, MCValue Target,
|
const MCFixup &Fixup, MCValue Target,
|
||||||
bool &IsPCRel, uint64_t &FixedValue) = 0;
|
bool &IsPCRel, uint64_t &FixedValue) = 0;
|
||||||
|
|
||||||
/// \brief Check whether the difference (A - B) between two symbol
|
/// Check whether the difference (A - B) between two symbol references is
|
||||||
/// references is fully resolved.
|
/// fully resolved.
|
||||||
///
|
///
|
||||||
/// Clients are not required to answer precisely and may conservatively return
|
/// Clients are not required to answer precisely and may conservatively return
|
||||||
/// false, even when a difference is fully resolved.
|
/// false, even when a difference is fully resolved.
|
||||||
@@ -97,26 +97,23 @@ public:
|
|||||||
bool InSet,
|
bool InSet,
|
||||||
bool IsPCRel) const;
|
bool IsPCRel) const;
|
||||||
|
|
||||||
/// \brief True if this symbol (which is a variable) is weak. This is not
|
/// True if this symbol (which is a variable) is weak. This is not
|
||||||
/// just STB_WEAK, but more generally whether or not we can evaluate
|
/// just STB_WEAK, but more generally whether or not we can evaluate
|
||||||
/// past it.
|
/// past it.
|
||||||
virtual bool isWeak(const MCSymbol &Sym) const;
|
virtual bool isWeak(const MCSymbol &Sym) const;
|
||||||
|
|
||||||
/// \brief Write the object file.
|
/// Write the object file.
|
||||||
///
|
///
|
||||||
/// This routine is called by the assembler after layout and relaxation is
|
/// This routine is called by the assembler after layout and relaxation is
|
||||||
/// complete, fixups have been evaluated and applied, and relocations
|
/// complete, fixups have been evaluated and applied, and relocations
|
||||||
/// generated.
|
/// generated.
|
||||||
virtual void WriteObject(MCAssembler &Asm,
|
virtual void WriteObject(MCAssembler &Asm, const MCAsmLayout &Layout) = 0;
|
||||||
const MCAsmLayout &Layout) = 0;
|
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
/// \name Binary Output
|
/// \name Binary Output
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
void Write8(uint8_t Value) {
|
void Write8(uint8_t Value) { OS << char(Value); }
|
||||||
OS << char(Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
void WriteLE16(uint16_t Value) {
|
void WriteLE16(uint16_t Value) {
|
||||||
support::endian::Writer<support::little>(OS).write(Value);
|
support::endian::Writer<support::little>(OS).write(Value);
|
||||||
@@ -164,7 +161,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void WriteZeros(unsigned N) {
|
void WriteZeros(unsigned N) {
|
||||||
const char Zeros[16] = { 0 };
|
const char Zeros[16] = {0};
|
||||||
|
|
||||||
for (unsigned i = 0, e = N / 16; i != e; ++i)
|
for (unsigned i = 0, e = N / 16; i != e; ++i)
|
||||||
OS << StringRef(Zeros, 16);
|
OS << StringRef(Zeros, 16);
|
||||||
@@ -172,22 +169,23 @@ public:
|
|||||||
OS << StringRef(Zeros, N % 16);
|
OS << StringRef(Zeros, N % 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WriteBytes(const SmallVectorImpl<char> &ByteVec, unsigned ZeroFillSize = 0) {
|
void WriteBytes(const SmallVectorImpl<char> &ByteVec,
|
||||||
|
unsigned ZeroFillSize = 0) {
|
||||||
WriteBytes(StringRef(ByteVec.data(), ByteVec.size()), ZeroFillSize);
|
WriteBytes(StringRef(ByteVec.data(), ByteVec.size()), ZeroFillSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WriteBytes(StringRef Str, unsigned ZeroFillSize = 0) {
|
void WriteBytes(StringRef Str, unsigned ZeroFillSize = 0) {
|
||||||
// TODO: this version may need to go away once all fragment contents are
|
// TODO: this version may need to go away once all fragment contents are
|
||||||
// converted to SmallVector<char, N>
|
// converted to SmallVector<char, N>
|
||||||
assert((ZeroFillSize == 0 || Str.size () <= ZeroFillSize) &&
|
assert(
|
||||||
"data size greater than fill size, unexpected large write will occur");
|
(ZeroFillSize == 0 || Str.size() <= ZeroFillSize) &&
|
||||||
|
"data size greater than fill size, unexpected large write will occur");
|
||||||
OS << Str;
|
OS << Str;
|
||||||
if (ZeroFillSize)
|
if (ZeroFillSize)
|
||||||
WriteZeros(ZeroFillSize - Str.size());
|
WriteZeros(ZeroFillSize - Str.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // End llvm namespace
|
} // End llvm namespace
|
||||||
|
|||||||
Reference in New Issue
Block a user