From: Alexandre P. N. <al...@om...> - 2005-10-21 18:50:59
|
Robert Lougher escreveu: > [cut] > >I don't actually know what the gumstix uses, but JamVM should correctly >handle the double ordering. The problem is the double->string conversion >code which is part of GNU Classpath. This assumes pure-endianness >(basically everything but ARM fpa). It breaks on the mixed-endianness >of ARM fpa. > >This means arithmetic, etc. is correct, as it is done internally by JamVM, >but printing is broken. You can confirm this by doing some arithmetic >using doubles, and then printing the result after converting it to >an int (or long) after multiplying up (e.g (int)(0.5*10) -> 5). > >There is a bug already raised with GNU Classpath. But you _can_ safely use >floating-point. All calculations are correct. You just can't print them, >without converting to int or long. > >Rob. > > I don't know which format intel x86 uses, but it's the same as employed on gumstix: I've dumped then in binary form (i.e. wrote to disk packed (unaligned) structs composed by doubles and floats to disk on one platform and imported on other and vice-versa, no problems). To my knowledge the arm emulation employed on gumstix doesn't implement long doubles, though (well, at least not in user space libs and gcc, which in turns means mostly everything else). This information doesn't directly help, I know, but it may be of interest to someone. Alexandre |