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

>
> That fixed only the problem in smi -> double conversion.. Double ->
> smi still doesn't work. Code: var x = 7.2; var y = x|0; doesn't work
> as expected. I still haven't found where things go wrong this time. I
> think there is a confusion right now with defining ABI and word
> ordering.

>
> But I must say that all this is probably easily fixable. V8 shows very
> good performance on arm and I'm really pleased with it so far.

Glad to hear it! :-)

>
> Thanks,
>
> -Marko.
>
> >
>



-- 
Erik Corry, Software Engineer
Google Denmark ApS.  CVR nr. 28 86 69 84
c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018
Copenhagen K, Denmark.

--~--~---------~--~----~------------~-------~--~----~
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
-~----------~----~----~----~------~----~------~--~---

Reply via email to