RESOLVED FIXED Bug 43303
[Qt] Enable JIT on WinCE
https://bugs.webkit.org/show_bug.cgi?id=43303
Summary [Qt] Enable JIT on WinCE
Patrick R. Gansterer
Reported 2010-07-31 11:47:33 PDT
Enable the JIT on Windows CE with ARM.
Attachments
Patch #1 (generate GeneratedJITStubs_MSVC.asm) (2.25 KB, patch)
2010-07-31 11:53 PDT, Patrick R. Gansterer
no flags
Patrick R. Gansterer
Comment 1 2010-07-31 11:53:06 PDT
Created attachment 63156 [details] Patch #1 (generate GeneratedJITStubs_MSVC.asm)
Gabor Loki
Comment 2 2010-08-03 23:55:04 PDT
Can we combine *_RVCT.h and *_MSVC.asm generation rules? I am not a qmake expert, but I feel they can be merged into a common rule.
Ismail Donmez
Comment 3 2010-08-06 09:02:29 PDT
With this patch if I enable JIT manually I got lots of unresolved functions, one example is; jscore.lib(JITCall.obj) : error LNK2019: unresolved external symbol cti_op_call_NotJSFunction referenced in function "pr ivate: void __cdecl JSC::JIT::compileOpCallVarargsSlowCase(struct JSC::Instruction *,struct JSC::SlowCaseEntry * &)" (?c ompileOpCallVarargsSlowCase@JIT@JSC@@AAAXPAUInstruction@2@AAPAUSlowCaseEntry@2@@Z) jscore.lib(JITCall.obj) : error LNK2019: unresolved external symbol cti_op_construct_NotJSConstruct referenced in functi on "private: void __cdecl JSC::JIT::compileOpCallSlowCase(struct JSC::Instruction *,struct JSC::SlowCaseEntry * &,unsign ed int,enum JSC::OpcodeID)" (?compileOpCallSlowCase@JIT@JSC@@AAAXPAUInstruction@2@AAPAUSlowCaseEntry@2@IW4OpcodeID@2@@Z)
Eric Seidel (no email)
Comment 4 2010-08-06 14:04:33 PDT
Comment on attachment 63156 [details] Patch #1 (generate GeneratedJITStubs_MSVC.asm) OK.
Eric Seidel (no email)
Comment 5 2010-08-06 14:05:14 PDT
Since the WinCE port doesn't have a buildbot we won't know if this breaks the world. But I leave that to you all to figure out.
Patrick R. Gansterer
Comment 6 2010-08-07 11:45:52 PDT
(In reply to comment #3) > With this patch if I enable JIT manually I got lots of unresolved functions There are "two steps" in the qt build. First: generate _all_ files Second: only _compile_ and link them. This pach now only extends the generation part (changes only DerivedSources.pro). A second patch is required to call armasm.exe with GeneratedJITStubs_MSVC.asm and then link the object file to the JavaScriptCore library. At the moment you can add the asm file like WebCore/plugins/win/PaintHooks.asm (see WebCore.pro) (In reply to comment #5) > Since the WinCE port doesn't have a buildbot we won't know if this breaks the world. But I leave that to you all to figure out. I don't think that it will break anything, because it only add an additional generater. buildbot for WinCE is an interessing topic: A few month ago I tried to run the JSC-test for the "native" WinCE port, but I had many problems with the current scripts. Do they support any sort of "cross-testing" (like cross-comiling ;-))? As far as I know all buildbots build and test on the same machine. Is that correct? (I can only cross-compile for WinCE)
Ismail Donmez
Comment 7 2010-08-07 12:19:06 PDT
(In reply to comment #6) > (In reply to comment #3) > > With this patch if I enable JIT manually I got lots of unresolved functions > There are "two steps" in the qt build. First: generate _all_ files Second: only _compile_ and link them. > This pach now only extends the generation part (changes only DerivedSources.pro). > > A second patch is required to call armasm.exe with GeneratedJITStubs_MSVC.asm and then link the object file to the JavaScriptCore library. > > At the moment you can add the asm file like WebCore/plugins/win/PaintHooks.asm (see WebCore.pro) Ok I'll wait for your patch #2 then, or I can create a patch and submit. Regards.
Patrick R. Gansterer
Comment 8 2010-08-07 12:32:40 PDT
(In reply to comment #7) > Ok I'll wait for your patch #2 then, or I can create a patch and submit. Maybe you can try to generate this patch. I will help you if you have any questions. A good tip is my CMake buildsystem for WinCE at http://gitorious.org/+wincewebkit-developers/webkit/wincewebkit/blobs/wincegdi/JavaScriptCore/CMakeLists.txt#line425 The main "problem" (why I didn't post patch #2) is finding the correct "scopes" in qmake without breaking something else.
Eric Seidel (no email)
Comment 9 2010-08-07 20:25:44 PDT
Comment on attachment 63156 [details] Patch #1 (generate GeneratedJITStubs_MSVC.asm) Clearing flags on attachment: 63156 Committed r64933: <http://trac.webkit.org/changeset/64933>
Eric Seidel (no email)
Comment 10 2010-08-07 20:25:51 PDT
All reviewed patches have been landed. Closing bug.
Patrick R. Gansterer
Comment 11 2010-08-08 02:31:01 PDT
(In reply to comment #10) > All reviewed patches have been landed. Closing bug. Patch #2 is required too.
Eric Seidel (no email)
Comment 12 2010-08-08 08:55:47 PDT
Please open a new bug for new patches. The commit-queue will automatically close bugs when there are no more patches with r? or r+ on the bug. Bug numbers are cheap. No reason to not spend a few for easier reviewability.
Note You need to log in before you can comment on or make changes to this bug.