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 [EMAIL PROTECTED] phone (48)(58) 347 14 61 Faculty of Applied Phys. & Math., Gdansk University of Technology _______________________________________________ pld-devel-pl mailing list [EMAIL PROTECTED] http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl
