Changeset 154075 in webkit for trunk/Source/JavaScriptCore
- Timestamp:
- Aug 14, 2013, 2:49:45 PM (12 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r154066 r154075 1 2013-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 1 13 2013-08-14 Alex Christensen <[email protected]> 2 14 -
trunk/Source/JavaScriptCore/jit/JITStubsMSVC64.asm
r144043 r154075 25 25 26 26 EXTERN cti_vm_throw : near 27 EXTERN cti_vm_throw_slowpath : near 27 28 PUBLIC ctiTrampoline 28 29 PUBLIC ctiVMThrowTrampoline … … 69 70 ctiVMThrowTrampoline ENDP 70 71 72 ctiVMThrowTrampolineSlowpath 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 82 ctiVMThrowTrampolineSlowpath ENDP 83 71 84 ctiOpThrowNotCaught PROC 72 85 add rsp, 58h -
trunk/Source/JavaScriptCore/jit/JSInterfaceJIT.h
r154016 r154075 63 63 static const RegisterID firstArgumentRegister = X86Registers::ecx; 64 64 static const RegisterID secondArgumentRegister = X86Registers::edx; 65 static const RegisterID thirdArgumentRegister = X86Registers::r8; 65 66 #endif 66 67 -
trunk/Source/JavaScriptCore/jit/SlowPathCall.h
r153222 r154075 54 54 m_jit->push(JIT::TrustedImm32(JIT::TrustedImmPtr(m_pc))); 55 55 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); 56 61 #else 57 62 m_jit->move(JIT::callFrameRegister, JIT::firstArgumentRegister); … … 63 68 #if CPU(X86) && USE(JSVALUE32_64) 64 69 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 65 73 #endif 66 74
Note:
See TracChangeset
for help on using the changeset viewer.