This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Add cmov into i386 HWCAP_IMPORTANT


On Sun, Feb 02, 2003 at 12:29:13AM +0100, Jakub Jelinek wrote:
> On Sat, Feb 01, 2003 at 10:37:20PM +0100, Jakub Jelinek wrote:
> > On Sun, Feb 02, 2003 at 06:29:45AM +0900, GOTO Masanori wrote:
> > > Hi,
> > > 
> > > This patch adds HWCAP_I386_CMOV into i386 HWCAP_IMPORTANT.
> > > 
> > > CMOV is i686 optional instruction, and VIA C3 processor does not
> > > support it, but VIA C3 reports it's an i686 class processor.  
> > > 
> > > Unfortunately, gcc generates this optional CMOV instruction with
> > > -mcpu=i686 optimization, so i686 optimized dynamic library code almost
> > > causes "illegal instruction" error on VIA C3 processor during dynamic
> > > loading.  I heard that gcc team does not think to change using CMOV
> > > instruction with i686 optimization.  CMOV is very key instruction to
> > > make faster.
> > > 
> > > But I think this patch is needed regardless of gcc generates cmov
> > > instruction code with i686 optimization.  Please apply it.
> > 
> > Guess you're aware about how much this penalizes everybody using
> > DT_R{,UN}PATH and LD_LIBRARY_PATH...
> > IMHO way better is just change platform to i586 when cmov hwcap is not set.
> 
> Note that that should be done in the kernel, not in ld.so.

The kernel folks outright refused to do this.

The libc folks refuse to change it in libc.

The GCC folks refuse to change the meaning of -march=i686.

_Someone_ has to give if we want Linux to work on these @#(*&! beasts!

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]