llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-sparc Author: Koakuma (koachan) <details> <summary>Changes</summary> If the Count passed into writeNopData is not a multiple of four, add a little amount of zeros before writing the NOP stream. This makes it match the behavior of GNU binutils. --- Full diff: https://github.com/llvm/llvm-project/pull/94251.diff 1 Files Affected: - (modified) llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp (+5-3) ``````````diff diff --git a/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp b/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp index 240f5396855c8..cb7414fddd29f 100644 --- a/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp +++ b/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp @@ -323,9 +323,11 @@ namespace { bool writeNopData(raw_ostream &OS, uint64_t Count, const MCSubtargetInfo *STI) const override { - // Cannot emit NOP with size not multiple of 32 bits. - if (Count % 4 != 0) - return false; + + // If the count is not 4-byte aligned, we must be writing data into the + // text section (otherwise we have unaligned instructions, and thus have + // far bigger problems), so just write zeros instead. + OS.write_zeros(Count % 4); uint64_t NumNops = Count / 4; for (uint64_t i = 0; i != NumNops; ++i) `````````` </details> https://github.com/llvm/llvm-project/pull/94251 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits