>> If you are trying to include LLIntAssembly.h on Windows, you’re doing 
>> something wrong
Ok, perhaps there is a bug here then.  As noted in my first mail the steps I 
take in an attempt to disable JIT is:
1)
C:\cygwin\home\cvienneau\WebKit-r188436\Source\WTF\wtf\Platform.h (line 698)
#define ENABLE_JIT 0

2)
Change type of LowLevelInterpreterWin.asm in VS project so that it isn’t built:
(Item Type) "Microsoft Macro Assembler" -> "Text"
I presume this needs to be done since the sln is not generated.  Is that the 
right approach?

3)
After I do this then the C_LOOP path will take over, so now in:
C:\cygwin\home\cvienneau\WebKit-r188436\Source\JavaScriptCore\llint\LowLevelInterpreter.cpp
 (line 425)
It does an:
#include "LLIntAssembly.h"

If you’re telling me it should never do this include on windows then perhaps 
its missing a #define here?  Let’s assume for a second that that’s all that is 
missing so I comment out the include for my next build, it does compile fine 
however I get a crash when I encounter any JavaScript.  The crash originate 
from:

C:\cygwin\home\cvienneau\WebKit-r188436\Source\JavaScriptCore\llint\LowLevelInterpreter.cpp
  (line 482)
Where is it just returning a default JSValue();

…
    return JSValue(); // to suppress a compiler warning.
} // Interpreter::llintCLoopExecute()

} // namespace JSC
…

>             JavaScriptCore.dll!JSC::LLInt::CLoop::execute(JSC::OpcodeID 
> entryOpcodeID, void * executableAddress, JSC::VM * vm, JSC::ProtoCallFrame * 
> protoCallFrame, bool isInitializationPass) Line 482  C++
               JavaScriptCore.dll!vmEntryToJavaScript(void * executableAddress, 
JSC::VM * vm, JSC::ProtoCallFrame * protoCallFrame) Line 100              C++
               JavaScriptCore.dll!JSC::JITCode::execute(JSC::VM * vm, 
JSC::ProtoCallFrame * protoCallFrame) Line 82 C++
               
JavaScriptCore.dll!JSC::Interpreter::execute(JSC::ProgramExecutable * program, 
JSC::ExecState * callFrame, JSC::JSObject * thisObj) Line 884               C++
               JavaScriptCore.dll!JSC::evaluate(JSC::ExecState * exec, const 
JSC::SourceCode & source, JSC::JSValue thisValue, WTF::NakedPtr<JSC::Exception> 
& returnedException) Line 101          C++
               WebKit.dll!WebCore::ScriptController::evaluateInWorld(const 
WebCore::ScriptSourceCode & sourceCode, WebCore::DOMWrapperWorld & world) Line 
164             C++
               WebKit.dll!WebCore::ScriptController::evaluate(const 
WebCore::ScriptSourceCode & sourceCode) Line 181                C++
               WebKit.dll!WebCore::ScriptElement::executeScript(const 
WebCore::ScriptSourceCode & sourceCode) Line 309         C++
               WebKit.dll!WebCore::ScriptElement::prepareScript(const 
WTF::TextPosition & scriptStartPosition, 
WebCore::ScriptElement::LegacyTypeSupport supportLegacyTypes) Line 242     C++
               WebKit.dll!WebCore::HTMLScriptRunner::runScript(WebCore::Element 
* script, const WTF::TextPosition & scriptStartPosition) Line 310        C++
               
WebKit.dll!WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr<WebCore::Element> 
scriptElement, const WTF::TextPosition & scriptStartPosition) Line 179  C++
               
WebKit.dll!WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() Line 
195            C++
                
WebKit.dll!WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode
 mode) Line 259 C++
               
WebKit.dll!WebCore::HTMLDocumentParser::append(WTF::PassRefPtr<WTF::StringImpl> 
inputSource) Line 393         C++
               
WebKit.dll!WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter
 & writer, const char * data, unsigned __int64 length) Line 50          C++
               WebKit.dll!WebCore::DocumentLoader::commitData(const char * 
bytes, unsigned __int64 length) Line 867                C++
               
