diff options
author | Christian Pirker <cpirker@a-bix.com> | 2014-02-24 11:34:50 +0000 |
---|---|---|
committer | Christian Pirker <cpirker@a-bix.com> | 2014-02-24 11:34:50 +0000 |
commit | d7e12561a5de67edd691843f5795a4a8b470c03c (patch) | |
tree | 679d39fa034d310cacae8be57cf928c7e271163d /lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp | |
parent | 58423c8f1a863151c9ca01ff6a1078c124b62181 (diff) | |
download | llvm-d7e12561a5de67edd691843f5795a4a8b470c03c.tar.gz llvm-d7e12561a5de67edd691843f5795a4a8b470c03c.tar.bz2 llvm-d7e12561a5de67edd691843f5795a4a8b470c03c.tar.xz |
Add AArch64 big endian Target (aarch64_be)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202024 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp')
-rw-r--r-- | lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp b/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp index 82024ff87e..7118a7fd23 100644 --- a/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp +++ b/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp @@ -79,11 +79,12 @@ static uint64_t adjustFixupValue(unsigned Kind, uint64_t Value); namespace { class ELFAArch64AsmBackend : public AArch64AsmBackend { -public: uint8_t OSABI; + bool IsLittle; // Big or little endian +public: ELFAArch64AsmBackend(const Target &T, const StringRef TT, - uint8_t _OSABI) - : AArch64AsmBackend(T, TT), OSABI(_OSABI) { } + uint8_t _OSABI, bool isLittle) + : AArch64AsmBackend(T, TT), OSABI(_OSABI), IsLittle(isLittle) { } bool fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value, @@ -200,7 +201,7 @@ public: } MCObjectWriter *createObjectWriter(raw_ostream &OS) const { - return createAArch64ELFObjectWriter(OS, OSABI); + return createAArch64ELFObjectWriter(OS, OSABI, IsLittle); } }; @@ -578,8 +579,15 @@ static uint64_t adjustFixupValue(unsigned Kind, uint64_t Value) { } MCAsmBackend * -llvm::createAArch64AsmBackend(const Target &T, const MCRegisterInfo &MRI, +llvm::createAArch64leAsmBackend(const Target &T, const MCRegisterInfo &MRI, + StringRef TT, StringRef CPU) { + Triple TheTriple(TT); + return new ELFAArch64AsmBackend(T, TT, TheTriple.getOS(), /*isLittle*/ true); +} + +MCAsmBackend * +llvm::createAArch64beAsmBackend(const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU) { Triple TheTriple(TT); - return new ELFAArch64AsmBackend(T, TT, TheTriple.getOS()); + return new ELFAArch64AsmBackend(T, TT, TheTriple.getOS(), /*isLittle*/ false); } |