diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2010-10-16 18:23:53 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2010-10-16 18:23:53 +0000 |
commit | 4262a2222506c97685b4f0f9ff51c2eb9ee59115 (patch) | |
tree | 53633d5fe813ac9891a74f95e8bb0d2d93c18946 /llvm/lib/Target/ARM/ARMAsmBackend.cpp | |
parent | 556658c79e34ce1fe126e2634d47b80e8b3e78fd (diff) | |
download | bcm5719-llvm-4262a2222506c97685b4f0f9ff51c2eb9ee59115.tar.gz bcm5719-llvm-4262a2222506c97685b4f0f9ff51c2eb9ee59115.zip |
Add a MCObjectFormat class so that code common to all targets that use a
single object format can be shared.
This also adds support for
mov zed+(bar-foo), %eax
on ELF and COFF targets.
llvm-svn: 116675
Diffstat (limited to 'llvm/lib/Target/ARM/ARMAsmBackend.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMAsmBackend.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMAsmBackend.cpp b/llvm/lib/Target/ARM/ARMAsmBackend.cpp index df439a41b33..d113cf5b9ec 100644 --- a/llvm/lib/Target/ARM/ARMAsmBackend.cpp +++ b/llvm/lib/Target/ARM/ARMAsmBackend.cpp @@ -14,6 +14,7 @@ #include "llvm/MC/ELFObjectWriter.h" #include "llvm/MC/MCAssembler.h" #include "llvm/MC/MCExpr.h" +#include "llvm/MC/MCObjectFormat.h" #include "llvm/MC/MCObjectWriter.h" #include "llvm/MC/MCSectionELF.h" #include "llvm/MC/MCSectionMachO.h" @@ -66,14 +67,19 @@ namespace { // FIXME: This should be in a separate file. // ELF is an ELF of course... class ELFARMAsmBackend : public ARMAsmBackend { + MCELFObjectFormat Format; + public: Triple::OSType OSType; ELFARMAsmBackend(const Target &T, Triple::OSType _OSType) : ARMAsmBackend(T), OSType(_OSType) { - HasAbsolutizedSet = true; HasScatteredSymbols = true; } + virtual const MCObjectFormat &getObjectFormat() const { + return Format; + } + void ApplyFixup(const MCFixup &Fixup, MCDataFragment &DF, uint64_t Value) const; @@ -98,14 +104,19 @@ void ELFARMAsmBackend::ApplyFixup(const MCFixup &Fixup, MCDataFragment &DF, // FIXME: This should be in a separate file. class DarwinARMAsmBackend : public ARMAsmBackend { + MCMachOObjectFormat Format; + public: DarwinARMAsmBackend(const Target &T) : ARMAsmBackend(T) { - HasAbsolutizedSet = true; HasScatteredSymbols = true; assert(0 && "DarwinARMAsmBackend::DarwinARMAsmBackend() unimplemented"); } + virtual const MCObjectFormat &getObjectFormat() const { + return Format; + } + void ApplyFixup(const MCFixup &Fixup, MCDataFragment &DF, uint64_t Value) const; |