>> 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