svn commit: r261225 - in stable: 10/contrib/llvm/lib/Target/X86/MCTargetDesc 9/contrib/llvm/lib/Target/X86/MCTargetDesc

Dimitry Andric dim at FreeBSD.org
Tue Jan 28 08:07:20 UTC 2014


Author: dim
Date: Tue Jan 28 08:07:19 2014
New Revision: 261225
URL: http://svnweb.freebsd.org/changeset/base/261225

Log:
  MFC r261162:
  
  Pull in r195679 from upstream llvm trunk:
  
    Don't use nopl in cpus that don't support it.
  
    Patch by Mikulas Patocka. I added the test. I checked that for cpu names that
    gas knows about, it also doesn't generate nopl.
  
    The modified cpus:
    i686 - there are i686-class CPUs that don't have nopl: Via c3, Transmeta
  	 Crusoe, Microsoft VirtualBox - see
  	 https://bbs.archlinux.org/viewtopic.php?pid=775414
    k6, k6-2, k6-3, winchip-c6, winchip2 - these are 586-class CPUs
    via c3 c3-2 - see https://bugs.archlinux.org/task/19733 as a proof that
  	 Via c3 and c3-Nehemiah don't have nopl
  
  PR:		bin/185777

Modified:
  stable/10/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
Directory Properties:
  stable/10/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/9/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
Directory Properties:
  stable/9/contrib/llvm/   (props changed)

Modified: stable/10/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
==============================================================================
--- stable/10/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp	Tue Jan 28 07:21:46 2014	(r261224)
+++ stable/10/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp	Tue Jan 28 08:07:19 2014	(r261225)
@@ -308,8 +308,12 @@ bool X86AsmBackend::writeNopData(uint64_
 
   // This CPU doesnt support long nops. If needed add more.
   // FIXME: Can we get this from the subtarget somehow?
+  // FIXME: We could generated something better than plain 0x90.
   if (CPU == "generic" || CPU == "i386" || CPU == "i486" || CPU == "i586" ||
-      CPU == "pentium" || CPU == "pentium-mmx" || CPU == "geode") {
+      CPU == "pentium" || CPU == "pentium-mmx" || CPU == "i686" ||
+      CPU == "k6" || CPU == "k6-2" || CPU == "k6-3" || CPU == "geode" ||
+      CPU == "winchip-c6" || CPU == "winchip2" || CPU == "c3" ||
+      CPU == "c3-2") {
     for (uint64_t i = 0; i < Count; ++i)
       OW->Write8(0x90);
     return true;


More information about the svn-src-all mailing list