Changeset 38387 in webkit
- Timestamp:
- Nov 14, 2008 12:21:02 AM (15 years ago)
- Location:
- trunk/JavaScriptCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r38383 r38387 1 2008-11-14 Cameron Zwarich <zwarich@apple.com> 2 3 Reviewed by Maciej Stachowiak. 4 5 Bug 22257: Enable redundant read optimizations for results generated by compileBinaryArithOp() 6 <https://bugs.webkit.org/show_bug.cgi?id=22257> 7 8 This shows no change in performance on either SunSpider or the V8 9 benchmark suite, but it removes an ugly special case and allows for 10 future optimizations to be implemented in a cleaner fashion. 11 12 This patch was essentially given to me by Gavin Barraclough upon my 13 request, but I did regression and performance testing so that he could 14 work on something else. 15 16 * VM/CTI.cpp: 17 (JSC::CTI::putDoubleResultToJSNumberCellOrJSImmediate): Move the final 18 result to eax if it is not already there. 19 (JSC::CTI::compileBinaryArithOp): Remove the killing of the final result 20 register that disables the optimization. 21 1 22 2008-11-13 Eric Seidel <eric@webkit.org> 2 23 -
trunk/JavaScriptCore/VM/CTI.cpp
r38379 r38387 853 853 // Store the result to the JSNumberCell and jump. 854 854 m_jit.movsd_rm(xmmSource, OBJECT_OFFSET(JSNumberCell, m_value), jsNumberCell); 855 emitPutResult(dst, jsNumberCell); 855 if (jsNumberCell != X86::eax) 856 m_jit.movl_rr(jsNumberCell, X86::eax); 857 emitPutResult(dst); 856 858 *wroteJSNumberCell = m_jit.emitUnlinkedJmp(); 857 859 … … 865 867 // Yes it really really really is representable as a JSImmediate. 866 868 emitFastArithIntToImmNoCheck(tempReg1); 867 emitPutResult(dst, tempReg1); 869 if (tempReg1 != X86::eax) 870 m_jit.movl_rr(tempReg1, X86::eax); 871 emitPutResult(dst); 868 872 } 869 873 … … 1015 1019 m_jit.link(wasJSNumberCell1b, m_jit.label()); 1016 1020 } 1017 1018 // FIXME: make the different cases of this function all use eax as the1019 // destination register and enable the register caching optimization.1020 killLastResultRegister();1021 1021 } 1022 1022
Note: See TracChangeset
for help on using the changeset viewer.