i486 base architecture
Jakub Jelinek
jakub at redhat.com
Mon Nov 29 09:41:04 UTC 2004
On Mon, Nov 29, 2004 at 01:30:11AM -0800, Nicholas Miell wrote:
> On Mon, 2004-11-29 at 10:16 +0100, Arjan van de Ven wrote:
> > On Mon, Nov 29, 2004 at 01:02:46AM -0800, Nicholas Miell wrote:
> > > CMOVcc will use less space in the instruction cache than the Jcc/MOV
> > > pair, though.
> >
> > only sometimes.... since cmov doens't work on all register/memory
> > combinations extra code might be needed to glue that together...
> >
> >
> > .... and we're suddenly talking about 0.01% performance ;)
>
> Well, yeah. :)
>
> There's also branch prediction and decode bandwidth issues that I didn't
> bother to mention.
Although P4 have the ds/cs segment prefixes for static branch prediction,
the non-preproduction chips actually don't use it, so it only makes code
bigger.
http://gcc.gnu.org/ml/gcc-patches/2004-07/msg02200.html
> But, if you're going to optimize for i686 or better for other reasons,
> there's no reason not to use CMOVcc instead of Jcc/MOV, where possible.
Well, there is a reason aside from some CPUs not having those insns at all:
on some recent Intel CPUs CMOVcc is actually slower than Jcc/MOV.
Jakub
More information about the fedora-devel-list
mailing list