SOURCES: linux-2.6-gfs-noswitch64.patch (NEW) - (sparc32,

Andrzej Krzysztofowicz ankry w green.mif.pg.gda.pl
Sob, 10 Lip 2004, 23:36:14 CEST


Jakub Bogusz wrote:
> On Sat, Jul 10, 2004 at 10:51:12PM +0200, Paweł Sikora wrote:
> > On Saturday 10 of July 2004 21:38, qboosh wrote:
> > > Author: qboosh                       Date: Sat Jul 10 19:38:47 2004 GMT
> > > Module: SOURCES                       Tag: HEAD
> > > ---- Log message:
> > > - (sparc32,ppc) don't use switch on 64-bit value,
> > > gcc uses __ucmpdi2() to do it
> > 
> > # man gcc
> > 
> >  -ffreestanding
> > 
> >    Assert that compilation takes place in a freestanding environment.
> >    This implies -fno-builtin.  A freestanding environment is one in
> >    which the standard library may not exist, and program startup may
> >    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >    not necessarily be at "main".  The most obvious example is an OS
> >    kernel.  This is equivalent to -fno-hosted.
> 
> Tylko że "standard library" dla języka C to libc.
> __ucmpdi2() nie jest w libc, tylko w libgcc - bibliotece wspomagającej
> dla kompilatora, zwykle linkowanej statycznie.

Dodam tylko, ze nielinkowanie kernela z libgcc i wymuszone tym ograniczenia
w uzywaniu operacji 64-bitowych na 32-bitowych architekturach wynikaja z
potrzeby optymalizacji: porownanie 64 bitow bedzie tu zawsze wolniejsze niz
32 bitow.
A tej optymalizacji akurat nie moze zrobic kompilator: skad on ma biedny
wiedziec, czy porownywana wartosc moze, czy nie moze miec czegos
niezerowego na gornych 32 bitach. Wynika to zwykle z kontekstu uzycia i
decyzja nalezy do programisty.

-- 
=======================================================================
  Andrzej M. Krzysztofowicz               ankry w mif.pg.gda.pl
  phone (48)(58) 347 14 61
Faculty of Applied Phys. & Math.,   Gdansk University of Technology




Więcej informacji o liście dyskusyjnej pld-devel-pl