Ignore:
Timestamp:
Aug 5, 2010, 10:50:51 PM (15 years ago)
Author:
[email protected]
Message:

The ARM JIT does not support JSValue32_64 with RVCT
https://bugs.webkit.org/show_bug.cgi?id=43411

Reviewed by Gavin Barraclough.

JSValue32_64 is enabled for RVCT by default.

  • create_jit_stubs:
  • jit/JITStubs.cpp:

(JSC::ctiTrampoline):
(JSC::ctiVMThrowTrampoline):
(JSC::ctiOpThrowNotCaught):

  • wtf/Platform.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/jit/JITStubs.cpp

    r64798 r64818  
    240240#define ENABLE_PROFILER_REFERENCE_OFFSET 0x60
    241241
    242 #elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
     242#elif (COMPILER(GCC) || COMPILER(RVCT)) && CPU(ARM_TRADITIONAL)
    243243
    244244#define THUNK_RETURN_ADDRESS_OFFSET 64
     
    458458#define ENABLE_PROFILER_REFERENCE_OFFSET 0x40
    459459
    460 #elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
     460#elif (COMPILER(GCC) || COMPILER(RVCT)) && CPU(ARM_TRADITIONAL)
    461461
    462462#define THUNK_RETURN_ADDRESS_OFFSET 32
     
    555555);
    556556
    557 #elif COMPILER(RVCT) && CPU(ARM_TRADITIONAL)
    558 
    559 #define THUNK_RETURN_ADDRESS_OFFSET 32
    560 #define PRESERVEDR4_OFFSET          36
    561 
    562 __asm EncodedJSValue ctiTrampoline(void*, RegisterFile*, CallFrame*, JSValue*, Profiler**, JSGlobalData*)
    563 {
    564     ARM
    565     stmdb sp!, {r1-r3}
    566     stmdb sp!, {r4-r8, lr}
    567     sub sp, sp, #36
    568     mov r4, r2
    569     mov r5, #512
    570     mov lr, pc
    571     bx r0
    572     add sp, sp, #36
    573     ldmia sp!, {r4-r8, lr}
    574     add sp, sp, #12
    575     bx lr
    576 }
    577 
    578 __asm void ctiVMThrowTrampoline()
    579 {
    580     ARM
    581     PRESERVE8
    582     mov r0, sp
    583     bl cti_vm_throw
    584     add sp, sp, #36
    585     ldmia sp!, {r4-r8, lr}
    586     add sp, sp, #12
    587     bx lr
    588 }
    589 
    590 __asm void ctiOpThrowNotCaught()
    591 {
    592     ARM
    593     add sp, sp, #36
    594     ldmia sp!, {r4-r8, lr}
    595     add sp, sp, #12
    596     bx lr
    597 }
    598 
    599557#elif COMPILER(MSVC) && CPU(X86)
    600558
     
    768726);
    769727
     728#elif COMPILER(RVCT) && CPU(ARM_TRADITIONAL)
     729
     730__asm EncodedJSValue ctiTrampoline(void*, RegisterFile*, CallFrame*, JSValue*, Profiler**, JSGlobalData*)
     731{
     732    ARM
     733    stmdb sp!, {r1-r3}
     734    stmdb sp!, {r4-r8, lr}
     735    sub sp, sp, # PRESERVEDR4_OFFSET
     736    mov r4, r2
     737    mov r5, #512
     738    mov lr, pc
     739    bx r0
     740    add sp, sp, # PRESERVEDR4_OFFSET
     741    ldmia sp!, {r4-r8, lr}
     742    add sp, sp, #12
     743    bx lr
     744}
     745
     746__asm void ctiVMThrowTrampoline()
     747{
     748    ARM
     749    PRESERVE8
     750    mov r0, sp
     751    bl cti_vm_throw
     752    add sp, sp, # PRESERVEDR4_OFFSET
     753    ldmia sp!, {r4-r8, lr}
     754    add sp, sp, #12
     755    bx lr
     756}
     757
     758__asm void ctiOpThrowNotCaught()
     759{
     760    ARM
     761    add sp, sp, # PRESERVEDR4_OFFSET
     762    ldmia sp!, {r4-r8, lr}
     763    add sp, sp, #12
     764    bx lr
     765}
    770766#endif
    771767
     
    11381134RVCT(    ARM)
    11391135RVCT(    IMPORT JITStubThunked_#op#)
    1140 RVCT(    str lr, [sp, ##offset#])
     1136RVCT(    str lr, [sp, # THUNK_RETURN_ADDRESS_OFFSET])
    11411137RVCT(    bl JITStubThunked_#op#)
    1142 RVCT(    ldr lr, [sp, ##offset#])
     1138RVCT(    ldr lr, [sp, # THUNK_RETURN_ADDRESS_OFFSET])
    11431139RVCT(    bx lr)
    11441140RVCT(})
Note: See TracChangeset for help on using the changeset viewer.