Changeset 154075 in webkit for trunk/Source/JavaScriptCore


Ignore:
Timestamp:
Aug 14, 2013, 2:49:45 PM (12 years ago)
Author:
[email protected]
Message:

Fixed jit on Win64.
https://bugs.webkit.org/show_bug.cgi?id=119601

Reviewed by Oliver Hunt.

  • jit/JITStubsMSVC64.asm: Added ctiVMThrowTrampolineSlowpath implementation.
  • jit/JSInterfaceJIT.h: Added thirdArgumentRegister.
  • jit/SlowPathCall.h:

(JSC::JITSlowPathCall::call): Added correct calling convention for Win64.

Location:
trunk/Source/JavaScriptCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r154066 r154075  
     12013-08-14  Michael Saboff  <[email protected]>
     2
     3        Fixed jit on Win64.
     4        https://bugs.webkit.org/show_bug.cgi?id=119601
     5
     6        Reviewed by Oliver Hunt.
     7
     8        * jit/JITStubsMSVC64.asm: Added ctiVMThrowTrampolineSlowpath implementation.
     9        * jit/JSInterfaceJIT.h: Added thirdArgumentRegister.
     10        * jit/SlowPathCall.h:
     11        (JSC::JITSlowPathCall::call): Added correct calling convention for Win64.
     12
    1132013-08-14  Alex Christensen  <[email protected]>
    214
  • trunk/Source/JavaScriptCore/jit/JITStubsMSVC64.asm

    r144043 r154075  
    2525
    2626EXTERN cti_vm_throw : near
     27EXTERN cti_vm_throw_slowpath : near
    2728PUBLIC ctiTrampoline
    2829PUBLIC ctiVMThrowTrampoline
     
    6970ctiVMThrowTrampoline ENDP
    7071
     72ctiVMThrowTrampolineSlowpath PROC
     73        sub rsp, 16
     74    mov rcx, rsp
     75        mov rdx, r13
     76        call cti_vm_throw_slowpath
     77    ; When cti_vm_throw_slowpath returns, rax points to the memory we allocated on stack
     78        ; It contains the callFrame and handler address
     79        pop rax         ; callFrame
     80        pop rdx         ; handler
     81    jmp rdx
     82ctiVMThrowTrampolineSlowpath ENDP
     83 
    7184ctiOpThrowNotCaught PROC
    7285    add rsp, 58h
  • trunk/Source/JavaScriptCore/jit/JSInterfaceJIT.h

    r154016 r154075  
    6363        static const RegisterID firstArgumentRegister = X86Registers::ecx;
    6464        static const RegisterID secondArgumentRegister = X86Registers::edx;
     65        static const RegisterID thirdArgumentRegister = X86Registers::r8;
    6566#endif
    6667
  • trunk/Source/JavaScriptCore/jit/SlowPathCall.h

    r153222 r154075  
    5454        m_jit->push(JIT::TrustedImm32(JIT::TrustedImmPtr(m_pc)));
    5555        m_jit->push(JIT::callFrameRegister);
     56#elif CPU(X86_64) && OS(WINDOWS)
     57        m_jit->addPtr(MacroAssembler::TrustedImm32(-16), MacroAssembler::stackPointerRegister);
     58        m_jit->move(MacroAssembler::stackPointerRegister, JIT::firstArgumentRegister);
     59        m_jit->move(JIT::callFrameRegister, JIT::secondArgumentRegister);
     60        m_jit->move(JIT::TrustedImmPtr(m_pc), JIT::thirdArgumentRegister);
    5661#else
    5762        m_jit->move(JIT::callFrameRegister, JIT::firstArgumentRegister);
     
    6368#if CPU(X86) && USE(JSVALUE32_64)
    6469        m_jit->addPtr(MacroAssembler::TrustedImm32(16), MacroAssembler::stackPointerRegister);
     70#elif CPU(X86_64) && OS(WINDOWS)
     71        m_jit->pop(JIT::regT0); // vPC
     72        m_jit->pop(JIT::regT1); // callFrame register
    6573#endif
    6674
Note: See TracChangeset for help on using the changeset viewer.