summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-05-25 18:34:26 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-05-25 18:34:26 +0000
commitcd62518369a8a711b26f6bcb85d727b5e386b2f1 (patch)
tree6f1442ec08d66b816e5a62ff13c74b9b76087cde /llvm/lib/MC
parent0be4fa761f21505099bf904652b3e061b3ce732f (diff)
downloadbcm5719-llvm-cd62518369a8a711b26f6bcb85d727b5e386b2f1.tar.gz
bcm5719-llvm-cd62518369a8a711b26f6bcb85d727b5e386b2f1.zip
Move HasInstructions to MCSection.
llvm-svn: 238150
Diffstat (limited to 'llvm/lib/MC')
-rw-r--r--llvm/lib/MC/MCAssembler.cpp2
-rw-r--r--llvm/lib/MC/MCELFStreamer.cpp13
-rw-r--r--llvm/lib/MC/MCObjectStreamer.cpp6
-rw-r--r--llvm/lib/MC/MachObjectWriter.cpp2
4 files changed, 15 insertions, 8 deletions
diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp
index a3c7c70321c..d7712f7fc98 100644
--- a/llvm/lib/MC/MCAssembler.cpp
+++ b/llvm/lib/MC/MCAssembler.cpp
@@ -293,7 +293,7 @@ MCEncodedFragmentWithFixups::~MCEncodedFragmentWithFixups() {
MCSectionData::MCSectionData() : Section(nullptr) {}
MCSectionData::MCSectionData(MCSection &Section, MCAssembler *A)
- : Section(&Section), HasInstructions(false) {
+ : Section(&Section) {
if (A)
A->getSectionList().push_back(this);
}
diff --git a/llvm/lib/MC/MCELFStreamer.cpp b/llvm/lib/MC/MCELFStreamer.cpp
index 0e4d637c8ce..23546cc085d 100644
--- a/llvm/lib/MC/MCELFStreamer.cpp
+++ b/llvm/lib/MC/MCELFStreamer.cpp
@@ -137,11 +137,14 @@ void MCELFStreamer::EmitAssemblerFlag(MCAssemblerFlag Flag) {
// If bundle aligment is used and there are any instructions in the section, it
// needs to be aligned to at least the bundle size.
-static void setSectionAlignmentForBundling(
- const MCAssembler &Assembler, MCSectionData *Section) {
- if (Assembler.isBundlingEnabled() && Section && Section->hasInstructions() &&
- Section->getSection().getAlignment() < Assembler.getBundleAlignSize())
- Section->getSection().setAlignment(Assembler.getBundleAlignSize());
+static void setSectionAlignmentForBundling(const MCAssembler &Assembler,
+ MCSectionData *SD) {
+ if (!SD)
+ return;
+ MCSection &Section = SD->getSection();
+ if (Assembler.isBundlingEnabled() && Section.hasInstructions() &&
+ Section.getAlignment() < Assembler.getBundleAlignSize())
+ Section.setAlignment(Assembler.getBundleAlignSize());
}
void MCELFStreamer::ChangeSection(MCSection *Section,
diff --git a/llvm/lib/MC/MCObjectStreamer.cpp b/llvm/lib/MC/MCObjectStreamer.cpp
index b244c3a679c..8584a79a8d1 100644
--- a/llvm/lib/MC/MCObjectStreamer.cpp
+++ b/llvm/lib/MC/MCObjectStreamer.cpp
@@ -230,12 +230,16 @@ void MCObjectStreamer::EmitAssignment(MCSymbol *Symbol, const MCExpr *Value) {
MCStreamer::EmitAssignment(Symbol, Value);
}
+bool MCObjectStreamer::mayHaveInstructions(MCSection &Sec) const {
+ return Sec.hasInstructions();
+}
+
void MCObjectStreamer::EmitInstruction(const MCInst &Inst,
const MCSubtargetInfo &STI) {
MCStreamer::EmitInstruction(Inst, STI);
MCSectionData *SD = getCurrentSectionData();
- SD->setHasInstructions(true);
+ SD->getSection().setHasInstructions(true);
// Now that a machine instruction has been assembled into this section, make
// a line entry for any .loc directive that has been seen.
diff --git a/llvm/lib/MC/MachObjectWriter.cpp b/llvm/lib/MC/MachObjectWriter.cpp
index 45096d428b7..79de0f9a936 100644
--- a/llvm/lib/MC/MachObjectWriter.cpp
+++ b/llvm/lib/MC/MachObjectWriter.cpp
@@ -225,7 +225,7 @@ void MachObjectWriter::WriteSection(const MCAssembler &Asm,
Write32(FileOffset);
unsigned Flags = Section.getTypeAndAttributes();
- if (SD.hasInstructions())
+ if (Section.hasInstructions())
Flags |= MachO::S_ATTR_SOME_INSTRUCTIONS;
assert(isPowerOf2_32(Section.getAlignment()) && "Invalid alignment!");
OpenPOWER on IntegriCloud