Changeset 109307 in webkit for trunk/Source/JavaScriptCore/assembler/LinkBuffer.h
- Timestamp:
- Feb 29, 2012, 9:46:20 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/LinkBuffer.h
r108444 r109307 35 35 #define REGEXP_CODE_ID reinterpret_cast<void*>(static_cast<intptr_t>(-2)) 36 36 37 #include "JITCompilationEffort.h" 37 38 #include "MacroAssembler.h" 38 39 #include <wtf/DataLog.h> … … 74 75 75 76 public: 76 LinkBuffer(JSGlobalData& globalData, MacroAssembler* masm, void* ownerUID )77 LinkBuffer(JSGlobalData& globalData, MacroAssembler* masm, void* ownerUID, JITCompilationEffort effort = JITCompilationMustSucceed) 77 78 : m_size(0) 78 79 #if ENABLE(BRANCH_COMPACTION) … … 84 85 #ifndef NDEBUG 85 86 , m_completed(false) 86 #endif 87 { 88 linkCode(ownerUID); 87 , m_effort(effort) 88 #endif 89 { 90 linkCode(ownerUID, effort); 89 91 } 90 92 91 93 ~LinkBuffer() 92 94 { 93 ASSERT(m_completed); 94 } 95 95 ASSERT(m_completed || (!m_executableMemory && m_effort == JITCompilationCanFail)); 96 } 97 98 bool didFailToAllocate() const 99 { 100 return !m_executableMemory; 101 } 102 103 bool isValid() const 104 { 105 return !didFailToAllocate(); 106 } 107 96 108 // These methods are used to link or set values at code generation time. 97 109 … … 219 231 } 220 232 221 void linkCode(void* ownerUID )233 void linkCode(void* ownerUID, JITCompilationEffort effort) 222 234 { 223 235 ASSERT(!m_code); 224 236 #if !ENABLE(BRANCH_COMPACTION) 225 m_executableMemory = m_assembler->m_assembler.executableCopy(*m_globalData, ownerUID );237 m_executableMemory = m_assembler->m_assembler.executableCopy(*m_globalData, ownerUID, effort); 226 238 if (!m_executableMemory) 227 239 return; … … 231 243 #else 232 244 m_initialSize = m_assembler->m_assembler.codeSize(); 233 m_executableMemory = m_globalData->executableAllocator.allocate(*m_globalData, m_initialSize, ownerUID );245 m_executableMemory = m_globalData->executableAllocator.allocate(*m_globalData, m_initialSize, ownerUID, effort); 234 246 if (!m_executableMemory) 235 247 return; … … 308 320 #ifndef NDEBUG 309 321 ASSERT(!m_completed); 322 ASSERT(isValid()); 310 323 m_completed = true; 311 324 #endif … … 376 389 #ifndef NDEBUG 377 390 bool m_completed; 391 JITCompilationEffort m_effort; 378 392 #endif 379 393 };
Note:
See TracChangeset
for help on using the changeset viewer.