<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>43303</bug_id>
          
          <creation_ts>2010-07-31 11:47:33 -0700</creation_ts>
          <short_desc>[Qt] Enable JIT on WinCE</short_desc>
          <delta_ts>2010-08-08 09:03:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>34953</dependson>
          <blocked>43688</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>ismail</cc>
    
    <cc>loki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>258622</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-07-31 11:47:33 -0700</bug_when>
    <thetext>Enable the JIT on Windows CE with ARM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258623</commentid>
    <comment_count>1</comment_count>
      <attachid>63156</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-07-31 11:53:06 -0700</bug_when>
    <thetext>Created attachment 63156
Patch #1 (generate GeneratedJITStubs_MSVC.asm)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259898</commentid>
    <comment_count>2</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-08-03 23:55:04 -0700</bug_when>
    <thetext>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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261281</commentid>
    <comment_count>3</comment_count>
    <who name="Ismail Donmez">ismail</who>
    <bug_when>2010-08-06 09:02:29 -0700</bug_when>
    <thetext>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 &quot;pr
ivate: void __cdecl JSC::JIT::compileOpCallVarargsSlowCase(struct JSC::Instruction *,struct JSC::SlowCaseEntry * &amp;)&quot; (?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 &quot;private: void __cdecl JSC::JIT::compileOpCallSlowCase(struct JSC::Instruction *,struct JSC::SlowCaseEntry * &amp;,unsign
ed int,enum JSC::OpcodeID)&quot; (?compileOpCallSlowCase@JIT@JSC@@AAAXPAUInstruction@2@AAPAUSlowCaseEntry@2@IW4OpcodeID@2@@Z)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261445</commentid>
    <comment_count>4</comment_count>
      <attachid>63156</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-06 14:04:33 -0700</bug_when>
    <thetext>Comment on attachment 63156
Patch #1 (generate GeneratedJITStubs_MSVC.asm)

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261446</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-06 14:05:14 -0700</bug_when>
    <thetext>Since the WinCE port doesn&apos;t have a buildbot we won&apos;t know if this breaks the world.  But I leave that to you all to figure out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261746</commentid>
    <comment_count>6</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-07 11:45:52 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; With this patch if I enable JIT manually I got lots of unresolved functions
There are &quot;two steps&quot; 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)
&gt; Since the WinCE port doesn&apos;t have a buildbot we won&apos;t know if this breaks the world.  But I leave that to you all to figure out.
I don&apos;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 &quot;native&quot; WinCE port, but I had many problems with the current scripts. Do they support any sort of &quot;cross-testing&quot; (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)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261753</commentid>
    <comment_count>7</comment_count>
    <who name="Ismail Donmez">ismail</who>
    <bug_when>2010-08-07 12:19:06 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #3)
&gt; &gt; With this patch if I enable JIT manually I got lots of unresolved functions
&gt; There are &quot;two steps&quot; in the qt build. First: generate _all_ files Second: only _compile_ and link them.
&gt; This pach now only extends the generation part (changes only DerivedSources.pro).
&gt; 
&gt; A second patch is required to call armasm.exe with GeneratedJITStubs_MSVC.asm and then link the object file to the JavaScriptCore library.
&gt; 
&gt; At the moment you can add the asm file like WebCore/plugins/win/PaintHooks.asm (see WebCore.pro)

Ok I&apos;ll wait for your patch #2 then, or I can create a patch and submit.

