diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2018-05-21 17:57:19 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2018-05-21 17:57:19 +0000 |
commit | 571a3301aeaaddcb1d784d8f27957170fe0cfd15 (patch) | |
tree | 68b8fadb711472ead3443a2b0352d21eadb7d405 /llvm/lib/MC | |
parent | a91ce17b5f2bbaa909aaa61a4610316de06f18cb (diff) | |
download | bcm5719-llvm-571a3301aeaaddcb1d784d8f27957170fe0cfd15.tar.gz bcm5719-llvm-571a3301aeaaddcb1d784d8f27957170fe0cfd15.zip |
MC: Change MCAsmBackend::writeNopData() to take a raw_ostream instead of an MCObjectWriter. NFCI.
To make this work I needed to add an endianness field to MCAsmBackend
so that writeNopData() implementations know which endianness to use.
Part of PR37466.
Differential Revision: https://reviews.llvm.org/D47035
llvm-svn: 332857
Diffstat (limited to 'llvm/lib/MC')
-rw-r--r-- | llvm/lib/MC/MCAsmBackend.cpp | 6 | ||||
-rw-r--r-- | llvm/lib/MC/MCAssembler.cpp | 8 |
2 files changed, 6 insertions, 8 deletions
diff --git a/llvm/lib/MC/MCAsmBackend.cpp b/llvm/lib/MC/MCAsmBackend.cpp index d675a98542f..8406d232863 100644 --- a/llvm/lib/MC/MCAsmBackend.cpp +++ b/llvm/lib/MC/MCAsmBackend.cpp @@ -18,10 +18,8 @@ using namespace llvm; -MCAsmBackend::MCAsmBackend() : CodePadder(new MCCodePadder()) {} - -MCAsmBackend::MCAsmBackend(std::unique_ptr<MCCodePadder> TargetCodePadder) - : CodePadder(std::move(TargetCodePadder)) {} +MCAsmBackend::MCAsmBackend(support::endianness Endian) + : CodePadder(new MCCodePadder()), Endian(Endian) {} MCAsmBackend::~MCAsmBackend() = default; diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp index bde838a316d..40f1ab4312d 100644 --- a/llvm/lib/MC/MCAssembler.cpp +++ b/llvm/lib/MC/MCAssembler.cpp @@ -472,12 +472,12 @@ void MCAssembler::writeFragmentPadding(const MCFragment &F, uint64_t FSize, // ---------------------------- // ^-------------------^ <- TotalLength unsigned DistanceToBoundary = TotalLength - getBundleAlignSize(); - if (!getBackend().writeNopData(DistanceToBoundary, OW)) + if (!getBackend().writeNopData(OW->getStream(), DistanceToBoundary)) report_fatal_error("unable to write NOP sequence of " + Twine(DistanceToBoundary) + " bytes"); BundlePadding -= DistanceToBoundary; } - if (!getBackend().writeNopData(BundlePadding, OW)) + if (!getBackend().writeNopData(OW->getStream(), BundlePadding)) report_fatal_error("unable to write NOP sequence of " + Twine(BundlePadding) + " bytes"); } @@ -523,7 +523,7 @@ static void writeFragment(const MCAssembler &Asm, const MCAsmLayout &Layout, // bytes left to fill use the Value and ValueSize to fill the rest. // If we are aligning with nops, ask that target to emit the right data. if (AF.hasEmitNops()) { - if (!Asm.getBackend().writeNopData(Count, OW)) + if (!Asm.getBackend().writeNopData(OW->getStream(), Count)) report_fatal_error("unable to write nop sequence of " + Twine(Count) + " bytes"); break; @@ -600,7 +600,7 @@ static void writeFragment(const MCAssembler &Asm, const MCAsmLayout &Layout, } case MCFragment::FT_Padding: { - if (!Asm.getBackend().writeNopData(FragmentSize, OW)) + if (!Asm.getBackend().writeNopData(OW->getStream(), FragmentSize)) report_fatal_error("unable to write nop sequence of " + Twine(FragmentSize) + " bytes"); break; |