diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-05-25 15:04:26 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-05-25 15:04:26 +0000 |
commit | b028cc80989ccbdeb6940d89b1bac5a036377249 (patch) | |
tree | 0f01b264310859c39f604a891da7b6c991ba4ed6 /llvm/lib/MC/MCSection.cpp | |
parent | c1cd944854e2d654d93851788691a27295b98e48 (diff) | |
download | llvm-b028cc80989ccbdeb6940d89b1bac5a036377249.zip llvm-b028cc80989ccbdeb6940d89b1bac5a036377249.tar.gz llvm-b028cc80989ccbdeb6940d89b1bac5a036377249.tar.bz2 |
Move bundle info from MCSectionData to MCSection.
llvm-svn: 238143
Diffstat (limited to 'llvm/lib/MC/MCSection.cpp')
-rw-r--r-- | llvm/lib/MC/MCSection.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCSection.cpp b/llvm/lib/MC/MCSection.cpp index 7204e6c..bf25f3c 100644 --- a/llvm/lib/MC/MCSection.cpp +++ b/llvm/lib/MC/MCSection.cpp @@ -29,3 +29,21 @@ bool MCSection::hasEnded() const { return End && End->isInSection(); } MCSection::~MCSection() { } +void MCSection::setBundleLockState(BundleLockStateType NewState) { + if (NewState == NotBundleLocked) { + if (BundleLockNestingDepth == 0) { + report_fatal_error("Mismatched bundle_lock/unlock directives"); + } + if (--BundleLockNestingDepth == 0) { + BundleLockState = NotBundleLocked; + } + return; + } + + // If any of the directives is an align_to_end directive, the whole nested + // group is align_to_end. So don't downgrade from align_to_end to just locked. + if (BundleLockState != BundleLockedAlignToEnd) { + BundleLockState = NewState; + } + ++BundleLockNestingDepth; +} |