diff options
Diffstat (limited to 'llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp')
-rw-r--r-- | llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp index 728e7757fd2..8a53694f57f 100644 --- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp +++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp @@ -75,10 +75,9 @@ namespace { class PPCAsmBackend : public MCAsmBackend { const Target &TheTarget; - bool IsLittleEndian; public: - PPCAsmBackend(const Target &T, bool isLittle) : MCAsmBackend(), TheTarget(T), - IsLittleEndian(isLittle) {} + PPCAsmBackend(const Target &T, support::endianness Endian) + : MCAsmBackend(Endian), TheTarget(T) {} unsigned getNumFixupKinds() const override { return PPC::NumTargetFixupKinds; @@ -111,7 +110,9 @@ public: assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && "Invalid kind!"); - return (IsLittleEndian? InfosLE : InfosBE)[Kind - FirstTargetFixupKind]; + return (Endian == support::little + ? InfosLE + : InfosBE)[Kind - FirstTargetFixupKind]; } void applyFixup(const MCAssembler &Asm, const MCFixup &Fixup, @@ -127,7 +128,7 @@ public: // from the fixup value. The Value has been "split up" into the appropriate // bitfields above. for (unsigned i = 0; i != NumBytes; ++i) { - unsigned Idx = IsLittleEndian ? i : (NumBytes - 1 - i); + unsigned Idx = Endian == support::little ? i : (NumBytes - 1 - i); Data[Offset + i] |= uint8_t((Value >> (Idx * 8)) & 0xff); } } @@ -175,12 +176,12 @@ public: llvm_unreachable("relaxInstruction() unimplemented"); } - bool writeNopData(uint64_t Count, MCObjectWriter *OW) const override { + bool writeNopData(raw_ostream &OS, uint64_t Count) const override { uint64_t NumNops = Count / 4; for (uint64_t i = 0; i != NumNops; ++i) - OW->write32(0x60000000); + support::endian::write<uint32_t>(OS, 0x60000000, Endian); - OW->WriteZeros(Count % 4); + OS.write_zeros(Count % 4); return true; } @@ -191,10 +192,6 @@ public: assert(Name == "ppc32" && "Unknown target name!"); return 4; } - - bool isLittleEndian() const { - return IsLittleEndian; - } }; } // end anonymous namespace @@ -203,7 +200,7 @@ public: namespace { class DarwinPPCAsmBackend : public PPCAsmBackend { public: - DarwinPPCAsmBackend(const Target &T) : PPCAsmBackend(T, false) { } + DarwinPPCAsmBackend(const Target &T) : PPCAsmBackend(T, support::big) { } std::unique_ptr<MCObjectWriter> createObjectWriter(raw_pwrite_stream &OS) const override { @@ -219,13 +216,15 @@ namespace { class ELFPPCAsmBackend : public PPCAsmBackend { uint8_t OSABI; public: - ELFPPCAsmBackend(const Target &T, bool IsLittleEndian, uint8_t OSABI) : - PPCAsmBackend(T, IsLittleEndian), OSABI(OSABI) { } + ELFPPCAsmBackend(const Target &T, support::endianness Endian, + uint8_t OSABI) + : PPCAsmBackend(T, Endian), OSABI(OSABI) {} std::unique_ptr<MCObjectWriter> createObjectWriter(raw_pwrite_stream &OS) const override { bool is64 = getPointerSize() == 8; - return createPPCELFObjectWriter(OS, is64, isLittleEndian(), OSABI); + return createPPCELFObjectWriter(OS, is64, Endian == support::little, + OSABI); } }; @@ -241,5 +240,6 @@ MCAsmBackend *llvm::createPPCAsmBackend(const Target &T, uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(TT.getOS()); bool IsLittleEndian = TT.getArch() == Triple::ppc64le; - return new ELFPPCAsmBackend(T, IsLittleEndian, OSABI); + return new ELFPPCAsmBackend( + T, IsLittleEndian ? support::little : support::big, OSABI); } |