Pedro Alves wrote:
> The float ABI is something that has been on my todo list,
> like confirming the alignments, packing, endianess, calling conventions
> related to floats/doubles.
> I would really like to find some authorative (MSDN/Microsoft)
> information about this.
>
Well, talking is cheap...
Just got home, and tested this on mingw32ce:
#include <stdio.h>
int main(int argc, char** argv)
{
printf (#%d, %f, %d\n", 1, (double)3.4f, 3);
return 0;
}
With :
´-mfloat-abi=soft -mfpu=fpa´ (bigendian doubles)
'-mfloat-abi=hard' (bigendian doubles)
The result is:
1, 2.000000, 3
but, with:
'-mfpu=vfp' (little endian doubles)
I get a good result.
Pretty much ignore what I said about WinCE's float abi being bigendian.
The doubles must be stored as little endian. That will teach me to test
before asserting things :)
Our default of -mfloat-abi=soft -mfpu-vfp does exactly that.
(actually, '-msoft-float -mfpu-vfp', but '-msoft-float' ==
'-mfloat-abi=soft')
So to generate vfp instructions, you can use:
'-mfloat-abi=softfp -mfpu-vfp'
There you go Andy, we are WinCE 6 ready :)
I don't know if changing to softfp breaks anything...
I'll do a local change, and test this (going to take a while).
I'll post here my findings. Meanwhile, if someone finds more information
regarding *WinCE's* float ABI, please send it over. I would really
appreciate it.
Cheers,
Pedro Alves
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Cegcc-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cegcc-devel