diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
commit | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (patch) | |
tree | 012bb94d777798f1f56ac1cec429509766d05181 /contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp | |
parent | 6751af0b0c1b952fede40b19b71da8025b5d8bcf (diff) | |
download | ydb-2598ef1d0aee359b4b6d5fdd1758916d5907d04f.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp')
-rw-r--r-- | contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp b/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp index 95012a148d..0b1812c935 100644 --- a/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp +++ b/contrib/libs/llvm12/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp @@ -109,7 +109,7 @@ cl::opt<unsigned> X86PadMaxPrefixSize( cl::desc("Maximum number of prefixes to use for padding")); cl::opt<bool> X86PadForAlign( - "x86-pad-for-align", cl::init(false), cl::Hidden, + "x86-pad-for-align", cl::init(false), cl::Hidden, cl::desc("Pad previous instructions to implement align directives")); cl::opt<bool> X86PadForBranchAlign( @@ -207,8 +207,8 @@ public: void finishLayout(MCAssembler const &Asm, MCAsmLayout &Layout) const override; - unsigned getMaximumNopSize() const override; - + unsigned getMaximumNopSize() const override; + bool writeNopData(raw_ostream &OS, uint64_t Count) const override; }; } // end anonymous namespace @@ -957,9 +957,9 @@ void X86AsmBackend::finishLayout(MCAssembler const &Asm, if (!X86PadForAlign && !X86PadForBranchAlign) return; - // The processed regions are delimitered by LabeledFragments. -g may have more - // MCSymbols and therefore different relaxation results. X86PadForAlign is - // disabled by default to eliminate the -g vs non -g difference. + // The processed regions are delimitered by LabeledFragments. -g may have more + // MCSymbols and therefore different relaxation results. X86PadForAlign is + // disabled by default to eliminate the -g vs non -g difference. DenseSet<MCFragment *> LabeledFragments; for (const MCSymbol &S : Asm.symbols()) LabeledFragments.insert(S.getFragment(false)); @@ -1072,21 +1072,21 @@ void X86AsmBackend::finishLayout(MCAssembler const &Asm, } } -unsigned X86AsmBackend::getMaximumNopSize() const { - if (!STI.hasFeature(X86::FeatureNOPL) && !STI.hasFeature(X86::Mode64Bit)) - return 1; - if (STI.getFeatureBits()[X86::FeatureFast7ByteNOP]) - return 7; - if (STI.getFeatureBits()[X86::FeatureFast15ByteNOP]) - return 15; - if (STI.getFeatureBits()[X86::FeatureFast11ByteNOP]) - return 11; - // FIXME: handle 32-bit mode - // 15-bytes is the longest single NOP instruction, but 10-bytes is - // commonly the longest that can be efficiently decoded. - return 10; -} - +unsigned X86AsmBackend::getMaximumNopSize() const { + if (!STI.hasFeature(X86::FeatureNOPL) && !STI.hasFeature(X86::Mode64Bit)) + return 1; + if (STI.getFeatureBits()[X86::FeatureFast7ByteNOP]) + return 7; + if (STI.getFeatureBits()[X86::FeatureFast15ByteNOP]) + return 15; + if (STI.getFeatureBits()[X86::FeatureFast11ByteNOP]) + return 11; + // FIXME: handle 32-bit mode + // 15-bytes is the longest single NOP instruction, but 10-bytes is + // commonly the longest that can be efficiently decoded. + return 10; +} + /// Write a sequence of optimal nops to the output, covering \p Count /// bytes. /// \return - true on success, false on failure @@ -1114,7 +1114,7 @@ bool X86AsmBackend::writeNopData(raw_ostream &OS, uint64_t Count) const { "\x66\x2e\x0f\x1f\x84\x00\x00\x00\x00\x00", }; - uint64_t MaxNopLength = (uint64_t)getMaximumNopSize(); + uint64_t MaxNopLength = (uint64_t)getMaximumNopSize(); // Emit as many MaxNopLength NOPs as needed, then emit a NOP of the remaining // length. @@ -1241,7 +1241,7 @@ namespace CU { UNWIND_FRAMELESS_STACK_REG_PERMUTATION = 0x000003FF }; -} // namespace CU +} // namespace CU class DarwinX86AsmBackend : public X86AsmBackend { const MCRegisterInfo &MRI; |