WebKit.dll!WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader * 
loader, const char * data, int length) Line 700              C++
               WebKit.dll!WebCore::DocumentLoader::commitLoad(const char * 
data, int length) Line 784        C++
               
WebKit.dll!WebCore::DocumentLoader::dataReceived(WebCore::CachedResource * 
resource, const char * data, int length) Line 890              C++
               
WebKit.dll!WebCore::CachedRawResource::notifyClientsDataWasReceived(const char 
* data, unsigned int length) Line 118                C++
               
WebKit.dll!WebCore::CachedRawResource::addDataBuffer(WebCore::SharedBuffer & 
data) Line 70      C++
               
WebKit.dll!WebCore::SubresourceLoader::didReceiveDataOrBuffer(const char * 
data, int length, WTF::PassRefPtr<WebCore::SharedBuffer> prpBuffer, __int64 
encodedDataLength, WebCore::DataPayloadType dataPayloadType) Line 295          
C++
               WebKit.dll!WebCore::SubresourceLoader::didReceiveData(const char 
* data, unsigned int length, __int64 encodedDataLength, 
WebCore::DataPayloadType dataPayloadType) Line 271    C++
               WebKit.dll!WebCore::writeCallback(void * ptr, unsigned __int64 
size, unsigned __int64 nmemb, void * data) Line 335                C++
               libcurl.dll!000007fedfa63510()    Unknown
               libcurl.dll!000007fedfa432af()     Unknown
               libcurl.dll!000007fedfa5601d()    Unknown
               libcurl.dll!000007fedfa713b4()    Unknown
               libcurl.dll!000007fedfa71ca5()     Unknown
               libcurl.dll!000007fedfa5d033()    Unknown
               libcurl.dll!000007fedfa5d5f0()     Unknown
               
WebKit.dll!WebCore::ResourceHandleManager::downloadTimerCallback() Line 650     
   C++
               WebKit.dll!WebCore::ThreadTimers::sharedTimerFiredInternal() 
Line 135            C++
               WebKit.dll!WebCore::TimerWindowWndProc(HWND__ * hWnd, unsigned 
int message, unsigned __int64 wParam, __int64 lParam) Line 93              C++
               [External Code]
               WebKit.dll!WebKitMessageLoop::run(HACCEL__ * hAccelTable) Line 
89                C++
               WinLauncher.dll!0000000180006f97()      Unknown
               WinLauncher.exe!00000001400016af()   Unknown
               WinLauncher.exe!0000000140003382()  Unknown
               [External Code]

Later causing this crash in the form of a RELEASE_ASSERT(result); 
C:\cygwin\home\cvienneau\WebKit-r188436\Source\JavaScriptCore\runtime\Completion.cpp
 (line 107)
                WTF.dll!WTFCrash() Line 321      C++
>             JavaScriptCore.dll!JSC::evaluate(JSC::ExecState * exec, const 
> JSC::SourceCode & source, JSC::JSValue thisValue, 
> WTF::NakedPtr<JSC::Exception> & returnedException) Line 107          C++
               WebKit.dll!WebCore::ScriptController::evaluateInWorld(const 
WebCore::ScriptSourceCode & sourceCode, WebCore::DOMWrapperWorld & world) Line 
164             C++
               WebKit.dll!WebCore::ScriptController::evaluate(const 
WebCore::ScriptSourceCode & sourceCode) Line 181                C++
               WebKit.dll!WebCore::ScriptElement::executeScript(const 
WebCore::ScriptSourceCode & sourceCode) Line 309         C++
               WebKit.dll!WebCore::ScriptElement::prepareScript(const 
WTF::TextPosition & scriptStartPosition, 
WebCore::ScriptElement::LegacyTypeSupport supportLegacyTypes) Line 242     C++
               WebKit.dll!WebCore::HTMLScriptRunner::runScript(WebCore::Element 
* script, const WTF::TextPosition & scriptStartPosition) Line 310        C++
               
