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