Changeset 170147 in webkit
- Timestamp:
- Jun 19, 2014 9:32:31 AM (10 years ago)
- Location:
- trunk
- Files:
-
- 56 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ChangeLog
r170052 r170147 1 2014-06-19 Dániel Bátyai <dbatyai.u-szeged@partner.samsung.com> 2 3 Remove ENABLE(LLINT) and ENABLE(LLINT_C_LOOP) guards 4 https://bugs.webkit.org/show_bug.cgi?id=130389 5 6 Reviewed by Mark Lam. 7 8 Removed ENABLE(LLINT) since we always build with it, and changed ENABLE(LLINT_C_LOOP) 9 into !ENABLE(JIT) since they are mutually exclusive. 10 11 * Source/cmake/OptionsEfl.cmake: 12 * Source/cmake/OptionsGTK.cmake: 13 * Source/cmake/WebKitFeatures.cmake: 14 * Source/cmakeconfig.h.cmake: 15 1 16 2014-06-17 Zan Dobersek <zdobersek@igalia.com> 2 17 -
trunk/Source/JavaScriptCore/CMakeLists.txt
r169703 r170147 569 569 endif () 570 570 571 if (ENABLE_LLINT) 572 # We cannot check for RUBY_FOUND because it is set only when the full package is installed and 573 # the only thing we need is the interpreter. Unlike Python, cmake does not provide a macro 574 # for finding the only Ruby interpreter. 575 if (NOT RUBY_EXECUTABLE) 576 message(FATAL_ERROR "The Ruby interpreter is needed to generate LLInt files.") 577 endif () 578 579 set(LLINT_ASM 580 llint/LowLevelInterpreter.asm 581 llint/LowLevelInterpreter32_64.asm 582 llint/LowLevelInterpreter64.asm 583 ) 584 585 set(OFFLINE_ASM 586 offlineasm/arm.rb 587 offlineasm/ast.rb 588 offlineasm/backends.rb 589 offlineasm/cloop.rb 590 offlineasm/config.rb 591 offlineasm/instructions.rb 592 offlineasm/offsets.rb 593 offlineasm/opt.rb 594 offlineasm/parser.rb 595 offlineasm/registers.rb 596 offlineasm/risc.rb 597 offlineasm/self_hash.rb 598 offlineasm/settings.rb 599 offlineasm/transform.rb 600 offlineasm/x86.rb 601 ) 602 603 add_custom_command( 604 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm 605 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/generate-bytecode-files 606 DEPENDS ${JAVASCRIPTCORE_DIR}/generate-bytecode-files bytecode/BytecodeList.json 607 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/generate-bytecode-files --bytecodes_h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h --init_bytecodes_asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm ${JAVASCRIPTCORE_DIR}/bytecode/BytecodeList.json 608 VERBATIM) 609 610 add_custom_command( 611 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h 612 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb 613 DEPENDS ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm 614 COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb -I${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h 615 VERBATIM) 616 617 # We add the header files directly to the ADD_EXECUTABLE call instead of setting the 618 # OBJECT_DEPENDS property in LLIntOffsetsExtractor.cpp because generate_offset_extractor.rb and 619 # generate-bytecode-files may not regenerate the .h files in case the hash it calculates does not change. 620 # In this case, if some of the dependencies specified in the ADD_CUSTOM_COMMANDs above have 621 # changed the command will always be called because the mtime of the .h files will 622 # always be older than that of their dependencies. 623 # Additionally, setting the OBJECT_DEPENDS property will make the .h files a Makefile 624 # dependency of both LLIntOffsetsExtractor and LLIntOffsetsExtractor.cpp, so the command will 625 # actually be run multiple times! 626 add_executable(LLIntOffsetsExtractor 627 ${JAVASCRIPTCORE_DIR}/llint/LLIntOffsetsExtractor.cpp 628 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h 629 ) 630 target_link_libraries(LLIntOffsetsExtractor WTF) 631 632 # The build system will execute asm.rb every time LLIntOffsetsExtractor's mtime is newer than 633 # LLIntAssembly.h's mtime. The problem we have here is: asm.rb has some built-in optimization 634 # that generates a checksum of the LLIntOffsetsExtractor binary, if the checksum of the new 635 # LLIntOffsetsExtractor matches, no output is generated. To make this target consistent and avoid 636 # running this command for every build, we artificially update LLIntAssembly.h's mtime (using touch) 637 # after every asm.rb run. 638 add_custom_command( 639 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h 640 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb 641 DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm 642 COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb -I${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm $<TARGET_FILE:LLIntOffsetsExtractor> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h 643 COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h 644 VERBATIM) 645 646 # The explanation for not making LLIntAssembly.h part of the OBJECT_DEPENDS property of some of 647 # the .cpp files below is similar to the one in the previous comment. However, since these .cpp 648 # files are used to build JavaScriptCore itself, we can just add LLIntAssembly.h to JSC_HEADERS 649 # since it is used in the add_library() call at the end of this file. 650 list(APPEND JavaScriptCore_HEADERS 651 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h 652 ) 653 list(APPEND JavaScriptCore_SOURCES 654 llint/LLIntCLoop.cpp 655 llint/LLIntData.cpp 656 llint/LLIntEntrypoint.cpp 657 llint/LLIntExceptions.cpp 658 llint/LLIntSlowPaths.cpp 659 llint/LLIntThunks.cpp 660 llint/LowLevelInterpreter.cpp 661 ) 571 # We cannot check for RUBY_FOUND because it is set only when the full package is installed and 572 # the only thing we need is the interpreter. Unlike Python, cmake does not provide a macro 573 # for finding the only Ruby interpreter. 574 if (NOT RUBY_EXECUTABLE) 575 message(FATAL_ERROR "The Ruby interpreter is needed to generate LLInt files.") 662 576 endif () 577 578 set(LLINT_ASM 579 llint/LowLevelInterpreter.asm 580 llint/LowLevelInterpreter32_64.asm 581 llint/LowLevelInterpreter64.asm 582 ) 583 584 set(OFFLINE_ASM 585 offlineasm/arm.rb 586 offlineasm/ast.rb 587 offlineasm/backends.rb 588 offlineasm/cloop.rb 589 offlineasm/config.rb 590 offlineasm/instructions.rb 591 offlineasm/offsets.rb 592 offlineasm/opt.rb 593 offlineasm/parser.rb 594 offlineasm/registers.rb 595 offlineasm/risc.rb 596 offlineasm/self_hash.rb 597 offlineasm/settings.rb 598 offlineasm/transform.rb 599 offlineasm/x86.rb 600 ) 601 602 add_custom_command( 603 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm 604 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/generate-bytecode-files 605 DEPENDS ${JAVASCRIPTCORE_DIR}/generate-bytecode-files bytecode/BytecodeList.json 606 COMMAND ${PYTHON_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/generate-bytecode-files --bytecodes_h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h --init_bytecodes_asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm ${JAVASCRIPTCORE_DIR}/bytecode/BytecodeList.json 607 VERBATIM) 608 609 add_custom_command( 610 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h 611 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb 612 DEPENDS ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm 613 COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/generate_offset_extractor.rb -I${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h 614 VERBATIM) 615 616 # We add the header files directly to the ADD_EXECUTABLE call instead of setting the 617 # OBJECT_DEPENDS property in LLIntOffsetsExtractor.cpp because generate_offset_extractor.rb and 618 # generate-bytecode-files may not regenerate the .h files in case the hash it calculates does not change. 619 # In this case, if some of the dependencies specified in the ADD_CUSTOM_COMMANDs above have 620 # changed the command will always be called because the mtime of the .h files will 621 # always be older than that of their dependencies. 622 # Additionally, setting the OBJECT_DEPENDS property will make the .h files a Makefile 623 # dependency of both LLIntOffsetsExtractor and LLIntOffsetsExtractor.cpp, so the command will 624 # actually be run multiple times! 625 add_executable(LLIntOffsetsExtractor 626 ${JAVASCRIPTCORE_DIR}/llint/LLIntOffsetsExtractor.cpp 627 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntDesiredOffsets.h ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/Bytecodes.h 628 ) 629 target_link_libraries(LLIntOffsetsExtractor WTF) 630 631 # The build system will execute asm.rb every time LLIntOffsetsExtractor's mtime is newer than 632 # LLIntAssembly.h's mtime. The problem we have here is: asm.rb has some built-in optimization 633 # that generates a checksum of the LLIntOffsetsExtractor binary, if the checksum of the new 634 # LLIntOffsetsExtractor matches, no output is generated. To make this target consistent and avoid 635 # running this command for every build, we artificially update LLIntAssembly.h's mtime (using touch) 636 # after every asm.rb run. 637 add_custom_command( 638 OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h 639 MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb 640 DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/InitBytecodes.asm 641 COMMAND ${RUBY_EXECUTABLE} ${JAVASCRIPTCORE_DIR}/offlineasm/asm.rb -I${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/ ${JAVASCRIPTCORE_DIR}/llint/LowLevelInterpreter.asm $<TARGET_FILE:LLIntOffsetsExtractor> ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h 642 COMMAND ${CMAKE_COMMAND} -E touch_nocreate ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h 643 VERBATIM) 644 645 # The explanation for not making LLIntAssembly.h part of the OBJECT_DEPENDS property of some of 646 # the .cpp files below is similar to the one in the previous comment. However, since these .cpp 647 # files are used to build JavaScriptCore itself, we can just add LLIntAssembly.h to JSC_HEADERS 648 # since it is used in the add_library() call at the end of this file. 649 list(APPEND JavaScriptCore_HEADERS 650 ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/LLIntAssembly.h 651 ) 652 list(APPEND JavaScriptCore_SOURCES 653 llint/LLIntCLoop.cpp 654 llint/LLIntData.cpp 655 llint/LLIntEntrypoint.cpp 656 llint/LLIntExceptions.cpp 657 llint/LLIntSlowPaths.cpp 658 llint/LLIntThunks.cpp 659 llint/LowLevelInterpreter.cpp 660 ) 661 663 662 664 663 if (ENABLE_FTL_JIT) … … 695 694 696 695 list(APPEND JavaScriptCore_SOURCES 697 llvm/InitializeLLVM.cpp698 llvm/InitializeLLVMPOSIX.cpp699 llvm/InitializeLLVMLinux.cpp700 llvm/LLVMAPI.cpp701 702 696 dfg/DFGToFTLDeferredCompilationCallback.cpp 703 697 dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp … … 712 706 ftl/FTLCommonValues.cpp 713 707 ftl/FTLCompile.cpp 714 ftl/FTLDataSection.cpp715 708 ftl/FTLDWARFDebugLineInfo.cpp 716 709 ftl/FTLDWARFRegister.cpp 710 ftl/FTLDataSection.cpp 717 711 ftl/FTLExitArgument.cpp 718 712 ftl/FTLExitArgumentForOperand.cpp … … 744 738 ftl/FTLValueFormat.cpp 745 739 ftl/FTLValueRange.cpp 740 741 llvm/InitializeLLVM.cpp 742 llvm/InitializeLLVMLinux.cpp 743 llvm/InitializeLLVMPOSIX.cpp 744 llvm/LLVMAPI.cpp 746 745 ) 747 746 endif () -
trunk/Source/JavaScriptCore/ChangeLog
r170130 r170147 1 2014-06-19 Dániel Bátyai <dbatyai.u-szeged@partner.samsung.com> 2 3 Remove ENABLE(LLINT) and ENABLE(LLINT_C_LOOP) guards 4 https://bugs.webkit.org/show_bug.cgi?id=130389 5 6 Reviewed by Mark Lam. 7 8 Removed ENABLE(LLINT) since we always build with it, and changed ENABLE(LLINT_C_LOOP) 9 into !ENABLE(JIT) since they are mutually exclusive. 10 11 * CMakeLists.txt: 12 * assembler/MacroAssemblerCodeRef.h: 13 (JSC::MacroAssemblerCodePtr::createLLIntCodePtr): 14 (JSC::MacroAssemblerCodeRef::createLLIntCodeRef): 15 * assembler/MaxFrameExtentForSlowPathCall.h: 16 * bytecode/CallLinkStatus.cpp: 17 (JSC::CallLinkStatus::computeFromLLInt): 18 * bytecode/CodeBlock.cpp: 19 (JSC::dumpStructure): 20 (JSC::CodeBlock::printGetByIdCacheStatus): 21 (JSC::CodeBlock::printCallOp): 22 (JSC::CodeBlock::CodeBlock): 23 (JSC::CodeBlock::~CodeBlock): 24 (JSC::CodeBlock::propagateTransitions): 25 (JSC::CodeBlock::finalizeUnconditionally): 26 (JSC::CodeBlock::unlinkCalls): 27 (JSC::CodeBlock::unlinkIncomingCalls): 28 (JSC::CodeBlock::linkIncomingCall): 29 (JSC::CodeBlock::frameRegisterCount): 30 * bytecode/CodeBlock.h: 31 * bytecode/GetByIdStatus.cpp: 32 (JSC::GetByIdStatus::computeFromLLInt): 33 * bytecode/Opcode.h: 34 (JSC::padOpcodeName): 35 * bytecode/PutByIdStatus.cpp: 36 (JSC::PutByIdStatus::computeFromLLInt): 37 * bytecompiler/BytecodeGenerator.cpp: 38 (JSC::BytecodeGenerator::emitCall): 39 (JSC::BytecodeGenerator::emitConstruct): 40 * heap/Heap.cpp: 41 (JSC::Heap::gatherJSStackRoots): 42 * interpreter/Interpreter.cpp: 43 (JSC::Interpreter::initialize): 44 (JSC::Interpreter::isOpcode): 45 * interpreter/Interpreter.h: 46 (JSC::Interpreter::getOpcodeID): 47 * interpreter/JSStack.cpp: 48 (JSC::JSStack::JSStack): 49 (JSC::JSStack::committedByteCount): 50 * interpreter/JSStack.h: 51 * interpreter/JSStackInlines.h: 52 (JSC::JSStack::ensureCapacityFor): 53 (JSC::JSStack::topOfFrameFor): 54 (JSC::JSStack::setStackLimit): 55 * jit/ExecutableAllocatorFixedVMPool.cpp: 56 (JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator): 57 * jit/JIT.h: 58 (JSC::JIT::compileCTINativeCall): 59 * jit/JITExceptions.h: 60 * jit/JITThunks.cpp: 61 (JSC::JITThunks::ctiNativeCall): 62 (JSC::JITThunks::ctiNativeConstruct): 63 * llint/LLIntCLoop.cpp: 64 * llint/LLIntCLoop.h: 65 * llint/LLIntData.cpp: 66 (JSC::LLInt::initialize): 67 (JSC::LLInt::Data::performAssertions): 68 * llint/LLIntData.h: 69 (JSC::LLInt::Data::performAssertions): Deleted. 70 * llint/LLIntEntrypoint.cpp: 71 * llint/LLIntEntrypoint.h: 72 * llint/LLIntExceptions.cpp: 73 * llint/LLIntExceptions.h: 74 * llint/LLIntOfflineAsmConfig.h: 75 * llint/LLIntOffsetsExtractor.cpp: 76 (JSC::LLIntOffsetsExtractor::dummy): 77 * llint/LLIntOpcode.h: 78 * llint/LLIntSlowPaths.cpp: 79 (JSC::LLInt::LLINT_SLOW_PATH_DECL): 80 * llint/LLIntSlowPaths.h: 81 * llint/LLIntThunks.cpp: 82 * llint/LLIntThunks.h: 83 * llint/LowLevelInterpreter.cpp: 84 * llint/LowLevelInterpreter.h: 85 * runtime/CommonSlowPaths.cpp: 86 * runtime/CommonSlowPaths.h: 87 * runtime/ErrorHandlingScope.cpp: 88 (JSC::ErrorHandlingScope::ErrorHandlingScope): 89 (JSC::ErrorHandlingScope::~ErrorHandlingScope): 90 * runtime/Executable.cpp: 91 (JSC::setupLLInt): 92 * runtime/InitializeThreading.cpp: 93 (JSC::initializeThreading): 94 * runtime/JSCJSValue.h: 95 * runtime/JSCJSValueInlines.h: 96 * runtime/Options.cpp: 97 (JSC::recomputeDependentOptions): 98 * runtime/VM.cpp: 99 (JSC::VM::VM): 100 (JSC::sanitizeStackForVM): 101 * runtime/VM.h: 102 (JSC::VM::canUseJIT): Deleted. 103 1 104 2014-06-18 Alex Christensen <achristensen@webkit.org> 2 105 -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h
r167094 r170147 37 37 // ASSERT_VALID_CODE_POINTER checks that ptr is a non-null pointer, and that it is a valid 38 38 // instruction address on the platform (for example, check any alignment requirements). 39 #if CPU(ARM_THUMB2) && !ENABLE(LLINT_C_LOOP)39 #if CPU(ARM_THUMB2) && ENABLE(JIT) 40 40 // ARM instructions must be 16-bit aligned. Thumb2 code pointers to be loaded into 41 41 // into the processor are decorated with the bottom bit set, while traditional ARM has … … 294 294 } 295 295 296 #if ENABLE(LLINT)297 296 static MacroAssemblerCodePtr createLLIntCodePtr(OpcodeID codeId) 298 297 { 299 298 return createFromExecutableAddress(LLInt::getCodePtr(codeId)); 300 299 } 301 #endif302 300 303 301 explicit MacroAssemblerCodePtr(ReturnAddressPtr ra) … … 411 409 } 412 410 413 #if ENABLE(LLINT)414 411 // Helper for creating self-managed code refs from LLInt. 415 412 static MacroAssemblerCodeRef createLLIntCodeRef(OpcodeID codeId) … … 417 414 return createSelfManagedCodeRef(MacroAssemblerCodePtr::createFromExecutableAddress(LLInt::getCodePtr(codeId))); 418 415 } 419 #endif420 416 421 417 ExecutableMemoryHandle* executableMemory() const -
trunk/Source/JavaScriptCore/assembler/MaxFrameExtentForSlowPathCall.h
r163027 r170147 38 38 // from JS code. 39 39 40 #if ENABLE(LLINT_C_LOOP)40 #if !ENABLE(JIT) 41 41 static const size_t maxFrameExtentForSlowPathCall = 0; 42 42 … … 76 76 COMPILE_ASSERT(!(maxFrameExtentForSlowPathCall % sizeof(Register)), extent_must_be_in_multiples_of_registers); 77 77 78 #if !ENABLE(LLINT_C_LOOP)78 #if ENABLE(JIT) 79 79 // Make sure that cfr - maxFrameExtentForSlowPathCall bytes will make the stack pointer aligned 80 80 COMPILE_ASSERT((maxFrameExtentForSlowPathCall % 16) == 16 - sizeof(CallerFrameAndPC), extent_must_align_stack_from_callframe_pointer); -
trunk/Source/JavaScriptCore/bytecode/CallLinkStatus.cpp
r168101 r170147 90 90 UNUSED_PARAM(profiledBlock); 91 91 UNUSED_PARAM(bytecodeIndex); 92 #if ENABLE(LLINT)93 92 #if ENABLE(DFG_JIT) 94 93 if (profiledBlock->hasExitSite(locker, DFG::FrequentExitSite(bytecodeIndex, BadFunction))) { … … 111 110 112 111 return CallLinkStatus(callLinkInfo->lastSeenCallee.get()); 113 #else114 return CallLinkStatus();115 #endif116 112 } 117 113 -
trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp
r168497 r170147 284 284 } 285 285 286 #if ENABLE(JIT) || ENABLE(LLINT) // unused in some configurations287 286 static void dumpStructure(PrintStream& out, const char* name, ExecState* exec, Structure* structure, const Identifier& ident) 288 287 { … … 296 295 out.printf(" (offset = %d)", offset); 297 296 } 298 #endif299 297 300 298 #if ENABLE(JIT) // unused when not ENABLE(JIT), leading to silly warnings … … 324 322 UNUSED_PARAM(ident); // tell the compiler to shut up in certain platform configurations. 325 323 326 #if ENABLE(LLINT)327 324 if (exec->interpreter()->getOpcodeID(instruction[0].u.opcode) == op_get_array_length) 328 325 out.printf(" llint(array_length)"); … … 332 329 out.printf(")"); 333 330 } 334 #endif335 331 336 332 #if ENABLE(JIT) … … 417 413 out.printf("%s, %s, %d, %d", registerName(dst).data(), registerName(func).data(), argCount, registerOffset); 418 414 if (cacheDumpMode == DumpCaches) { 419 #if ENABLE(LLINT)420 415 LLIntCallLinkInfo* callLinkInfo = it[1].u.callLinkInfo; 421 416 if (callLinkInfo->lastSeenCallee) { … … 425 420 callLinkInfo->lastSeenCallee->executable()); 426 421 } 427 #endif428 422 #if ENABLE(JIT) 429 423 if (CallLinkInfo* info = map.get(CodeOrigin(location))) { … … 1584 1578 m_rareData->m_exceptionHandlers[i].target = handler.target; 1585 1579 m_rareData->m_exceptionHandlers[i].scopeDepth = nonLocalScopeDepth + handler.scopeDepth; 1586 #if ENABLE(JIT) && ENABLE(LLINT)1580 #if ENABLE(JIT) 1587 1581 m_rareData->m_exceptionHandlers[i].nativeCode = CodeLocationLabel(MacroAssemblerCodePtr::createFromExecutableAddress(LLInt::getCodePtr(op_catch))); 1588 1582 #endif … … 1615 1609 1616 1610 // Allocate metadata buffers for the bytecode 1617 #if ENABLE(LLINT)1618 1611 if (size_t size = unlinkedCodeBlock->numberOfLLintCallLinkInfos()) 1619 1612 m_llintCallLinkInfos.resizeToFit(size); 1620 #endif1621 1613 if (size_t size = unlinkedCodeBlock->numberOfArrayProfiles()) 1622 1614 m_arrayProfiles.grow(size); … … 1702 1694 m_arrayProfiles[arrayProfileIndex] = ArrayProfile(i); 1703 1695 instructions[i + opLength - 2] = &m_arrayProfiles[arrayProfileIndex]; 1704 #if ENABLE(LLINT)1705 1696 instructions[i + 5] = &m_llintCallLinkInfos[pc[5].u.operand]; 1706 #endif1707 1697 break; 1708 1698 } 1709 1699 case op_construct: { 1710 #if ENABLE(LLINT)1711 1700 instructions[i + 5] = &m_llintCallLinkInfos[pc[5].u.operand]; 1712 #endif1713 1701 ValueProfile* profile = &m_valueProfiles[pc[opLength - 1].u.operand]; 1714 1702 ASSERT(profile->m_bytecodeOffset == -1); … … 1838 1826 dumpValueProfiles(); 1839 1827 #endif 1840 1841 #if ENABLE(LLINT)1842 1828 while (m_incomingLLIntCalls.begin() != m_incomingLLIntCalls.end()) 1843 1829 m_incomingLLIntCalls.begin()->remove(); 1844 #endif // ENABLE(LLINT)1845 1830 #if ENABLE(JIT) 1846 1831 // We may be destroyed before any CodeBlocks that refer to us are destroyed. … … 2025 2010 bool allAreMarkedSoFar = true; 2026 2011 2027 #if ENABLE(LLINT)2028 2012 Interpreter* interpreter = m_vm->interpreter; 2029 2013 if (jitType() == JITCode::InterpreterThunk) { … … 2047 2031 } 2048 2032 } 2049 #endif // ENABLE(LLINT)2050 2033 2051 2034 #if ENABLE(JIT) … … 2244 2227 } 2245 2228 2246 #if ENABLE(LLINT)2247 2229 for (unsigned i = 0; i < m_llintCallLinkInfos.size(); ++i) { 2248 2230 if (m_llintCallLinkInfos[i].isLinked() && !Heap::isMarked(m_llintCallLinkInfos[i].callee.get())) { … … 2254 2236 m_llintCallLinkInfos[i].lastSeenCallee.clear(); 2255 2237 } 2256 #endif // ENABLE(LLINT)2257 2238 } 2258 2239 … … 2650 2631 if (!!m_alternative) 2651 2632 m_alternative->unlinkCalls(); 2652 #if ENABLE(LLINT)2653 2633 for (size_t i = 0; i < m_llintCallLinkInfos.size(); ++i) { 2654 2634 if (m_llintCallLinkInfos[i].isLinked()) 2655 2635 m_llintCallLinkInfos[i].unlink(); 2656 2636 } 2657 #endif2658 2637 if (m_callLinkInfos.isEmpty()) 2659 2638 return; … … 2678 2657 void CodeBlock::unlinkIncomingCalls() 2679 2658 { 2680 #if ENABLE(LLINT)2681 2659 while (m_incomingLLIntCalls.begin() != m_incomingLLIntCalls.end()) 2682 2660 m_incomingLLIntCalls.begin()->unlink(); 2683 #endif // ENABLE(LLINT)2684 2661 #if ENABLE(JIT) 2685 2662 if (m_incomingCalls.isEmpty()) … … 2691 2668 } 2692 2669 2693 #if ENABLE(LLINT)2694 2670 void CodeBlock::linkIncomingCall(ExecState* callerFrame, LLIntCallLinkInfo* incoming) 2695 2671 { … … 2697 2673 m_incomingLLIntCalls.push(incoming); 2698 2674 } 2699 #endif // ENABLE(LLINT)2700 2675 2701 2676 void CodeBlock::clearEvalCache() … … 3372 3347 { 3373 3348 switch (jitType()) { 3374 #if ENABLE(LLINT)3375 3349 case JITCode::InterpreterThunk: 3376 3350 return LLInt::frameRegisterCountFor(this); 3377 #endif // ENABLE(LLINT)3378 3351 3379 3352 #if ENABLE(JIT) -
trunk/Source/JavaScriptCore/bytecode/CodeBlock.h
r168178 r170147 233 233 #endif // ENABLE(JIT) 234 234 235 #if ENABLE(LLINT)236 235 void linkIncomingCall(ExecState* callerFrame, LLIntCallLinkInfo*); 237 #endif // ENABLE(LLINT)238 236 239 237 void setJITCodeMap(PassOwnPtr<CompactJITCodeMap> jitCodeMap) … … 1041 1039 unsigned m_codeType; 1042 1040 1043 #if ENABLE(LLINT)1044 1041 Vector<LLIntCallLinkInfo> m_llintCallLinkInfos; 1045 1042 SentinelLinkedList<LLIntCallLinkInfo, BasicRawSentinelNode<LLIntCallLinkInfo>> m_incomingLLIntCalls; 1046 #endif1047 1043 RefPtr<JITCode> m_jitCode; 1048 1044 #if ENABLE(JIT) -
trunk/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp
r168548 r170147 62 62 UNUSED_PARAM(bytecodeIndex); 63 63 UNUSED_PARAM(uid); 64 #if ENABLE(LLINT)65 64 Instruction* instruction = profiledBlock->instructions().begin() + bytecodeIndex; 66 65 … … 85 84 86 85 return GetByIdStatus(Simple, false, GetByIdVariant(StructureSet(structure), offset, specificValue)); 87 #else88 return GetByIdStatus(NoInformation, false);89 #endif90 86 } 91 87 -
trunk/Source/JavaScriptCore/bytecode/Opcode.h
r167094 r170147 60 60 61 61 const int maxOpcodeLength = 9; 62 #if ENABLE(LLINT_C_LOOP)62 #if !ENABLE(JIT) 63 63 const int numOpcodeIDs = NUMBER_OF_BYTECODE_IDS + NUMBER_OF_CLOOP_BYTECODE_HELPER_IDS + NUMBER_OF_BYTECODE_HELPER_IDS; 64 64 #else -
trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp
r167094 r170147 64 64 UNUSED_PARAM(bytecodeIndex); 65 65 UNUSED_PARAM(uid); 66 #if ENABLE(LLINT)67 66 Instruction* instruction = profiledBlock->instructions().begin() + bytecodeIndex; 68 67 … … 100 99 chain ? adoptRef(new IntendedStructureChain(profiledBlock, structure, chain)) : 0, 101 100 offset); 102 #else103 return PutByIdStatus(NoInformation);104 #endif105 101 } 106 102 -
trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
r166392 r170147 1767 1767 instructions().append(callArguments.argumentCountIncludingThis()); 1768 1768 instructions().append(callArguments.stackOffset()); 1769 #if ENABLE(LLINT)1770 1769 instructions().append(m_codeBlock->addLLIntCallLinkInfo()); 1771 #else1772 instructions().append(0);1773 #endif1774 1770 instructions().append(0); 1775 1771 instructions().append(arrayProfile); … … 1906 1902 instructions().append(callArguments.argumentCountIncludingThis()); 1907 1903 instructions().append(callArguments.stackOffset()); 1908 #if ENABLE(LLINT)1909 1904 instructions().append(m_codeBlock->addLLIntCallLinkInfo()); 1910 #else1911 instructions().append(0);1912 #endif1913 1905 instructions().append(0); 1914 1906 instructions().append(0); -
trunk/Source/JavaScriptCore/heap/Heap.cpp
r168497 r170147 568 568 void Heap::gatherJSStackRoots(ConservativeRoots& roots) 569 569 { 570 #if ENABLE(LLINT_C_LOOP)570 #if !ENABLE(JIT) 571 571 GCPHASE(GatherJSStackRoots); 572 572 stack().gatherConservativeRoots(roots, m_jitStubRoutines, m_codeBlocks); -
trunk/Source/JavaScriptCore/interpreter/Interpreter.cpp
r169221 r170147 85 85 #endif 86 86 87 #define WTF_USE_GCC_COMPUTED_GOTO_WORKAROUND ( ENABLE(LLINT) &&!defined(__llvm__))87 #define WTF_USE_GCC_COMPUTED_GOTO_WORKAROUND (!defined(__llvm__)) 88 88 89 89 using namespace std; … … 300 300 UNUSED_PARAM(canUseJIT); 301 301 302 #if ENABLE(COMPUTED_GOTO_OPCODES) && ENABLE(LLINT)302 #if ENABLE(COMPUTED_GOTO_OPCODES) 303 303 m_opcodeTable = LLInt::opcodeMap(); 304 304 for (int i = 0; i < numOpcodeIDs; ++i) … … 429 429 { 430 430 #if ENABLE(COMPUTED_GOTO_OPCODES) 431 #if !ENABLE(LLINT)432 return static_cast<OpcodeID>(bitwise_cast<uintptr_t>(opcode)) <= op_end;433 #else434 431 return opcode != HashTraits<Opcode>::emptyValue() 435 432 && !HashTraits<Opcode>::isDeletedValue(opcode) 436 433 && m_opcodeIDTable.contains(opcode); 437 #endif438 434 #else 439 435 return opcode >= 0 && opcode <= op_end; -
trunk/Source/JavaScriptCore/interpreter/Interpreter.h
r165676 r170147 220 220 { 221 221 ASSERT(m_initialized); 222 #if ENABLE(COMPUTED_GOTO_OPCODES) && ENABLE(LLINT)222 #if ENABLE(COMPUTED_GOTO_OPCODES) 223 223 ASSERT(isOpcode(opcode)); 224 224 return m_opcodeIDTable.get(opcode); … … 275 275 int m_errorHandlingModeReentry; 276 276 277 #if ENABLE(COMPUTED_GOTO_OPCODES) && ENABLE(LLINT)277 #if ENABLE(COMPUTED_GOTO_OPCODES) 278 278 Opcode* m_opcodeTable; // Maps OpcodeID => Opcode for compiling 279 279 HashMap<Opcode, OpcodeID> m_opcodeIDTable; // Maps Opcode => OpcodeID for decompiling -
trunk/Source/JavaScriptCore/interpreter/JSStack.cpp
r165676 r170147 37 37 namespace JSC { 38 38 39 #if ENABLE(LLINT_C_LOOP)39 #if !ENABLE(JIT) 40 40 static size_t committedBytesCount = 0; 41 41 … … 45 45 return staticMutex; 46 46 } 47 #endif // ENABLE(LLINT_C_LOOP)47 #endif // !ENABLE(JIT) 48 48 49 49 JSStack::JSStack(VM& vm) 50 50 : m_vm(vm) 51 51 , m_topCallFrame(vm.topCallFrame) 52 #if ENABLE(LLINT_C_LOOP)52 #if !ENABLE(JIT) 53 53 , m_end(0) 54 54 , m_reservedZoneSizeInRegisters(0) 55 55 #endif 56 56 { 57 #if ENABLE(LLINT_C_LOOP)57 #if !ENABLE(JIT) 58 58 size_t capacity = Options::maxPerThreadStackUsage(); 59 59 ASSERT(capacity && isPageAligned(capacity)); … … 64 64 65 65 m_lastStackTop = baseOfStack(); 66 #endif // ENABLE(LLINT_C_LOOP)66 #endif // !ENABLE(JIT) 67 67 68 68 m_topCallFrame = 0; 69 69 } 70 70 71 #if ENABLE(LLINT_C_LOOP)71 #if !ENABLE(JIT) 72 72 JSStack::~JSStack() 73 73 { … … 159 159 growSlowCase(m_end + 1); 160 160 } 161 #endif // ENABLE(LLINT_C_LOOP)161 #endif // !ENABLE(JIT) 162 162 163 #if !ENABLE(LLINT_C_LOOP)163 #if ENABLE(JIT) 164 164 Register* JSStack::lowAddress() const 165 165 { … … 173 173 return reinterpret_cast<Register*>(wtfThreadData().stack().origin()); 174 174 } 175 #endif // !ENABLE(LLINT_C_LOOP)175 #endif // ENABLE(JIT) 176 176 177 177 size_t JSStack::committedByteCount() 178 178 { 179 #if ENABLE(LLINT_C_LOOP)179 #if !ENABLE(JIT) 180 180 MutexLocker locker(stackStatisticsMutex()); 181 181 return committedBytesCount; -
trunk/Source/JavaScriptCore/interpreter/JSStack.h
r165676 r170147 80 80 static size_t committedByteCount(); 81 81 82 #if !ENABLE(LLINT_C_LOOP)82 #if ENABLE(JIT) 83 83 void gatherConservativeRoots(ConservativeRoots&) { } 84 84 void gatherConservativeRoots(ConservativeRoots&, JITStubRoutineSet&, CodeBlockSet&) { } … … 104 104 105 105 inline Register* topOfStack(); 106 #endif // ENABLE( LLINT_C_LOOP)106 #endif // ENABLE(JIT) 107 107 108 108 private: 109 109 110 #if ENABLE(LLINT_C_LOOP)110 #if !ENABLE(JIT) 111 111 Register* lowAddress() const 112 112 { … … 121 121 Register* lowAddress() const; 122 122 Register* highAddress() const; 123 #endif // ENABLE(LLINT_C_LOOP)123 #endif // !ENABLE(JIT) 124 124 125 #if ENABLE(LLINT_C_LOOP)125 #if !ENABLE(JIT) 126 126 inline Register* topOfFrameFor(CallFrame*); 127 127 … … 139 139 140 140 void setStackLimit(Register* newTopOfStack); 141 #endif // ENABLE(LLINT_C_LOOP)141 #endif // !ENABLE(JIT) 142 142 143 143 VM& m_vm; 144 144 CallFrame*& m_topCallFrame; 145 #if ENABLE(LLINT_C_LOOP)145 #if !ENABLE(JIT) 146 146 Register* m_end; 147 147 Register* m_commitTop; … … 149 149 Register* m_lastStackTop; 150 150 ptrdiff_t m_reservedZoneSizeInRegisters; 151 #endif // ENABLE(LLINT_C_LOOP)151 #endif // !ENABLE(JIT) 152 152 153 153 friend class LLIntOffsetsExtractor; -
trunk/Source/JavaScriptCore/interpreter/JSStackInlines.h
r163027 r170147 36 36 inline bool JSStack::ensureCapacityFor(Register* newTopOfStack) 37 37 { 38 #if ENABLE(LLINT_C_LOOP)38 #if !ENABLE(JIT) 39 39 return grow(newTopOfStack); 40 40 #else … … 44 44 } 45 45 46 #if ENABLE(LLINT_C_LOOP)46 #if !ENABLE(JIT) 47 47 48 48 inline Register* JSStack::topOfFrameFor(CallFrame* frame) 49 49 { 50 #if ENABLE(LLINT_C_LOOP)51 50 if (UNLIKELY(!frame)) 52 51 return baseOfStack(); 53 #endif54 52 return frame->topOfFrame() - 1; 55 53 } … … 87 85 Register* newEnd = newTopOfStack - 1; 88 86 m_end = newEnd; 89 #if ENABLE(LLINT_C_LOOP)90 87 m_vm.setJSStackLimit(newTopOfStack); 91 #endif92 88 } 93 89 94 #endif // ENABLE(LLINT_C_LOOP)90 #endif // !ENABLE(JIT) 95 91 96 92 } // namespace JSC -
trunk/Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
r164358 r170147 64 64 { 65 65 m_reservation = PageReservation::reserveWithGuardPages(fixedExecutableMemoryPoolSize, OSAllocator::JSJITCodePages, EXECUTABLE_POOL_WRITABLE, true); 66 #if !ENABLE(LLINT)67 RELEASE_ASSERT(m_reservation);68 #endif69 66 if (m_reservation) { 70 67 ASSERT(m_reservation.size() == fixedExecutableMemoryPoolSize); -
trunk/Source/JavaScriptCore/jit/JIT.h
r168776 r170147 231 231 { 232 232 if (!vm->canUseJIT()) { 233 #if ENABLE(LLINT)234 233 return CodeRef::createLLIntCodeRef(llint_native_call_trampoline); 235 #else236 return CodeRef();237 #endif238 234 } 239 235 JIT jit(vm, 0); -
trunk/Source/JavaScriptCore/jit/JITExceptions.h
r157636 r170147 29 29 #include "JSCJSValue.h" 30 30 31 #if ENABLE(JIT) || ENABLE(LLINT)32 33 31 namespace JSC { 34 32 … … 40 38 } // namespace JSC 41 39 42 #endif // ENABLE(JIT) || ENABLE(LLINT)43 44 40 #endif // JITExceptions_h 45 41 -
trunk/Source/JavaScriptCore/jit/JITThunks.cpp
r163844 r170147 47 47 MacroAssemblerCodePtr JITThunks::ctiNativeCall(VM* vm) 48 48 { 49 #if ENABLE(LLINT)50 49 if (!vm->canUseJIT()) 51 50 return MacroAssemblerCodePtr::createLLIntCodePtr(llint_native_call_trampoline); 52 #endif53 51 return ctiStub(vm, nativeCallGenerator).code(); 54 52 } … … 56 54 MacroAssemblerCodePtr JITThunks::ctiNativeConstruct(VM* vm) 57 55 { 58 #if ENABLE(LLINT)59 56 if (!vm->canUseJIT()) 60 57 return MacroAssemblerCodePtr::createLLIntCodePtr(llint_native_construct_trampoline); 61 #endif62 58 return ctiStub(vm, nativeConstructGenerator).code(); 63 59 } -
trunk/Source/JavaScriptCore/llint/LLIntCLoop.cpp
r167094 r170147 27 27 #include "LLIntCLoop.h" 28 28 29 #if ENABLE(LLINT_C_LOOP)29 #if !ENABLE(JIT) 30 30 31 31 #include "LLIntData.h" … … 42 42 } // namespace JSC 43 43 44 #endif // ENABLE(LLINT_C_LOOP)44 #endif // !ENABLE(JIT) -
trunk/Source/JavaScriptCore/llint/LLIntCLoop.h
r164814 r170147 27 27 #define LLIntCLoop_h 28 28 29 #if ENABLE(LLINT_C_LOOP)29 #if !ENABLE(JIT) 30 30 31 31 #include "CallFrame.h" … … 47 47 using JSC::LLInt::CLoop; 48 48 49 #endif // ENABLE(LLINT_C_LOOP)49 #endif // !ENABLE(JIT) 50 50 51 51 #endif // LLIntCLoop_h -
trunk/Source/JavaScriptCore/llint/LLIntData.cpp
r169703 r170147 26 26 #include "config.h" 27 27 #include "LLIntData.h" 28 29 #if ENABLE(LLINT)30 31 28 #include "BytecodeConventions.h" 32 29 #include "CodeType.h" … … 43 40 Opcode Data::s_opcodeMap[numOpcodeIDs] = { }; 44 41 45 #if !ENABLE(LLINT_C_LOOP)42 #if ENABLE(JIT) 46 43 extern "C" void llint_entry(void*); 47 44 #endif … … 51 48 Data::s_exceptionInstructions = new Instruction[maxOpcodeLength + 1]; 52 49 53 #if ENABLE(LLINT_C_LOOP)50 #if !ENABLE(JIT) 54 51 CLoop::initialize(); 55 52 56 #else // !ENABLE(LLINT_C_LOOP)53 #else // ENABLE(JIT) 57 54 llint_entry(&Data::s_opcodeMap); 58 55 … … 60 57 Data::s_exceptionInstructions[i].u.pointer = 61 58 LLInt::getCodePtr(llint_throw_from_slow_path_trampoline); 62 #endif // !ENABLE(LLINT_C_LOOP)59 #endif // ENABLE(JIT) 63 60 } 64 61 … … 127 124 ASSERT(ValueNull == TagBitTypeOther); 128 125 #endif 129 #if CPU(X86_64) || CPU(ARM64) || ENABLE(LLINT_C_LOOP)126 #if CPU(X86_64) || CPU(ARM64) || !ENABLE(JIT) 130 127 ASSERT(!maxFrameExtentForSlowPathCall); 131 128 #elif CPU(ARM) || CPU(SH4) … … 172 169 173 170 } } // namespace JSC::LLInt 174 175 #endif // ENABLE(LLINT) -
trunk/Source/JavaScriptCore/llint/LLIntData.h
r167094 r170147 35 35 struct Instruction; 36 36 37 #if ENABLE(LLINT_C_LOOP)37 #if !ENABLE(JIT) 38 38 typedef OpcodeID LLIntCode; 39 39 #else … … 42 42 43 43 namespace LLInt { 44 45 #if ENABLE(LLINT)46 44 47 45 class Data { … … 94 92 #endif 95 93 96 #else // !ENABLE(LLINT)97 98 #if COMPILER(CLANG)99 #pragma clang diagnostic push100 #pragma clang diagnostic ignored "-Wmissing-noreturn"101 #endif102 103 class Data {104 public:105 static void performAssertions(VM&) { }106 };107 108 #if COMPILER(CLANG)109 #pragma clang diagnostic pop110 #endif111 112 #endif // !ENABLE(LLINT)113 114 94 ALWAYS_INLINE void* getCodePtr(JSC::EncodedJSValue glueHelper()) 115 95 { -
trunk/Source/JavaScriptCore/llint/LLIntEntrypoint.cpp
r166278 r170147 26 26 #include "config.h" 27 27 #include "LLIntEntrypoint.h" 28 29 #if ENABLE(LLINT)30 31 28 #include "CodeBlock.h" 32 29 #include "HeapInlines.h" … … 125 122 126 123 } } // namespace JSC::LLInt 127 128 #endif // ENABLE(LLINT) -
trunk/Source/JavaScriptCore/llint/LLIntEntrypoint.h
r164424 r170147 27 27 #define LLIntEntrypoint_h 28 28 29 #if ENABLE(LLINT)30 31 29 #include "CodeSpecializationKind.h" 32 30 … … 44 42 } } // namespace JSC::LLInt 45 43 46 #endif // ENABLE(LLINT)47 48 44 #endif // LLIntEntrypoint_h -
trunk/Source/JavaScriptCore/llint/LLIntExceptions.cpp
r163844 r170147 26 26 #include "config.h" 27 27 #include "LLIntExceptions.h" 28 29 #if ENABLE(LLINT)30 31 28 #include "CallFrame.h" 32 29 #include "CodeBlock.h" … … 65 62 66 63 } } // namespace JSC::LLInt 67 68 #endif // ENABLE(LLINT) -
trunk/Source/JavaScriptCore/llint/LLIntExceptions.h
r164424 r170147 28 28 29 29 #include <wtf/StdLibExtras.h> 30 31 #if ENABLE(LLINT)32 33 30 #include "MacroAssemblerCodeRef.h" 34 31 … … 54 51 } } // namespace JSC::LLInt 55 52 56 #endif // ENABLE(LLINT)57 58 53 #endif // LLIntExceptions_h -
trunk/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h
r164424 r170147 31 31 #include <wtf/InlineASM.h> 32 32 33 #if ENABLE(LLINT_C_LOOP)33 #if !ENABLE(JIT) 34 34 #define OFFLINE_ASM_C_LOOP 1 35 35 #define OFFLINE_ASM_X86 0 … … 44 44 #define OFFLINE_ASM_SH4 0 45 45 46 #else // !ENABLE(LLINT_C_LOOP)46 #else // ENABLE(JIT) 47 47 48 48 #define OFFLINE_ASM_C_LOOP 0 … … 122 122 #endif 123 123 124 #endif // !ENABLE(LLINT_C_LOOP)124 #endif // ENABLE(JIT) 125 125 126 126 #if USE(JSVALUE64) -
trunk/Source/JavaScriptCore/llint/LLIntOffsetsExtractor.cpp
r163225 r170147 54 54 #include <wtf/text/StringImpl.h> 55 55 56 56 57 namespace JSC { 57 58 … … 65 66 const unsigned* LLIntOffsetsExtractor::dummy() 66 67 { 67 #if ENABLE(LLINT)68 68 // This is a file generated by offlineasm/generate_offsets_extractor.rb, and contains code 69 69 // to create a table of offsets, sizes, and a header identifying what combination of … … 74 74 #include "LLIntDesiredOffsets.h" 75 75 return extractorTable; 76 #else77 return 0;78 #endif79 76 } 80 77 -
trunk/Source/JavaScriptCore/llint/LLIntOpcode.h
r167094 r170147 27 27 #define LLIntOpcode_h 28 28 29 #if ENABLE(LLINT) 30 31 #if ENABLE(LLINT_C_LOOP) 29 #if !ENABLE(JIT) 32 30 33 31 #define FOR_EACH_LLINT_NOJIT_NATIVE_HELPER(macro) \ 34 32 FOR_EACH_CLOOP_BYTECODE_HELPER_ID(macro) 35 33 36 #else // !ENABLE(LLINT_C_LOOP)34 #else // ENABLE(JIT) 37 35 38 36 #define FOR_EACH_LLINT_NOJIT_NATIVE_HELPER(macro) \ 39 37 // Nothing to do here. Use the JIT impl instead. 40 38 41 #endif // !ENABLE( LLINT_C_LOOP)39 #endif // !ENABLE(JIT) 42 40 43 41 … … 51 49 #define FOR_EACH_LLINT_OPCODE_EXTENSION(macro) FOR_EACH_LLINT_NATIVE_HELPER(macro) 52 50 53 #else // !ENABLE(LLINT)54 55 #define FOR_EACH_LLINT_OPCODE_EXTENSION(macro) // Nothing to add.56 57 #endif // !ENABLE(LLINT)58 59 51 #endif // LLIntOpcode_h -
trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
r169341 r170147 26 26 #include "config.h" 27 27 #include "LLIntSlowPaths.h" 28 29 #if ENABLE(LLINT)30 31 28 #include "Arguments.h" 32 29 #include "ArrayConstructor.h" … … 477 474 // Hence, if we get here, then we know a stack overflow is imminent. So, just 478 475 // throw the StackOverflowError unconditionally. 479 #if ENABLE(LLINT_C_LOOP)476 #if !ENABLE(JIT) 480 477 ASSERT(!vm.interpreter->stack().containsAddress(exec->topOfFrame())); 481 478 if (LIKELY(vm.interpreter->stack().ensureCapacityFor(exec->topOfFrame()))) … … 1465 1462 } 1466 1463 1467 #if ENABLE(LLINT_C_LOOP)1464 #if !ENABLE(JIT) 1468 1465 extern "C" SlowPathReturnType llint_stack_check_at_vm_entry(VM* vm, Register* newTopOfStack) 1469 1466 { … … 1485 1482 1486 1483 } } // namespace JSC::LLInt 1487 1488 #endif // ENABLE(LLINT) -
trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.h
r166392 r170147 29 29 #include "CommonSlowPaths.h" 30 30 #include <wtf/StdLibExtras.h> 31 32 #if ENABLE(LLINT)33 31 34 32 namespace JSC { … … 126 124 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_put_to_scope); 127 125 extern "C" SlowPathReturnType llint_throw_stack_overflow_error(VM*, ProtoCallFrame*) WTF_INTERNAL; 128 #if ENABLE(LLINT_C_LOOP)126 #if !ENABLE(JIT) 129 127 extern "C" SlowPathReturnType llint_stack_check_at_vm_entry(VM*, Register*) WTF_INTERNAL; 130 128 #endif … … 133 131 } } // namespace JSC::LLInt 134 132 135 #endif // ENABLE(LLINT)136 137 133 #endif // LLIntSlowPaths_h 138 134 -
trunk/Source/JavaScriptCore/llint/LLIntThunks.cpp
r167094 r170147 43 43 44 44 #if ENABLE(JIT) 45 #if ENABLE(LLINT)46 45 47 46 namespace LLInt { … … 91 90 } // namespace LLInt 92 91 93 #endif // ENABLE(LLINT)94 92 #else // ENABLE(JIT) 95 93 -
trunk/Source/JavaScriptCore/llint/LLIntThunks.h
r167094 r170147 27 27 #define LLIntThunks_h 28 28 29 #if ENABLE(LLINT)30 31 29 #include "MacroAssemblerCodeRef.h" 32 30 … … 52 50 } } // namespace JSC::LLInt 53 51 54 #endif // ENABLE(LLINT)55 56 52 #endif // LLIntThunks_h -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp
r168197 r170147 26 26 #include "config.h" 27 27 #include "LowLevelInterpreter.h" 28 29 #if ENABLE(LLINT)30 31 28 #include "LLIntOfflineAsmConfig.h" 32 29 #include <wtf/InlineASM.h> 33 30 34 #if ENABLE(LLINT_C_LOOP)31 #if !ENABLE(JIT) 35 32 #include "CodeBlock.h" 36 33 #include "CommonSlowPaths.h" … … 531 528 #include "LLIntAssembly.h" 532 529 533 #endif // !ENABLE(LLINT_C_LOOP) 534 535 #endif // ENABLE(LLINT) 530 #endif // ENABLE(JIT) -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.h
r167094 r170147 27 27 #define LowLevelInterpreter_h 28 28 29 #if ENABLE(LLINT)30 31 29 #include "Opcode.h" 32 30 33 #if ENABLE(LLINT_C_LOOP)31 #if !ENABLE(JIT) 34 32 35 33 namespace JSC { … … 48 46 } // namespace JSC 49 47 50 #endif // ENABLE(LLINT_C_LOOP) 51 52 #endif // ENABLE(LLINT) 48 #endif // !ENABLE(JIT) 53 49 54 50 #endif // LowLevelInterpreter_h -
trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp
r168443 r170147 26 26 #include "config.h" 27 27 #include "CommonSlowPaths.h" 28 29 #if ENABLE(JIT) || ENABLE(LLINT)30 31 28 #include "Arguments.h" 32 29 #include "ArityCheckFailReturnThunks.h" … … 74 71 #endif 75 72 76 #if ENABLE(LLINT)77 73 #define RETURN_TO_THROW(exec, pc) pc = LLInt::returnToThrow(exec) 78 #else79 #define RETURN_TO_THROW(exec, pc)80 #endif81 74 82 75 #define BEGIN() \ … … 536 529 537 530 } // namespace JSC 538 539 #endif // ENABLE(JIT) || ENABLE(LLINT) -
trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.h
r164424 r170147 35 35 #include "VM.h" 36 36 #include <wtf/StdLibExtras.h> 37 38 #if ENABLE(JIT) || ENABLE(LLINT)39 37 40 38 namespace JSC { … … 203 201 } // namespace JSC 204 202 205 #endif // ENABLE(JIT) || ENABLE(LLINT)206 207 203 #endif // CommonSlowPaths_h -
trunk/Source/JavaScriptCore/runtime/ErrorHandlingScope.cpp
r164018 r170147 39 39 size_t newReservedZoneSize = Options::errorModeReservedZoneSize(); 40 40 m_savedReservedZoneSize = m_vm.updateReservedZoneSize(newReservedZoneSize); 41 #if ENABLE(LLINT_C_LOOP)41 #if !ENABLE(JIT) 42 42 m_vm.interpreter->stack().setReservedZoneSize(newReservedZoneSize); 43 43 #endif … … 48 48 RELEASE_ASSERT(m_vm.stackPointerAtVMEntry()); 49 49 m_vm.updateReservedZoneSize(m_savedReservedZoneSize); 50 #if ENABLE(LLINT_C_LOOP)50 #if !ENABLE(JIT) 51 51 m_vm.interpreter->stack().setReservedZoneSize(m_savedReservedZoneSize); 52 52 #endif -
trunk/Source/JavaScriptCore/runtime/Executable.cpp
r170034 r170147 286 286 static void setupLLInt(VM& vm, CodeBlock* codeBlock) 287 287 { 288 #if ENABLE(LLINT)289 288 LLInt::setEntrypoint(vm, codeBlock); 290 #else291 UNUSED_PARAM(vm);292 UNUSED_PARAM(codeBlock);293 UNREACHABLE_FOR_PLATFORM();294 #endif295 289 } 296 290 -
trunk/Source/JavaScriptCore/runtime/InitializeThreading.cpp
r165676 r170147 68 68 #endif 69 69 JSStack::initializeThreading(); 70 #if ENABLE(LLINT)71 70 LLInt::initialize(); 72 #endif73 71 #ifndef NDEBUG 74 72 DisallowGC::initialize(); -
trunk/Source/JavaScriptCore/runtime/JSCJSValue.h
r169703 r170147 56 56 } 57 57 #endif 58 #if ENABLE(LLINT_C_LOOP)58 #if !ENABLE(JIT) 59 59 namespace LLInt { 60 60 class CLoop; … … 135 135 friend class DFG::SpeculativeJIT; 136 136 #endif 137 #if ENABLE(LLINT_C_LOOP)137 #if !ENABLE(JIT) 138 138 friend class LLInt::CLoop; 139 139 #endif … … 314 314 int32_t payload() const; 315 315 316 #if ENABLE(LLINT_C_LOOP)316 #if !ENABLE(JIT) 317 317 // This should only be used by the LLInt C Loop interpreter who needs 318 318 // synthesize JSValue from its "register"s holding tag and payload -
trunk/Source/JavaScriptCore/runtime/JSCJSValueInlines.h
r169823 r170147 313 313 } 314 314 315 #if ENABLE(LLINT_C_LOOP)315 #if !ENABLE(JIT) 316 316 inline JSValue::JSValue(int32_t tag, int32_t payload) 317 317 { -
trunk/Source/JavaScriptCore/runtime/Options.cpp
r168178 r170147 216 216 Options::useDFGJIT() = false; 217 217 Options::useFTLJIT() = false; 218 #endif219 #if !ENABLE(LLINT)220 Options::useLLInt() = false;221 218 #endif 222 219 #if !ENABLE(YARR_JIT) -
trunk/Source/JavaScriptCore/runtime/VM.cpp
r169703 r170147 220 220 , m_stackPointerAtVMEntry(0) 221 221 , m_stackLimit(0) 222 #if ENABLE(LLINT_C_LOOP)222 #if !ENABLE(JIT) 223 223 , m_jsStackLimit(0) 224 224 #endif … … 235 235 StackBounds stack = wtfThreadData().stack(); 236 236 updateReservedZoneSize(Options::reservedZoneSize()); 237 #if ENABLE(LLINT_C_LOOP)237 #if !ENABLE(JIT) 238 238 interpreter->stack().setReservedZoneSize(Options::reservedZoneSize()); 239 239 #endif … … 918 918 { 919 919 logSanitizeStack(vm); 920 #if ENABLE(LLINT_C_LOOP)920 #if !ENABLE(JIT) 921 921 vm->interpreter->stack().sanitizeStack(); 922 922 #else -
trunk/Source/JavaScriptCore/runtime/VM.h
r169703 r170147 316 316 void* enabledProfilerAddress() { return &m_enabledProfiler; } 317 317 318 #if ENABLE(JIT) && ENABLE(LLINT)318 #if ENABLE(JIT) 319 319 bool canUseJIT() { return m_canUseJIT; } 320 #elif ENABLE(JIT)321 bool canUseJIT() { return true; } // jit only322 320 #else 323 321 bool canUseJIT() { return false; } // interpreter only … … 393 391 #endif 394 392 395 #if ENABLE(LLINT_C_LOOP)393 #if !ENABLE(JIT) 396 394 void* jsStackLimit() { return m_jsStackLimit; } 397 395 void setJSStackLimit(void* limit) { m_jsStackLimit = limit; } … … 537 535 void* m_stackPointerAtVMEntry; 538 536 size_t m_reservedZoneSize; 539 #if ENABLE(LLINT_C_LOOP)537 #if !ENABLE(JIT) 540 538 struct { 541 539 void* m_stackLimit; … … 579 577 } 580 578 581 #if !ENABLE(LLINT_C_LOOP)579 #if ENABLE(JIT) 582 580 extern "C" void sanitizeStackForVMImpl(VM*); 583 581 #endif -
trunk/Source/WTF/ChangeLog
r170108 r170147 1 2014-06-19 Dániel Bátyai <dbatyai.u-szeged@partner.samsung.com> 2 3 Remove ENABLE(LLINT) and ENABLE(LLINT_C_LOOP) guards 4 https://bugs.webkit.org/show_bug.cgi?id=130389 5 6 Reviewed by Mark Lam. 7 8 Removed ENABLE(LLINT) since we always build with it, and changed ENABLE(LLINT_C_LOOP) 9 into !ENABLE(JIT) since they are mutually exclusive. 10 11 * wtf/OSAllocatorPosix.cpp: 12 (WTF::OSAllocator::reserveAndCommit): 13 * wtf/Platform.h: 14 1 15 2014-06-18 Anders Carlsson <andersca@apple.com> 2 16 -
trunk/Source/WTF/wtf/OSAllocatorPosix.cpp
r161601 r170147 105 105 result = mmap(result, bytes, protection, flags, fd, 0); 106 106 if (result == MAP_FAILED) { 107 #if ENABLE(LLINT)108 107 if (executable) 109 108 result = 0; 110 109 else 111 #endif112 110 CRASH(); 113 111 } -
trunk/Source/WTF/wtf/Platform.h
r170065 r170147 637 637 #endif /* !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32_64) */ 638 638 639 /* Disable the JITs if we're forcing the cloop to be enabled */640 #if defined(ENABLE_LLINT_C_LOOP) && ENABLE_LLINT_C_LOOP641 #define ENABLE_JIT 0642 #define ENABLE_DFG_JIT 0643 #ifdef ENABLE_FTL_JIT644 #undef ENABLE_FTL_JIT645 #endif646 #define ENABLE_FTL_JIT 0647 #endif648 649 639 /* The JIT is enabled by default on all x86, x86-64, ARM & MIPS platforms except ARMv7k and Windows. */ 650 640 #if !defined(ENABLE_JIT) \ … … 707 697 #endif 708 698 709 /* On some of the platforms where we have a JIT, we want to also have the710 low-level interpreter. */711 #if !defined(ENABLE_LLINT) \712 && ENABLE(JIT) \713 && (OS(DARWIN) || OS(LINUX) || OS(FREEBSD) || OS(WINDOWS)) \714 && ((OS(DARWIN) && !PLATFORM(EFL)) || PLATFORM(GTK) || PLATFORM(WIN)) \715 && (CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2) || CPU(ARM_TRADITIONAL) || CPU(ARM64) || CPU(MIPS) || CPU(SH4))716 #define ENABLE_LLINT 1717 #endif718 719 699 #if !defined(ENABLE_DFG_JIT) && ENABLE(JIT) && !COMPILER(MSVC) 720 700 /* Enable the DFG JIT on X86 and X86_64. Only tested on Mac, GNU/Linux and FreeBSD. */ … … 740 720 #endif 741 721 742 /* If the jit is not available, enable the LLInt C Loop: */ 722 /* Disable the JIT if we force the LLInt C Loop */ 723 #if defined(ENABLE_LLINT_C_LOOP) && ENABLE_LLINT_C_LOOP 724 #undef ENABLE_JIT 725 #define ENABLE_JIT 0 726 #endif 727 728 /* If the baseline jit is not available, then disable upper tiers as well: */ 743 729 #if !ENABLE(JIT) 744 #undef ENABLE_LLINT /* Undef so that we can redefine it. */745 #undef ENABLE_LLINT_C_LOOP /* Undef so that we can redefine it. */746 730 #undef ENABLE_DFG_JIT /* Undef so that we can redefine it. */ 747 #define ENABLE_LLINT 1 748 #define ENABLE_LLINT_C_LOOP 1 731 #undef ENABLE_FTL_JIT /* Undef so that we can redefine it. */ 749 732 #define ENABLE_DFG_JIT 0 750 #endif 751 752 /* Do a sanity check to make sure that we at least have one execution engine in 753 use: */ 754 #if !(ENABLE(JIT) || ENABLE(LLINT)) 755 #error You have to have at least one execution model enabled to build JSC 756 #endif 733 #define ENABLE_FTL_JIT 0 734 #endif 735 757 736 758 737 /* Generational collector for JSC */ … … 806 785 807 786 /* Determine if we need to enable Computed Goto Opcodes or not: */ 808 #if HAVE(COMPUTED_GOTO) || !ENABLE(LLINT_C_LOOP)787 #if HAVE(COMPUTED_GOTO) || ENABLE(JIT) 809 788 #define ENABLE_COMPUTED_GOTO_OPCODES 1 810 789 #endif … … 814 793 815 794 /* Yet Another Regex Runtime - turned on by default for JIT enabled ports. */ 816 #if !defined(ENABLE_YARR_JIT) && (ENABLE(JIT) || ENABLE(LLINT_C_LOOP))795 #if !defined(ENABLE_YARR_JIT) 817 796 #define ENABLE_YARR_JIT 1 818 797 -
trunk/Source/cmake/OptionsEfl.cmake
r170007 r170147 72 72 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR ON) 73 73 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LINK_PREFETCH ON) 74 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT ON)75 74 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CAPTURE ON) 76 75 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CONTROLS_SCRIPT ON) … … 104 103 if (ENABLE_LLINT_C_LOOP) 105 104 message(STATUS "Force enabling LLINT C LOOP.") 106 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT ON)107 105 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_JIT OFF) 108 106 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DFG_JIT OFF) -
trunk/Source/cmake/OptionsGTK.cmake
r170052 r170147 39 39 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR OFF) 40 40 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LINK_PREFETCH ON) 41 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT ON)42 41 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CAPTURE ON) 43 42 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CONTROLS_SCRIPT ON) -
trunk/Source/cmake/WebKitFeatures.cmake
r170007 r170147 73 73 WEBKIT_OPTION_DEFINE(ENABLE_LEGACY_WEB_AUDIO "Toggle Legacy Web Audio support" ON) 74 74 WEBKIT_OPTION_DEFINE(ENABLE_LINK_PREFETCH "Toggle pre fetching support" OFF) 75 WEBKIT_OPTION_DEFINE(ENABLE_LLINT "Enable JSC Low Level Interpreter" OFF)76 75 WEBKIT_OPTION_DEFINE(ENABLE_LLINT_C_LOOP "Force use of the llint c loop" OFF) 77 76 WEBKIT_OPTION_DEFINE(ENABLE_MATHML "Toggle MathML support" ON) -
trunk/Source/cmakeconfig.h.cmake
r169416 r170147 67 67 #cmakedefine01 ENABLE_LEGACY_WEB_AUDIO 68 68 #cmakedefine01 ENABLE_LINK_PREFETCH 69 #cmakedefine01 ENABLE_LLINT70 69 #cmakedefine01 ENABLE_LLINT_C_LOOP 71 70 #cmakedefine01 ENABLE_MATHML
Note: See TracChangeset
for help on using the changeset viewer.