mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
add trivial support for passing label definitions through the MCStreamer.
This is suboptimal in several aspects, see the commented out assertion. I need to talk to Daniel about this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74057 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -84,8 +84,8 @@ void MCAsmStreamer::SwitchSection(MCSection *Section) {
|
||||
void MCAsmStreamer::EmitLabel(MCSymbol *Symbol) {
|
||||
// FIXME: We need to enforce that we aren't printing atoms which are more
|
||||
// complicated than the assembler understands.
|
||||
assert(Symbol->getAtom()->getSection() == CurSection &&
|
||||
"The label for a symbol must match its section!");
|
||||
//assert(Symbol->getAtom()->getSection() == CurSection &&
|
||||
// "The label for a symbol must match its section!");
|
||||
OS << Symbol->getName() << ":\n";
|
||||
}
|
||||
|
||||
|
@@ -44,6 +44,20 @@ MCSymbol *MCContext::CreateSymbol(MCAtom *Atom, const char *Name) {
|
||||
return Entry = new (*this) MCSymbol(Atom, Name, false);
|
||||
}
|
||||
|
||||
/// GetOrCreateSymbol - Lookup the symbol inside with the specified
|
||||
/// @param Name. If it exists, return it. If not, create a forward
|
||||
/// reference and return it.
|
||||
///
|
||||
/// @param Name - The symbol name, which must be unique across all symbols.
|
||||
MCSymbol *MCContext::GetOrCreateSymbol(const char *Name) {
|
||||
MCSymbol *&Entry = Symbols[Name];
|
||||
if (Entry) return Entry;
|
||||
|
||||
// FIXME: is a null atom the right way to make a forward ref?
|
||||
return Entry = new (*this) MCSymbol(0, Name, false);
|
||||
}
|
||||
|
||||
|
||||
MCSymbol *MCContext::CreateTemporarySymbol(MCAtom *Atom, const char *Name) {
|
||||
// If unnamed, just create a symbol.
|
||||
if (Name[0] == '\0')
|
||||
|
Reference in New Issue
Block a user