[PATCH] D57621: [X86] Print %st(0) as %st to match what gcc inline asm uses as the clobber name to make MS inline asm work correctly

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 1 14:34:06 PST 2019


craig.topper created this revision.
craig.topper added reviewers: RKSimon, rnk, efriedma, spatel.
Herald added subscribers: lebedev.ri, gbedwell, eraman.
Herald added a reviewer: andreadb.
Herald added a reviewer: lebedev.ri.

When calculating clobbers for MS style inline assembly we fail if the asm clobbers stack top because we print st(0) and try to pass it through the gcc register name check. This was found with when I attempted to make a emms/femms clobber all ST registers. If you use emms/femms in MS inline asm we print the wrong clobber name

This also matches what objdump disassembly prints.


https://reviews.llvm.org/D57621

Files:
  lib/Target/X86/AsmParser/X86AsmParser.cpp
  lib/Target/X86/X86InstrFPStack.td
  lib/Target/X86/X86InstrInfo.td
  lib/Target/X86/X86RegisterInfo.td
  test/CodeGen/X86/2007-09-27-LDIntrinsics.ll
  test/CodeGen/X86/avx512-regcall-NoMask.ll
  test/CodeGen/X86/fcmove.ll
  test/CodeGen/X86/finite-libcalls.ll
  test/CodeGen/X86/fmf-flags.ll
  test/CodeGen/X86/fp-cvt.ll
  test/CodeGen/X86/fp128-cast.ll
  test/CodeGen/X86/inline-asm-fpstack.ll
  test/CodeGen/X86/pr13577.ll
  test/CodeGen/X86/pr33349.ll
  test/CodeGen/X86/pr34080.ll
  test/CodeGen/X86/pr34177.ll
  test/CodeGen/X86/scalar-fp-to-i64.ll
  test/CodeGen/X86/select.ll
  test/CodeGen/X86/sibcall.ll
  test/CodeGen/X86/x87-schedule.ll
  test/MC/Disassembler/X86/fp-stack.txt
  test/MC/Disassembler/X86/x86-16.txt
  test/MC/X86/PPRO-32.s
  test/MC/X86/PPRO-64.s
  test/MC/X86/X87-32.s
  test/MC/X86/X87-64.s
  test/MC/X86/intel-syntax.s
  test/MC/X86/x86-16.s
  test/MC/X86/x86-32-coverage.s
  test/MC/X86/x86-32.s
  test/MC/X86/x86-64.s
  test/tools/llvm-mca/X86/Atom/resources-x87.s
  test/tools/llvm-mca/X86/BdVer2/resources-x87.s
  test/tools/llvm-mca/X86/Broadwell/resources-x87.s
  test/tools/llvm-mca/X86/BtVer2/resources-x87.s
  test/tools/llvm-mca/X86/Generic/resources-x87.s
  test/tools/llvm-mca/X86/Haswell/resources-x87.s
  test/tools/llvm-mca/X86/SLM/resources-x87.s
  test/tools/llvm-mca/X86/SandyBridge/resources-x87.s
  test/tools/llvm-mca/X86/SkylakeClient/resources-x87.s
  test/tools/llvm-mca/X86/SkylakeServer/resources-x87.s
  test/tools/llvm-mca/X86/Znver1/resources-x87.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D57621.184848.patch
Type: text/x-patch
Size: 332911 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190201/519d141b/attachment-0001.bin>


More information about the llvm-commits mailing list