Adds getPointerSize() to the AsmBackend which will be needed by the final patch

for the dwarf .loc support to emit dwarf line number tables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115153 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Kevin Enderby 2010-09-30 16:38:07 +00:00
parent 4ba2b65b8e
commit 8ebf66236e
3 changed files with 34 additions and 0 deletions

View File

@ -101,6 +101,9 @@ public:
/// has no actual object file contents.
virtual bool isVirtualSection(const MCSection &Section) const = 0;
/// getPointerSize - Get the pointer size in bytes.
virtual unsigned getPointerSize() const = 0;
/// ApplyFixup - Apply the \arg Value for given \arg Fixup into the provided
/// data fragment, at the offset specified by the fixup and following the
/// fixup kind as appropriate.

View File

@ -84,6 +84,10 @@ public:
/*IsLittleEndian=*/true,
/*HasRelocationAddend=*/false);
}
unsigned getPointerSize() const {
return 4;
};
};
// Fixme: can we raise this to share code between Darwin and ELF?
@ -116,6 +120,10 @@ public:
return new MachObjectWriter(OS, /*Is64Bit=*/false);
}
unsigned getPointerSize() const {
return 4;
};
virtual bool doesSectionRequireSymbols(const MCSection &Section) const {
return false;
}

View File

@ -211,6 +211,10 @@ public:
ELFX86_32AsmBackend(const Target &T, Triple::OSType OSType)
: ELFX86AsmBackend(T, OSType) {}
unsigned getPointerSize() const {
return 4;
}
MCObjectWriter *createObjectWriter(raw_ostream &OS) const {
return new ELFObjectWriter(OS, /*Is64Bit=*/false,
OSType,
@ -224,6 +228,10 @@ public:
ELFX86_64AsmBackend(const Target &T, Triple::OSType OSType)
: ELFX86AsmBackend(T, OSType) {}
unsigned getPointerSize() const {
return 8;
}
MCObjectWriter *createObjectWriter(raw_ostream &OS) const {
return new ELFObjectWriter(OS, /*Is64Bit=*/true,
OSType,
@ -241,6 +249,13 @@ public:
HasScatteredSymbols = true;
}
unsigned getPointerSize() const {
if (Is64Bit)
return 8;
else
return 4;
}
MCObjectWriter *createObjectWriter(raw_ostream &OS) const {
return createWinCOFFObjectWriter(OS, Is64Bit);
}
@ -272,6 +287,10 @@ public:
DarwinX86_32AsmBackend(const Target &T)
: DarwinX86AsmBackend(T) {}
unsigned getPointerSize() const {
return 4;
}
MCObjectWriter *createObjectWriter(raw_ostream &OS) const {
return new MachObjectWriter(OS, /*Is64Bit=*/false);
}
@ -284,6 +303,10 @@ public:
HasReliableSymbolDifference = true;
}
unsigned getPointerSize() const {
return 8;
}
MCObjectWriter *createObjectWriter(raw_ostream &OS) const {
return new MachObjectWriter(OS, /*Is64Bit=*/true);
}