Changeset 222417 in webkit for trunk/Source/JavaScriptCore
- Timestamp:
- Sep 22, 2017, 5:27:47 PM (8 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r222398 r222417 1 2017-09-22 Fujii Hironori <[email protected]> 2 3 [Win64] Crashes in Yarr JIT compiled code 4 https://bugs.webkit.org/show_bug.cgi?id=177293 5 6 Reviewed by Yusuke Suzuki. 7 8 In x64 Windows, rcx register is used for the address of allocated 9 space for the return value. But, rcx is used for regT1 since 10 r221052. Save rcx in the stack. 11 12 * yarr/YarrJIT.cpp: 13 (JSC::Yarr::YarrGenerator::generateEnter): Push ecx. 14 (JSC::Yarr::YarrGenerator::generateReturn): Pop ecx. 15 1 16 2017-09-22 Saam Barati <[email protected]> 2 17 -
trunk/Source/JavaScriptCore/yarr/YarrJIT.cpp
r221167 r222417 2853 2853 if (compileMode == IncludeSubpatterns) 2854 2854 loadPtr(Address(X86Registers::ebp, 6 * sizeof(void*)), output); 2855 // rcx is the pointer to the allocated space for result in x64 Windows. 2856 push(X86Registers::ecx); 2855 2857 #endif 2856 2858 #elif CPU(X86) … … 2902 2904 #if OS(WINDOWS) 2903 2905 // Store the return value in the allocated space pointed by rcx. 2906 pop(X86Registers::ecx); 2904 2907 store64(returnRegister, Address(X86Registers::ecx)); 2905 2908 store64(returnRegister2, Address(X86Registers::ecx, sizeof(void*)));
Note:
See TracChangeset
for help on using the changeset viewer.