Ignore:
Timestamp:
Aug 5, 2009, 10:22:42 PM (16 years ago)
Author:
[email protected]
Message:

2009-08-05 Zoltan Herczeg <[email protected]>

Reviewed by Gavin Barraclough.

Add JIT support for generic ARM port without optimizations.
https://bugs.webkit.org/show_bug.cgi?id=24986

All JIT optimizations are disabled.

Signed off by Zoltan Herczeg <[email protected]>
Signed off by Gabor Loki <[email protected]>

  • assembler/ARMAssembler.cpp: (JSC::ARMAssembler::baseIndexTransfer32):
  • assembler/AbstractMacroAssembler.h: (JSC::AbstractMacroAssembler::Imm32::Imm32):
  • assembler/MacroAssemblerARM.h: (JSC::MacroAssemblerARM::store32): (JSC::MacroAssemblerARM::move): (JSC::MacroAssemblerARM::branch32): (JSC::MacroAssemblerARM::add32): (JSC::MacroAssemblerARM::sub32): (JSC::MacroAssemblerARM::load32):
  • bytecode/CodeBlock.h: (JSC::CodeBlock::getBytecodeIndex):
  • jit/JIT.h:
  • jit/JITInlineMethods.h: (JSC::JIT::restoreArgumentReference):
  • jit/JITOpcodes.cpp:
  • jit/JITStubs.cpp:
  • jit/JITStubs.h: (JSC::JITStackFrame::returnAddressSlot):
  • wtf/Platform.h:
File:
1 edited

Legend:

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

    r46704 r46831  
    515515    "add sp, sp, #0x3c" "\n"
    516516    "bx lr" "\n"
     517);
     518
     519#elif COMPILER(GCC) && PLATFORM(ARM)
     520
     521asm volatile (
     522".globl " SYMBOL_STRING(ctiTrampoline) "\n"
     523SYMBOL_STRING(ctiTrampoline) ":" "\n"
     524    "stmdb sp!, {r1-r3}" "\n"
     525    "stmdb sp!, {r4-r8, lr}" "\n"
     526    "mov r6, pc" "\n"
     527    "add r6, r6, #40" "\n"
     528    "sub sp, sp, #32" "\n"
     529    "ldr r4, [sp, #60]" "\n"
     530    "mov r5, #512" "\n"
     531    // r0 contains the code
     532    "add r8, pc, #4" "\n"
     533    "str r8, [sp, #-4]!" "\n"
     534    "mov pc, r0" "\n"
     535    "add sp, sp, #32" "\n"
     536    "ldmia sp!, {r4-r8, lr}" "\n"
     537    "add sp, sp, #12" "\n"
     538    "mov pc, lr" "\n"
     539
     540    // the return instruction
     541    "ldr pc, [sp], #4" "\n"
     542);
     543
     544asm volatile (
     545".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
     546SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
     547    "mov r0, sp" "\n"
     548    "mov lr, r6" "\n"
     549    "add r8, pc, #4" "\n"
     550    "str r8, [sp, #-4]!" "\n"
     551    "b " SYMBOL_STRING(cti_vm_throw) "\n"
     552
     553// Both has the same return sequence
     554".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
     555SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
     556    "add sp, sp, #32" "\n"
     557    "ldmia sp!, {r4-r8, lr}" "\n"
     558    "add sp, sp, #12" "\n"
     559    "mov pc, lr" "\n"
    517560);
    518561
Note: See TracChangeset for help on using the changeset viewer.