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