On Oct 13, 11:04 am, Erik Corry <[email protected]> wrote: > 2009/10/12 mvv <[email protected]>: > > > I used: USE_ARM_EABI, V8_TARGET_ARCH_ARM and __arm__ to force arm > > execution. Thing is that WinCE uses bigendian word ordering for > > doubles. So I think that BIG_ENDIAN_FLOATING_POINT has to be defined, > > because kMantissaOffset == kValueOffset + 4; > > Are you sure? If the mantissa is second then that is big endian FP, > which is the opposite of what I would expect from EABI on a little > endian OS. I think revision 3054 on bleeding edge might fix your > issues?
I was wrong :-). Your change (3054) made all the difference. Now everything seems to work correctly. > > I got it working today (quick and dirty) by changing #ifndef to #ifdef > > BIG_ENDIAN_FLOATING_POINT in ConvertToDoubleStub::Generate(). in > > codegen_arm.cc. That way, for example, r0 is always exponent while r1 > > holds the mantissa. > > I think this fixes it by being doubly wrong :-). The > BIG_ENDIAN_FLOATING_POINT macro is set wrong because of the issue > fixed in 3054, then you reverse the test to make it right again. But > the kMantissaOffset and kExponentOffset macros are still wrong which > would explain your other issues. I knew that this is not correct way to do it. I was confused with some of the code, but I also spotted that V8 incorrectly swaps words in doubles. I kind of tried it out, just to see ... Any way ... thank you very much for your help. -Marko. --~--~---------~--~----~------------~-------~--~----~ v8-users mailing list [email protected] http://groups.google.com/group/v8-users -~----------~----~----~----~------~----~------~--~---
