Having had a little hunt on the various newsgroups, am I correct in
deducing that:
1. The MS ARM compiler for CE 6.0 does not actually generate inline
VFP instructions?
2. All floating point arithmetic is handles by the CRT, which is
using
a floating point emulation library?
3. If I want to use the hardware VFP then I need to use the new
SYSGEN_OEM_FPCRT - catalog item "OEM Floating Point CRT (ARM only) -
and supply my own CRT which makes use of the VFP hardware?
If I'm correct in these assumptions, has anyone out there generated a
floating point CRT using the ARM11 VFP?
Thanks,
Andrew.
(Sorry for reposting this question - it would appear that my posts on
Google groups were not making it to the MS newsgroup server - maybe
someone who didn't see it on Google has the answer.)
And the answer is:
The VS2005 compiler used by PB for CE6.0 emits no VFP instructions and
unless you implement FPCRT.DLL for an ARM then all CE implementations
are integer (default MS implementation of FPCRT uses software
emulation), even if you have a hardware VFP in your core (e.g. ARM11
or Cortex-A8). To actually use the VFP you must do the following:
1. Use SYSGEN_OEM_FPCRT - catalog item "OEM Floating Point CRT (ARM
only)
2. Download the VFPv2 library support from the ARM website and
incorporate it into your build:
www.arm.com/products/os/windowsce_vfp_dl.html
Instructions are included with the download from ARM.
My tests show a 4x increase in performance on floating point
operations on a release build on an ARM1136JF-S core.
Andrew.