diff options
author | Kevin Enderby <enderby@apple.com> | 2010-09-30 16:38:07 +0000 |
---|---|---|
committer | Kevin Enderby <enderby@apple.com> | 2010-09-30 16:38:07 +0000 |
commit | 8ebf66236e1a0a3f6796abcbf6be83eb6a55e3fa (patch) | |
tree | 6d38971e9692469dd0528ff526328c51adced42c | |
parent | 4ba2b65b8e3fd6f3c8a91873485aacff8bfe6128 (diff) |
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
-rw-r--r-- | include/llvm/Target/TargetAsmBackend.h | 3 | ||||
-rw-r--r-- | lib/Target/ARM/ARMAsmBackend.cpp | 8 | ||||
-rw-r--r-- | lib/Target/X86/X86AsmBackend.cpp | 23 |
3 files changed, 34 insertions, 0 deletions
diff --git a/include/llvm/Target/TargetAsmBackend.h b/include/llvm/Target/TargetAsmBackend.h index 979595ad4f..b0a7af6371 100644 --- a/include/llvm/Target/TargetAsmBackend.h +++ b/include/llvm/Target/TargetAsmBackend.h @@ -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. diff --git a/lib/Target/ARM/ARMAsmBackend.cpp b/lib/Target/ARM/ARMAsmBackend.cpp index f13c2bbf48..9de6eba09f 100644 --- a/lib/Target/ARM/ARMAsmBackend.cpp +++ b/lib/Target/ARM/ARMAsmBackend.cpp @@ -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; } diff --git a/lib/Target/X86/X86AsmBackend.cpp b/lib/Target/X86/X86AsmBackend.cpp index d9c6daa2cc..cabc6015aa 100644 --- a/lib/Target/X86/X86AsmBackend.cpp +++ b/lib/Target/X86/X86AsmBackend.cpp @@ -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); } |