[webkit-dev] ARM JIT for WinCE

Patrick Roland Gansterer paroga at paroga.com
Wed Jan 6 02:59:35 PST 2010


Hi,

I'm trying to enable the JIT for CPU(ARM_TRADITIONAL) && OS(WINCE).
It already passes the RegExp-Tests with ENABLE_YARR_JIT. If i set all 
ENABLE_JIT_OPTIMIZE_* to 0 it won't compile.
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):
ctiTrampoline proc
    stmdb sp!, {r1-r3}
    stmdb sp!, {r4-r8, lr}
    sub sp, sp, #36
    mov r4, r2
    mov r5, #512
    mov lr, pc
    mov pc, r0
    add sp, sp, #36
    ldmia sp!, {r4-r8, lr}
    add sp, sp, #12
    mov pc, lr
    endp

ctiVMThrowTrampoline proc
    mov r0, sp
    bl cti_vm_throw
    endp

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

I can compile and link it without problems, but it crashes with a nullpointer 
at runtime and a strange callstack. When i use a debugger and step into 
ctiTrampoline it stops at the second stmdb because it can't find the 
sourcecode. :-/
I've done a #pragma pack(4) around the JITStackFrame.

Can somebody give me a hint where to search for the failure?

- Patrick


More information about the webkit-dev mailing list