Several bits and pieces of input. 1. The gcc manual, ARM section, says -mhard-float is the default.
2. That doesn't seem to be true, because -mhard-float is not accepted
on the compiler command line.
I wrote a very simple program to fiddle with. Compiling it with
different options gives this :
dannypc: {101} arm-wince-cegcc-gcc -msoft-float -g -D_WIN32_IE=0x0400
-D_WIN32_WCE=0x0400 -o floats.exe float.c -lmmtimer
Info: resolving _CRT_MT by linking to __imp__CRT_MT (auto-import)
dannypc: {102} arm-wince-cegcc-gcc -mhard-float -g -D_WIN32_IE=0x0400
-D_WIN32_WCE=0x0400 -o floath.exe float.c -lmmtimer
float.c:1: sorry, unimplemented: -mfloat-abi=hard and VFP
3. Your statement about ARM processors not having FPUs is not entirely
true. Look at e.g. http://en.wikipedia.org/wiki/ARM_architecture#VFP .
You'll find more references if you look for "arm floating point" or
such on Yahoo! or so.
Another example :
http://download.intel.com/design/intelxscale/27347302.pdf
says that ARM V5 added floating point instructions to ARM V4, but
the XScale core doesn't provide hardware support for the floating
point instructions.
4. The program I compiled (above) gets its floating point support from
the libgcc (included in gcc). I double-checked the executable with
tools such as nm and objdump :-)
5. My simplistic program basically does this :
w1 = timeGetTime();
fprintf(f, "Time is %ld\r\n", w1);
for (n = w1, i=0; i<30000; i++) {
n = n * 0.34 + 3.1;
}
w2 = timeGetTime();
fprintf(f, "Time is %ld\r\n", w2);
fprintf(f, "Difference : %ld\r\n", w2 - w1);
and outputs
Time is 9411223
Time is 9411265
Difference : 42
Those should be milli-seconds. This is on a Mio 168 (Intel PXA 255).
My conclusion : it's gcc, not Windows, that handles the floating point.
The only thing that can be improved appears to be the documentation. But
that's a universal truth.
Danny
On Wed, 2007-04-11 at 15:21 +0200, Klaus Rechert wrote:
> Hi,
>
> i wonder how fpu-calls are handled on WinCE. AFAIK arm cpus do not have FPU
> units. Cegcc is not compiled with soft-float support, therefore i assume the
> wince kernel takes care of fpu-emulation. Should not be gcc soft-float
> support enabled by default, since in general it is faster than kernel
> emulation ?
>
> Klaus
--
Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info
signature.asc
Description: This is a digitally signed message part
------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________ Cegcc-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/cegcc-devel
