Skip to content
  • mark.lam@apple.com's avatar
    Fix broken C Loop LLINT build. · b1ea3eac
    mark.lam@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=123271.
    
    Reviewed by Michael Saboff.
    
    * bytecode/CodeBlock.cpp:
    (JSC::CodeBlock::printGetByIdCacheStatus): Added an UNUSED_PARAM().
    (JSC::CodeBlock::dumpBytecode): Added #if ENABLE(JIT) to JIT only code.
    * bytecode/GetByIdStatus.cpp:
    (JSC::GetByIdStatus::computeFor): Added an UNUSED_PARAM().
    * bytecode/PutByIdStatus.cpp:
    (JSC::PutByIdStatus::computeFor): Added an UNUSED_PARAM().
    * bytecode/StructureStubInfo.h:
    - Added a stub StubInfoMap for non-JIT builds. StubInfoMap is still used
      in function prototypes even when !ENABLE(JIT). Rather that adding #if's
      in many places, we just provide a stub/placeholder implementation that
      is unused but keeps the compiler happy.
    * jit/JITOperations.h: Added #if ENABLE(JIT).
    * llint/LowLevelInterpreter32_64.asm:
    * llint/LowLevelInterpreter64.asm:
    - The putByVal() macro reifies a slow path which is never taken in one case.
      This translates into a label that is never used in the C Loop LLINT. The
      C++ compiler doesn't like unused labels. So, we fix this by adding a
      cloopUnusedLabel offline asm instruction that synthesizes the following:
    
          if (false) goto unusedLabel;
    
      This keeps the C++ compiler happy without changing code behavior.
    * offlineasm/cloop.rb: Implementing cloopUnusedLabel.
    * offlineasm/instructions.rb: Declaring cloopUnusedLabel.
    * runtime/Executable.cpp:
    (JSC::setupJIT): Added UNUSED_PARAM()s.
    (JSC::ScriptExecutable::prepareForExecutionImpl):
    - run-javascriptcore-tests have phases that forces the LLINT to be off
      which in turn asserts that the JIT is enabled. With the C Loop LLINT,
      this combination is illegal. So, we override the setup code here to
      always use the LLINT if !ENABLE(JIT) regardless of what options are
      passed in.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157932 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    b1ea3eac