[webkit-dev] ARM JIT for WinCE

Gabor Loki loki at inf.u-szeged.hu
Wed Jan 6 04:24:40 PST 2010


Hi Patrick,

Patrick Roland Gansterer wrote:
> I'm trying to enable the JIT for CPU(ARM_TRADITIONAL) && OS(WINCE).
> MSVC supports inline assembler only for X86, so i had to provide a separate 
> asm file (i copied the code from the GCC #ifdef with !JSVALUE32_64):
> 
> ctiVMThrowTrampoline proc
>     mov r0, sp
>     bl cti_vm_throw
>     endp

Make sure your assembler does not break ctiVMThrowTrampoline
and ctiOpThrowNotCaught functions. This approach requires that the
ctiVMThrowTrampoline fall-backs to ctiOpThrowNotCaught
after 'bl cti_vm_throw' call. Or you can simply copy the body of
ctiOpThrowNotCaught into ctiVMThrowTrampoline after the
call.

> ctiOpThrowNotCaught proc
>     add sp, sp, #36
>     ldmia sp!, {r4-r8, lr}
>     add sp, sp, #12
>     mov pc, lr
>     endp

Did you do anything with DEFINE_STUB_FUNCTION macro?

You can check how should it be handled for ARM_TRADITIONAL.
See after the following line in JITStubs.cpp:
#elif CPU(ARM_TRADITIONAL) && COMPILER(GCC)

I guess this will not work for you, so try to examine
the following bugzilla entry.
https://bugs.webkit.org/show_bug.cgi?id=30552
The attached patch shows how we would like to interpret
DEFINE_STUB_FUNCTION for RVCT compiler:


--Gabor


More information about the webkit-dev mailing list