Bug 43303 - [Qt] Enable JIT on WinCE
Summary: [Qt] Enable JIT on WinCE
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Qt (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other Other
: P2 Normal
Assignee: Nobody
URL:
Keywords: Qt
Depends on: 34953
Blocks: 43688
  Show dependency treegraph
 
Reported: 2010-07-31 11:47 PDT by Patrick R. Gansterer
Modified: 2010-08-08 09:03 PDT (History)
3 users (show)

See Also:


Attachments
Patch #1 (generate GeneratedJITStubs_MSVC.asm) (2.25 KB, patch)
2010-07-31 11:53 PDT, Patrick R. Gansterer
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick R. Gansterer 2010-07-31 11:47:33 PDT
Enable the JIT on Windows CE with ARM.
Comment 1 Patrick R. Gansterer 2010-07-31 11:53:06 PDT
Created attachment 63156 [details]
Patch #1 (generate GeneratedJITStubs_MSVC.asm)
Comment 2 Gabor Loki 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.
Comment 3 Ismail Donmez 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)
Comment 4 Eric Seidel (no email) 2010-08-06 14:04:33 PDT
Comment on attachment 63156 [details]
Patch #1 (generate GeneratedJITStubs_MSVC.asm)

OK.
Comment 5 Eric Seidel (no email) 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.
Comment 6 Patrick R. Gansterer 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)
Comment 7 Ismail Donmez 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.
Comment 8 Patrick R. Gansterer 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.
Comment 9 Eric Seidel (no email) 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>
Comment 10 Eric Seidel (no email) 2010-08-07 20:25:51 PDT
All reviewed patches have been landed.  Closing bug.
Comment 11 Patrick R. Gansterer 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.
Comment 12 Eric Seidel (no email) 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.