svn commit: r247166 - head/contrib/llvm/tools/clang/lib/Driver

Konstantin Belousov kostikbel at gmail.com
Sat Feb 23 20:19:03 UTC 2013


On Sat, Feb 23, 2013 at 12:58:14PM +0100, Dimitry Andric wrote:
> On 2013-02-23 00:53, Konstantin Belousov wrote:
> > On Fri, Feb 22, 2013 at 10:40:10PM +0000, Dimitry Andric wrote:
> ...
> >>    This should fix the long nops that still occurred in crt*.o, and
> >>    possibly other object files, if the system was compiled for a CPU that
> >>    does not support those, such as Geode.
> >>
> >>    Note that gcc on i386 also does not pass through any -march, -mcpu or
> >>    -mtune setting to gas, but this has not caused any trouble yet, because
> >>    gas defaults to i386.
> >
> > Are you saying that assembler (in the 'cc' invocation) miscompiles
> > the .s files on i386 ? Why does it use instructions by default which
> > are not supported on the i486 architecture, implicitely ?
> 
> The x86 backend always used to emit long nops, until upstream r164132,
> where this was fixed for the .c -> .o phase (-cc1 mode).  This fix is
> also in 3.2 release, and in our tree.
> 
> The .s -> .o phase (-cc1as mode) did not get passed the target CPU
> though, so it still defaulted to long nops.  This was simply the default
> chosen by upstream.  After upstream r175919, that problem should also be
> fixed.
> 
> As far as I can see, the only remaining issue now is the emission of
> cmov instructions on CPUs that do not support them, and a fix for that
> is being worked on now.

Let me rephrase my question.

What is the processor targeted by the cc on i386, when no -march flag is
specified, for cc coming from clang, for both .c and .s files. Lets ignore
known bugs, like long nops or cmovs.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20130223/ff31f719/attachment.sig>


More information about the svn-src-head mailing list