[PATCH] D97268: [X86] Use correct padding when in 16-bit mode

Bill Wendling via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 23 02:45:40 PST 2021


void created this revision.
void added reviewers: craig.topper, MaskRay, jyknight.
Herald added subscribers: pengfei, steven_wu, hiraditya, emaste.
Herald added a project: lld-macho.
Herald added a reviewer: lld-macho.
void requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

In 16-bit mode, some of the nop patterns used in 32-bit mode can end up
mangling other instructions. For instance, an aligned "movz" instruction
may have the 0x66 and 0x67 prefixes omitted, because the nop that's used
messes things up.

  xorl    %ebx, %ebx
  .p2align 4, 0x90
  movzbl  (%esi,%ebx), %ecx

Use instead nop patterns we know 16-bit mode can handle.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D97268

Files:
  lld/test/COFF/lto-cpu-string.ll
  lld/test/COFF/lto.ll
  lld/test/ELF/lto/cpu-string.ll
  lld/test/ELF/lto/mllvm.ll
  lld/test/MachO/cpu-string.ll
  llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
  llvm/test/MC/COFF/align-nops.s
  llvm/test/MC/ELF/align-nops.s
  llvm/test/MC/MachO/x86_32-optimal_nop.s
  llvm/test/MC/X86/AlignedBundling/long-nop-pad.s
  llvm/test/MC/X86/AlignedBundling/misaligned-bundle-group.s
  llvm/test/MC/X86/AlignedBundling/misaligned-bundle.s
  llvm/test/MC/X86/AlignedBundling/pad-align-to-bundle-end.s
  llvm/test/MC/X86/AlignedBundling/pad-bundle-groups.s
  llvm/test/MC/X86/AlignedBundling/relax-at-bundle-end.s
  llvm/test/MC/X86/AlignedBundling/relax-in-bundle-group.s
  llvm/test/MC/X86/AlignedBundling/single-inst-bundling.s
  llvm/test/MC/X86/align-branch-pad-max-prefix.s
  llvm/test/MC/X86/align-via-padding.s
  llvm/test/MC/X86/align-via-relaxation.s
  llvm/test/MC/X86/code16gcc-align.s
  llvm/test/MC/X86/x86_64-directive-nops.s
  llvm/test/MC/X86/x86_long_nop.s
  llvm/test/MC/X86/x86_nop.s
  llvm/test/tools/llvm-profgen/symbolize.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D97268.325724.patch
Type: text/x-patch
Size: 27253 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210223/d81a8353/attachment.bin>


More information about the llvm-commits mailing list