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
-~----------~----~----~----~------~----~------~--~---

Reply via email to