Changeset 157500 in webkit
- Timestamp:
- Oct 16, 2013 1:40:51 AM (11 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r157489 r157500 1 2013-10-16 Julien Brianceau <jbriance@cisco.com> 2 3 Remove more of the UNINTERRUPTED_SEQUENCE thing 4 https://bugs.webkit.org/show_bug.cgi?id=122885 5 6 Reviewed by Andreas Kling. 7 8 It was not completely removed by r157481, leading to build failure for sh4 architecture. 9 10 * jit/JIT.h: 11 * jit/JITInlines.h: 12 1 13 2013-10-15 Filip Pizlo <fpizlo@apple.com> 2 14 -
trunk/Source/JavaScriptCore/jit/JIT.h
r157481 r157500 908 908 unsigned m_jumpTargetsPosition; 909 909 910 #ifndef NDEBUG911 #if defined(ASSEMBLER_HAS_CONSTANT_POOL) && ASSEMBLER_HAS_CONSTANT_POOL912 Label m_uninterruptedInstructionSequenceBegin;913 int m_uninterruptedConstantSequenceBegin;914 #endif915 #endif916 910 OwnPtr<JITDisassembler> m_disassembler; 917 911 RefPtr<Profiler::Compilation> m_compilation; -
trunk/Source/JavaScriptCore/jit/JITInlines.h
r157480 r157500 117 117 } 118 118 119 #if defined(ASSEMBLER_HAS_CONSTANT_POOL) && ASSEMBLER_HAS_CONSTANT_POOL120 121 ALWAYS_INLINE void JIT::beginUninterruptedSequence(int insnSpace, int constSpace)122 {123 #if CPU(ARM_TRADITIONAL)124 #ifndef NDEBUG125 // Ensure the label after the sequence can also fit126 insnSpace += sizeof(ARMWord);127 constSpace += sizeof(uint64_t);128 #endif129 130 ensureSpace(insnSpace, constSpace);131 132 #elif CPU(SH4)133 #ifndef NDEBUG134 insnSpace += sizeof(SH4Word);135 constSpace += sizeof(uint64_t);136 #endif137 138 m_assembler.ensureSpace(insnSpace + m_assembler.maxInstructionSize + 2, constSpace + 8);139 #endif140 141 #ifndef NDEBUG142 m_uninterruptedInstructionSequenceBegin = label();143 m_uninterruptedConstantSequenceBegin = sizeOfConstantPool();144 #endif145 }146 147 ALWAYS_INLINE void JIT::endUninterruptedSequence(int insnSpace, int constSpace, int dst)148 {149 #ifndef NDEBUG150 /* There are several cases when the uninterrupted sequence is larger than151 * maximum required offset for pathing the same sequence. Eg.: if in a152 * uninterrupted sequence the last macroassembler's instruction is a stub153 * call, it emits store instruction(s) which should not be included in the154 * calculation of length of uninterrupted sequence. So, the insnSpace and155 * constSpace should be upper limit instead of hard limit.156 */157 158 #if CPU(SH4)159 if ((dst > 15) || (dst < -16)) {160 insnSpace += 8;161 constSpace += 2;162 }163 164 if (((dst >= -16) && (dst < 0)) || ((dst > 7) && (dst <= 15)))165 insnSpace += 8;166 #else167 UNUSED_PARAM(dst);168 #endif169 170 ASSERT(differenceBetween(m_uninterruptedInstructionSequenceBegin, label()) <= insnSpace);171 ASSERT(sizeOfConstantPool() - m_uninterruptedConstantSequenceBegin <= constSpace);172 #else173 UNUSED_PARAM(insnSpace);174 UNUSED_PARAM(constSpace);175 UNUSED_PARAM(dst);176 #endif177 }178 179 #endif // ASSEMBLER_HAS_CONSTANT_POOL180 181 119 ALWAYS_INLINE void JIT::updateTopCallFrame() 182 120 {
Note: See TracChangeset
for help on using the changeset viewer.