WebKit.dll!WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr<WebCore::Element> 
scriptElement, const WTF::TextPosition & scriptStartPosition) Line 179  C++
               
WebKit.dll!WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() Line 
195            C++
                
WebKit.dll!WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode
 mode) Line 259 C++
               
WebKit.dll!WebCore::HTMLDocumentParser::append(WTF::PassRefPtr<WTF::StringImpl> 
inputSource) Line 393         C++
               
WebKit.dll!WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter
 & writer, const char * data, unsigned __int64 length) Line 50          C++
               WebKit.dll!WebCore::DocumentLoader::commitData(const char * 
bytes, unsigned __int64 length) Line 867                C++
               
WebKit.dll!WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader * 
loader, const char * data, int length) Line 700              C++
               WebKit.dll!WebCore::DocumentLoader::commitLoad(const char * 
data, int length) Line 784        C++
               
WebKit.dll!WebCore::DocumentLoader::dataReceived(WebCore::CachedResource * 
resource, const char * data, int length) Line 890              C++
               
WebKit.dll!WebCore::CachedRawResource::notifyClientsDataWasReceived(const char 
* data, unsigned int length) Line 118                C++
               
WebKit.dll!WebCore::CachedRawResource::addDataBuffer(WebCore::SharedBuffer & 
data) Line 70      C++
               
WebKit.dll!WebCore::SubresourceLoader::didReceiveDataOrBuffer(const char * 
data, int length, WTF::PassRefPtr<WebCore::SharedBuffer> prpBuffer, __int64 
encodedDataLength, WebCore::DataPayloadType dataPayloadType) Line 295          
C++
               WebKit.dll!WebCore::SubresourceLoader::didReceiveData(const char 
* data, unsigned int length, __int64 encodedDataLength, 
WebCore::DataPayloadType dataPayloadType) Line 271    C++
               WebKit.dll!WebCore::writeCallback(void * ptr, unsigned __int64 
size, unsigned __int64 nmemb, void * data) Line 335                C++
               libcurl.dll!000007fedfa63510()    Unknown
               libcurl.dll!000007fedfa432af()     Unknown
               libcurl.dll!000007fedfa5601d()    Unknown
               libcurl.dll!000007fedfa713b4()    Unknown
               libcurl.dll!000007fedfa71ca5()     Unknown
               libcurl.dll!000007fedfa5d033()    Unknown
               libcurl.dll!000007fedfa5d5f0()     Unknown
               
WebKit.dll!WebCore::ResourceHandleManager::downloadTimerCallback() Line 650     
   C++
               WebKit.dll!WebCore::ThreadTimers::sharedTimerFiredInternal() 
Line 135            C++
               WebKit.dll!WebCore::TimerWindowWndProc(HWND__ * hWnd, unsigned 
int message, unsigned __int64 wParam, __int64 lParam) Line 93              C++
               [External Code]
               WebKit.dll!WebKitMessageLoop::run(HACCEL__ * hAccelTable) Line 
89                C++
               WinLauncher.dll!0000000180006f97()      Unknown
               WinLauncher.exe!00000001400016af()   Unknown
               WinLauncher.exe!0000000140003382()  Unknown
               [External Code]

Have I taken incorrect steps to disable JIT or is there a bug?

From: Alex Christensen [mailto:[email protected]]
Sent: Tuesday, August 25, 2015 10:42 AM
To: Vienneau, Christopher <[email protected]>
Cc: [email protected]
Subject: Re: Running WinCairo without JIT

LLIntAssembly.h should never be needed or used on Windows.  The reason we have 
LowLevelInterpreterWin.asm instead is that Visual Studio has a limit on the 
number of characters (65535 IIRC) in an inline assembly string and so we put 
that assembly in a different file.  If you are trying to include 
LLIntAssembly.h on Windows, you’re doing something wrong.

Alex


On Aug 24, 2015, at 6:08 PM, Vienneau, Christopher 
<[email protected]<mailto:[email protected]>> wrote:

LLIntAssembly.h

_______________________________________________
webkit-dev mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to