Changeset 44523 in webkit for trunk/JavaScriptCore/jit/JIT.cpp


Ignore:
Timestamp:
Jun 8, 2009, 11:52:25 PM (16 years ago)
Author:
[email protected]
Message:

2009-06-08 Gavin Barraclough <[email protected]>

Reviewed by Geoff Garen.

Enable JS language JIT for ARM thumb2 platforms. Add ARMv7 specific
asm & constants, add appropriate configuration switches to Platform.h.

Landing this disabled until jump linking is completed (see YARR jit patch).

  • assembler/MacroAssemblerARMv7.h: (JSC::MacroAssemblerARMv7::load32):

Fix: should load pointer with ImmPtr not Imm32.

(JSC::MacroAssemblerARMv7::store32):

Fix: should load pointer with ImmPtr not Imm32.

(JSC::MacroAssemblerARMv7::move):

Fix: When moving an Imm32 that is actually a pointer, should call movT3()
not mov(), to ensure code generation is repeatable (for exception handling).

  • jit/JIT.cpp: (JSC::JIT::privateCompileCTIMachineTrampolines):

Disable JIT_OPTIMIZE_NATIVE_CALL specific code generation if the optimization is not enabled.

  • jit/JIT.h:

Add ARMv7 specific values of constants & register names.

  • jit/JITInlineMethods.h: (JSC::JIT::preverveReturnAddressAfterCall): (JSC::JIT::restoreReturnAddressBeforeReturn): (JSC::JIT::restoreArgumentReferenceForTrampoline):

Implement for ARMv7 (move value to/from lr).

  • jit/JITStubs.cpp:

Add JIT entry/thow trampolines, add macro to add thunk wrapper around stub routines.

  • jit/JITStubs.h: (JSC::JITStackFrame::returnAddressSlot):

Add ARMv7 stack frame object.

  • wtf/Platform.h:

Add changes necessary to allow JIT to build on this platform, disabled.

File:
1 edited

Legend:

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

    r44455 r44523  
    715715   
    716716    addPtr(Imm32(sizeof(ArgList)), stackPointerRegister);
    717 #else
     717#elif PLATFORM(X86)
    718718    emitGetFromCallFrameHeader32(RegisterFile::ArgumentCount, regT0);
    719719
     
    807807    addPtr(Imm32(NativeCallFrameSize - sizeof(NativeFunctionCalleeSignature)), stackPointerRegister);
    808808
     809#elif ENABLE(JIT_OPTIMIZE_NATIVE_CALL)
     810#error "JIT_OPTIMIZE_NATIVE_CALL not yet supported on this platform."
     811#else
     812    breakpoint();
    809813#endif
    810814
Note: See TracChangeset for help on using the changeset viewer.