Changeset 160062 in webkit


Ignore:
Timestamp:
Dec 3, 2013 5:18:19 PM (10 years ago)
Author:
mark.lam@apple.com
Message:

Fix LLINT_C_LOOP build for Win64.
https://bugs.webkit.org/show_bug.cgi?id=125186.

Reviewed by Michael Saboff.

(JSC::getHostCallReturnValueWithExecState):

  • Win64 will build JITStubMSVC64.asm even when !ENABLE(JIT). This results in a linkage error due to a missing getHostCallReturnValueWithExecState(). So, we add a stub getHostCallReturnValueWithExecState() here to satisfy that linkage. This function will never be called. The alternative to providing such a stub is to make the MSVC project recognize if the JIT is enabled or not, and exclude JITStubMSVC64.asm if it's not enabled. We don't currently set ENABLE(JIT) via the MSVC project and the work to do that is too much trouble for what we're trying to achieve here. So, we're opting for this simpler workaround instead.
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter.cpp:

(JSC::CLoop::execute):

  • Don't build callToJavaScript if we're building the C loop. Otherwise, the C loop won't build if !ENABLE(COMPUTE_GOTO_OPCODES).
Location:
trunk/Source/JavaScriptCore
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r160056 r160062  
     12013-12-03  Mark Lam  <mark.lam@apple.com>
     2
     3        Fix LLINT_C_LOOP build for Win64.
     4        https://bugs.webkit.org/show_bug.cgi?id=125186.
     5
     6        Reviewed by Michael Saboff.
     7
     8        * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
     9        * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
     10        * jit/JITOperationsMSVC64.cpp: Added.
     11        (JSC::getHostCallReturnValueWithExecState):
     12        - Win64 will build JITStubMSVC64.asm even when !ENABLE(JIT). This results
     13          in a linkage error due to a missing getHostCallReturnValueWithExecState().
     14          So, we add a stub getHostCallReturnValueWithExecState() here to satisfy
     15          that linkage. This function will never be called.
     16          The alternative to providing such a stub is to make the MSVC project
     17          recognize if the JIT is enabled or not, and exclude JITStubMSVC64.asm
     18          if it's not enabled. We don't currently set ENABLE(JIT) via the MSVC
     19          project and the work to do that is too much trouble for what we're trying
     20          to achieve here. So, we're opting for this simpler workaround instead.
     21
     22        * llint/LowLevelInterpreter.asm:
     23        * llint/LowLevelInterpreter.cpp:
     24        (JSC::CLoop::execute):
     25        - Don't build callToJavaScript if we're building the C loop. Otherwise,
     26          the C loop won't build if !ENABLE(COMPUTE_GOTO_OPCODES).
     27
    1282013-12-03  Michael Saboff  <msaboff@apple.com>
    229
  • trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj

    r159943 r160062  
    479479    <ClCompile Include="..\jit\JITOpcodes32_64.cpp" />
    480480    <ClCompile Include="..\jit\JITOperations.cpp" />
     481    <ClCompile Include="..\jit\JITOperationsMSVC64.cpp" />
    481482    <ClCompile Include="..\jit\JITPropertyAccess.cpp" />
    482483    <ClCompile Include="..\jit\JITPropertyAccess32_64.cpp" />
  • trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters

    r159605 r160062  
    12341234      <Filter>jit</Filter>
    12351235    </ClCompile>
     1236    <ClCompile Include="..\jit\JITOperationsMSVC64.cpp">
     1237      <Filter>jit</Filter>
     1238    </ClCompile>
    12361239    <ClCompile Include="..\runtime\TestRunnerUtils.cpp">
    12371240      <Filter>runtime</Filter>
  • trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm

    r159942 r160062  
    422422end
    423423
     424if C_LOOP
     425else
    424426# stub to call into JavaScript
    425427# EncodedJSValue callToJavaScript(void* code, Register* topOfStack)
     
    428430_callToJavaScript:
    429431    doCallToJavaScript()
     432end
    430433
    431434# Indicate the beginning of LLInt.
  • trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp

    r159321 r160062  
    310310    // 3. 64 bit result values will be in t0.
    311311
    312     CLoopRegister t0, t1, t2, t3, a1;
     312    CLoopRegister t0, t1, t2, t3;
    313313#if USE(JSVALUE64)
    314314    CLoopRegister rBasePC, tagTypeNumber, tagMask;
Note: See TracChangeset for help on using the changeset viewer.