Regards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261754</commentid>
    <comment_count>8</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-07 12:32:40 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Ok I&apos;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 &quot;problem&quot; (why I didn&apos;t post patch #2) is finding the correct &quot;scopes&quot; in qmake without breaking something else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261820</commentid>
    <comment_count>9</comment_count>
      <attachid>63156</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-07 20:25:44 -0700</bug_when>
    <thetext>Comment on attachment 63156
Patch #1 (generate GeneratedJITStubs_MSVC.asm)

Clearing flags on attachment: 63156

Committed r64933: &lt;http://trac.webkit.org/changeset/64933&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261821</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-07 20:25:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261866</commentid>
    <comment_count>11</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-08-08 02:31:01 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; All reviewed patches have been landed.  Closing bug.
Patch #2 is required too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261884</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-08 08:55:47 -0700</bug_when>
    <thetext>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.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63156</attachid>
            <date>2010-07-31 11:53:06 -0700</date>
            <delta_ts>2010-08-07 20:25:43 -0700</delta_ts>
            <desc>Patch #1 (generate GeneratedJITStubs_MSVC.asm)</desc>
            <filename>bug-43303.patch</filename>
            <type>text/plain</type>
            <size>2301</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY0NDIxKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDctMzEgIFBhdHJpY2sg
Um9sYW5kIEdhbnN0ZXJlciAgPHBhcm9nYUBwYXJvZ2EuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRW5hYmxlIEpJVCBvbiBXaW5DRQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDMzMDMKKwor
ICAgICAgICBBZGQgRXh0cmFDb21waWxlciBmb3IgZ2VuZXJhdGluZyBHZW5lcmF0ZWRKSVRTdHVi
c19NU1ZDLmFzbS4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnBybzoKKwogMjAxMC0wNy0z
MCAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9EZXJpdmVk
U291cmNlcy5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMu
cHJvCShyZXZpc2lvbiA2NDQxOSkKKysrIEphdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLnBy
bwkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQCBMVVRfRklMRVMgKz0gXAogS0VZV09S
RExVVF9GSUxFUyArPSBcCiAgICAgcGFyc2VyL0tleXdvcmRzLnRhYmxlCiAKLVJWQ1RfU1RVQl9G
SUxFUyArPSBcCitKSVRfU1RVQl9GSUxFUyArPSBcCiAgICAgaml0L0pJVFN0dWJzLmNwcAogCiBk
ZWZpbmVUZXN0KGFkZEV4dHJhQ29tcGlsZXIpIHsKQEAgLTY1LDE1ICs2NSwyNCBAQCBrZXl3b3Jk
bHV0LmNvbW1hbmRzID0gcGVybCAkJGtleXdvcmRsdXQuCiBrZXl3b3JkbHV0LmRlcGVuZHMgPSAk
e1FNQUtFX0ZJTEVfTkFNRX0KIGFkZEV4dHJhQ29tcGlsZXIoa2V5d29yZGx1dCkKIAotIyBHRU5F
UkFUT1IgMzogSklUIFN0dWIgZnVuY3Rpb25zIGZvciBSVkNUCisjIEdFTkVSQVRPUiAyLUE6IEpJ
VCBTdHViIGZ1bmN0aW9ucyBmb3IgUlZDVAogcnZjdHN0dWJzLm91dHB1dCA9ICQke0pTQ19HRU5F
UkFURURfU09VUkNFU19ESVJ9JCR7UU1BS0VfRElSX1NFUH1HZW5lcmF0ZWQke1FNQUtFX0ZJTEVf
QkFTRX1fUlZDVC5oCiBydmN0c3R1YnMud2tTY3JpcHQgPSAkJFBXRC9jcmVhdGVfaml0X3N0dWJz
CiBydmN0c3R1YnMuY29tbWFuZHMgPSBwZXJsIC1pICQkcnZjdHN0dWJzLndrU2NyaXB0IC0tcHJl
Zml4IFJWQ1QgJHtRTUFLRV9GSUxFX05BTUV9ID4gJHtRTUFLRV9GSUxFX09VVH0KIHJ2Y3RzdHVi
cy5kZXBlbmRzID0gJHtRTUFLRV9GSUxFX05BTUV9Ci1ydmN0c3R1YnMuaW5wdXQgPSBSVkNUX1NU
VUJfRklMRVMKK3J2Y3RzdHVicy5pbnB1dCA9IEpJVF9TVFVCX0ZJTEVTCiBydmN0c3R1YnMuQ09O
RklHICs9IG5vX2xpbmsKIGFkZEV4dHJhQ29tcGlsZXIocnZjdHN0dWJzKQogCisjIEdFTkVSQVRP
UiAyLUI6IEpJVCBTdHViIGZ1bmN0aW9ucyBmb3IgTVNWQworbXN2Y3N0dWJzLm91dHB1dCA9ICQk
e0pTQ19HRU5FUkFURURfU09VUkNFU19ESVJ9JCR7UU1BS0VfRElSX1NFUH1HZW5lcmF0ZWQke1FN
QUtFX0ZJTEVfQkFTRX1fTVNWQy5hc20KK21zdmNzdHVicy53a1NjcmlwdCA9ICQkUFdEL2NyZWF0
ZV9qaXRfc3R1YnMKK21zdmNzdHVicy5jb21tYW5kcyA9IHBlcmwgLWkgJCRtc3Zjc3R1YnMud2tT
Y3JpcHQgLS1wcmVmaXggTVNWQyAke1FNQUtFX0ZJTEVfTkFNRX0gPiAke1FNQUtFX0ZJTEVfT1VU
fQorbXN2Y3N0dWJzLmRlcGVuZHMgPSAke1FNQUtFX0ZJTEVfTkFNRX0KK21zdmNzdHVicy5pbnB1
dCA9IEpJVF9TVFVCX0ZJTEVTCittc3Zjc3R1YnMuQ09ORklHICs9IG5vX2xpbmsKK2FkZEV4dHJh
Q29tcGlsZXIobXN2Y3N0dWJzKQorCiAjIEdFTkVSQVRPUjogImNoYXJ0YWJsZXMuYyI6IGNvbXBp
bGUgYW5kIGV4ZWN1dGUgdGhlIGNoYXJ0YWJsZXMgZ2VuZXJhdG9yIChhbmQgYWRkIGl0IHRvIHNv
dXJjZXMpCiB3aW4zMi1tc3ZjKnx3aW5jZSo6IFBSRVBST0NFU1NPUiA9ICItLXByZXByb2Nlc3Nv
cj1cIiQkUU1BS0VfQ0MgL0VcIiIKIGN0Z2VuLm91dHB1dCA9ICQkSlNDX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUi9jaGFydGFibGVzLmMK
</data>

          </attachment>
      

    </bug>

</bugzilla>