EABI worked, thanks a lot!

On Mar 5, 2:02 pm, Erik Corry <[email protected]> wrote:
> 2010/3/5 vlad burlik <[email protected]>:
>
> > Thank you!
> > I'm using ARM11 armv6 with vfpv2 support.
>
> The VFP support in V8 is called VFP3, but as far as I know we don't
> use any instructions that weren't already in VFP2.  You probably want
> to activate the EABI support and the VFP2 support.  If you know what
> hardware you are using you should use the macros (or patch the VM) to
> activate VFP and ARMv6 regardless of autodetection.
>
>
>
>
>
> > On Mar 5, 10:30 am, Erik Corry <[email protected]> wrote:
> >> 2010/3/5 vlad burlik <[email protected]>:
>
> >> > Hi,
> >> > I have a problem with FPU generated code for ARM. Compiled script
> >> > calls the function
> >> > static double mul_two_doubles(double x, double y) {
> >> >  return x * y;
> >> > }
>
> >> > which in asm looks like this:
>
> >> > 0x7aa4d648 <v8::internal::mul_two_doubles>:   fmuld d0,d0,d1
> >> > 0x7aa4d64c <v8::internal::mul_two_doubles+4>: mrrc  p11,0x1,r0,r1,cr0
> >> > 0x7aa4d650 <v8::internal::mul_two_doubles+8>: bx
> >> > lr                     -----> 0x04e1ca7c
>
> >> > then it returns back to the script compiled code:
>
> >> > 0x04e1ca7c ldr           r4,[sp],#4
> >> > 0x04e1ca80 cmp           r4,#0x0
> >> > 0x04e1ca84 ldreq         r4,[sp],#4
> >> > 0x04e1ca88 sub           r5,r4,#0x1
> >> > 0x04e1ca8c stfd          f0,[r5,#4]  <----------------------------
> >> > crash....
>
> >> > Everything works fine until stfd f0,[r5,#4]
>
> >> > stfd supposed to just store the result to the memory address in R5+4,
> >> > which is valid memory block...
>
> >> > Any idea why this could happen? Which function generates: STFD
> >> > instruction( op code for it: ED858101 )?
>
> >> This is around line 5669 in codegen-arm.cc.  It is an stc (store
> >> coprocessor register) instruction in the nomenclature of the V8 ARM
> >> assembler.  This is for the old math coprocessor instruction set,
> >> which is emulated on ARM operating systems that are running the old
> >> (non-EABI) ABI.  If you are using a new CPU with the EABI then you
> >> need to set the ARM_EABI macro and perhaps the
> >> CAN_USE_ARMV7_INSTRUCTIONS macro.  See arm-constants.h.
>
> >> The experimental/partial_snapshots branch also has the macro
> >> CAN_USE_VFP_INSTRUCTIONS which hasn't been ported to trunk or bleeding
> >> edge yet.  Without that flag V8 tries to runtime-detect VFP
> >> instructions using the /proc filesystem on Linux.
>
> >> > Thanks
> >> > Vlad
>
> >> > --
> >> > v8-dev mailing list
> >> > [email protected]
> >> >http://groups.google.com/group/v8-dev
>
> > --
> > v8-dev mailing list
> > [email protected]
> >http://groups.google.com/group/v8-dev- Hide quoted text -
>
> - Show quoted text -

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

Reply via email to