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
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel

Reply via email to