This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC 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: Toolchain for Maverick Crunch FPU


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 Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]