Re: Toolchain for Maverick Crunch FPU

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Claudio Scordino wrote:
Kai Ruottu wrote:
Claudio Scordino wrote:
I'm looking for a toolchain capable of compiling floating point operations for the Maverick Crunch Math engine of Cirrus EP93xx processors.

Cirrus provides some scripts to build a gcc-3.4 toolchain with such support, but unfortunately they don't work.

I heard that gcc 4 has the support for such FPU as well. Is it true ?
A quick look at the current gcc-4.1.2 sources told that there is support for Maverick as the FPU in ARM...

Good!

Does it work ?
Don't know how well it works...

That remains my main concern...

Things seem to be that the '-mcpu=ep9312 -mhard-float' combination will crash the GCC build in both gcc-4.1.2 and gcc-4.2.0-20070316 prerelease like :

/data1/home/src/gcc-4.2.0-20070316/build/./gcc/xgcc -B/data1/home/src/gcc-4.2.0-20070316/build/./gcc/ -B/usr/local/arm-elf/bin/ -B/usr/local/arm-elf/lib/ -isystem /usr/local/arm-elf/include -isystem /usr/local/arm-elf/sys-include -O2 -O2 -Os -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fno-inline -g -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -I../../gcc/../libcpp/include -I../../gcc/../libdecnumber -I../libdecnumber -mcpu=ep9312 -mhard-float -DL_addsubdf3 -xassembler-with-cpp -c ../../gcc/config/arm/lib1funcs.asm -o libgcc/ep9312/fpu/_addsubdf3.o
../../gcc/config/arm/ieee754-df.S: Assembler messages:
../../gcc/config/arm/ieee754-df.S:454: Error: selected processor does not support `mvfeqd f0,#0.0' ../../gcc/config/arm/ieee754-df.S:476: Error: selected processor does not support `mvfeqd f0,#0.0' ../../gcc/config/arm/ieee754-df.S:530: Error: selected processor does not support `ldfd f0,[sp],#8'
make[3]: *** [libgcc/ep9312/fpu/_addsubdf3.o] Error 1
make[3]: Leaving directory `/data1/home/src/gcc-4.2.0-20070316/build/gcc'

when enabling the mhard-float/msoft-float multilibs additionally with the 'mcpu=ep9312' ones in the 'gcc/config/arm/t-arm-elf' Makefile-fragment.... Without the '-mhard-float' those fp-bit/dp-bit based soft-float routines will be generated into the 'ep9312/libgcc.a', so the bare '-mcpu=ep9312' will mean "use this CPU with soft-float as default", which would sound being the same as generating soft-float always for 'i586', 'i686' etc. which always have that built-in 'i587', 'i687' etc. Assuming that those 'ep93xx'
series  members always that "Maverick FPU"....

Producing GCC with only that '-mcpu=ep9312' addition and then having only soft-float routines for it in the used 'libgcc.a' may or may not work with self-built objects produced with both '-mcpu=ep9312' and '-mhard-float'. But using '-mcpu=ep9312 -mfpu=maverick' DOESN'T generate any "Maverick
specific" FPU instructions :-(

So could someone tell if the '-mcpu=ep9312' should work in gcc-4.1 and gcc-4.2 and how it should work so that using the Maverick FPU could be possible? Or is the FPU itself somehow broken and
people shouldn't try to use it at all?




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux