mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 04:38:24 +00:00
First bit of support for the dwarf .loc directive. This patch updates the
needed parsing for the .loc directive and saves the current info from that into the context. The next patch will take the current loc info after an instruction is assembled and save that info into a vector for each section for use to build the line number tables. The patch after that will encode the info from those vectors into the output file as the dwarf line tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111956 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -24,7 +24,8 @@ typedef StringMap<const MCSectionELF*> ELFUniqueMapTy;
|
||||
typedef StringMap<const MCSectionCOFF*> COFFUniqueMapTy;
|
||||
|
||||
|
||||
MCContext::MCContext(const MCAsmInfo &mai) : MAI(mai), NextUniqueID(0) {
|
||||
MCContext::MCContext(const MCAsmInfo &mai) : MAI(mai), NextUniqueID(0),
|
||||
CurrentDwarfLoc(0,0,0,0,0) {
|
||||
MachOUniquingMap = 0;
|
||||
ELFUniquingMap = 0;
|
||||
COFFUniquingMap = 0;
|
||||
@ -32,6 +33,8 @@ MCContext::MCContext(const MCAsmInfo &mai) : MAI(mai), NextUniqueID(0) {
|
||||
SecureLogFile = getenv("AS_SECURE_LOG_FILE");
|
||||
SecureLog = 0;
|
||||
SecureLogUsed = false;
|
||||
|
||||
DwarfLocSeen = false;
|
||||
}
|
||||
|
||||
MCContext::~MCContext() {
|
||||
@ -247,3 +250,16 @@ unsigned MCContext::GetDwarfFile(StringRef FileName, unsigned FileNumber) {
|
||||
// return the allocated FileNumber.
|
||||
return FileNumber;
|
||||
}
|
||||
|
||||
/// ValidateDwarfFileNumber - takes a dwarf file number and returns true if it
|
||||
/// currently is assigned and false otherwise.
|
||||
bool MCContext::ValidateDwarfFileNumber(unsigned FileNumber) {
|
||||
if(FileNumber == 0 || FileNumber >= MCDwarfFiles.size())
|
||||
return false;
|
||||
|
||||
MCDwarfFile *&ExistingFile = MCDwarfFiles[FileNumber];
|
||||
if (ExistingFile)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
Reference in New Issue
Block a user