<?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>137304</bug_id>
          
          <creation_ts>2014-10-01 10:29:54 -0700</creation_ts>
          <short_desc>[Win] 32-bit JavaScriptCore should limit itself to the C loop</short_desc>
          <delta_ts>2014-10-06 09:49:36 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>peavo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1038585</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-10-01 10:29:54 -0700</bug_when>
    <thetext>The awesome LLInt interpreter layer in JSC uses SSE2 instructions that are not available in pre-Pentium 4. We need to continue supporting this old hardware as long as we are supporting Windows XP for WebKit.

Consequently, we need to turn off LLInt on 32-bit Windows builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038589</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-10-01 10:40:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/18375370&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038590</commentid>
    <comment_count>2</comment_count>
      <attachid>239034</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-10-01 10:41:42 -0700</bug_when>
    <thetext>Created attachment 239034
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038591</commentid>
    <comment_count>3</comment_count>
      <attachid>239034</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-10-01 10:42:49 -0700</bug_when>
    <thetext>Comment on attachment 239034
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038597</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-10-01 11:22:35 -0700</bug_when>
    <thetext>Committed r174162: &lt;http://trac.webkit.org/changeset/174162&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038601</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-10-01 11:29:30 -0700</bug_when>
    <thetext>Confirmed no regressions in JSC test runs with this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039740</commentid>
    <comment_count>6</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-10-06 09:17:32 -0700</bug_when>
    <thetext>Do we know which SSE2 instructions are used? Maybe we could rewrite the usage of those?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039746</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-10-06 09:41:48 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Do we know which SSE2 instructions are used? Maybe we could rewrite the usage of those?

I believe the issue was the need to support IEEE floating point behavior. At one time, the Qt project had some code to use x86+math hacks to deliver similar support on non-SSE hardware, but that code probably got excised when they removed their port.

Pragmatically, limiting JIT support to 64-bit is probably not the end of the world. Most people who care about performance are probably running 64-bit CPUs anyway. It would be great to re-enable the JIT for 32-bit in general, but people with specific performance needs can always build WebKit with the 32-bit JIT enabled for their own deployments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039749</commentid>
    <comment_count>8</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-10-06 09:49:36 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; Do we know which SSE2 instructions are used? Maybe we could rewrite the usage of those?
&gt; 
&gt; I believe the issue was the need to support IEEE floating point behavior. At one time, the Qt project had some code to use x86+math hacks to deliver similar support on non-SSE hardware, but that code probably got excised when they removed their port.
&gt; 
&gt; Pragmatically, limiting JIT support to 64-bit is probably not the end of the world. Most people who care about performance are probably running 64-bit CPUs anyway. It would be great to re-enable the JIT for 32-bit in general, but people with specific performance needs can always build WebKit with the 32-bit JIT enabled for their own deployments.

Ok :) I also see that there are a number of ASSERT(isSSE2Present()) statements in MacroAssemblerX86Common.h which indicates where SSE2 is required.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239034</attachid>
            <date>2014-10-01 10:41:42 -0700</date>
            <delta_ts>2014-10-01 10:42:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137304-20141001104358.patch</filename>
            <type>text/plain</type>
            <size>3094</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc0MTYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDE0LTEwLTAxICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAg
ICAgIFtXaW5dIDMyLWJpdCBKYXZhU2NyaXB0Q29yZSBzaG91bGQgbGltaXQgaXRzZWxmIHRvIHRo
ZSBDIGxvb3AKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNzMwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTgzNzUzNzA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0xMSW50L0xMSW50QXNzZW1ibHkvYnVpbGQtTExJbnRBc3NlbWJseS5wbDoKKyAgICAgICAg
VXNlIHRoZSBDIGxvb3AgZm9yIDMyLWJpdCBidWlsZHMuCisKIDIwMTQtMDktMzAgIEJyaWFuIEou
IEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IEVycm9yU3RyaW5nIHNob3VsZCBiZSBwYXNzZWQgYnkgcmVmZXJlbmNlCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9MTEludC9MTEludEFzc2VtYmx5
L2J1aWxkLUxMSW50QXNzZW1ibHkucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovTExJbnQvTExJbnRBc3NlbWJseS9idWlsZC1MTElu
dEFzc2VtYmx5LnBsCShyZXZpc2lvbiAxNzQxMzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9MTEludC9MTEludEFzc2VtYmx5L2J1aWxkLUxMSW50QXNz
ZW1ibHkucGwJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDEzIEBAIHByaW50IE9VVFBVVEZJ
TEVOQU1FICJFTkRcbiI7CiBjbG9zZShPVVRQVVRGSUxFTkFNRSk7CiAKICMgSWYgeW91IHdhbnQg
dG8gZW5hYmxlIHRoZSBMTElOVCBDIGxvb3AsIHNldCBPVVRQVVRGSUxFTkFNRSB0byAiTExJbnRB
c3NlbWJseS5oIgotbXkgJE9VVFBVVEZJTEVOQU1FID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkREVS
SVZFRF9TT1VSQ0VTX0RJUiwgJ0xvd0xldmVsSW50ZXJwcmV0ZXJXaW4uYXNtJyk7CisjIFdlIG9u
bHkgd2FudCB0aGUgQyBsb29wIGZvciAzMi1iaXQgV2luZG93cyBzbyB3ZSBjYW4gY29udGludWUg
dG8gc3VwcG9ydCBvbGQgQ1BVcy4KK215ICRPVVRQVVRGSUxFTkFNRTsKK2lmICgiJEFSR1ZbM10i
IGVxICIzMiIpIHsKKyAgICAkT1VUUFVURklMRU5BTUUgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCRE
RVJJVkVEX1NPVVJDRVNfRElSLCAnTExJbnRBc3NlbWJseS5oJyk7Cit9IGVsc2UgeworICAgICRP
VVRQVVRGSUxFTkFNRSA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJERFUklWRURfU09VUkNFU19ESVIs
ICdMb3dMZXZlbEludGVycHJldGVyV2luLmFzbScpOworfQogCiBteSAkb2ZmbGluZUFzbSA9IEZp
bGU6OlNwZWMtPmNhdGZpbGUoJFhTUkNST09ULCAnb2ZmbGluZWFzbScsICdhc20ucmInKTsKIG15
ICRsb3dMZXZlbEludGVycHJldGVyID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkWFNSQ1JPT1QsICds
bGludCcsICdMb3dMZXZlbEludGVycHJldGVyLmFzbScpOwpJbmRleDogU291cmNlL1dURi9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NDE2
MCkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTQtMTAtMDEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dpbl0gMzItYml0IEphdmFTY3JpcHRDb3JlIHNob3VsZCBsaW1pdCBpdHNlbGYgdG8g
dGhlIEMgbG9vcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM3MzA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xODM3NTM3MD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOiBG
b3JjZSB0aGUgQyBsb29wIHdoZW4gYnVpbGRpbmcgZm9yIDMyLWJpdCBXaW5kb3dzLgorCiAyMDE0
LTA5LTMwICBDaHJpc3RvcGhlIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBH
ZW5lcmFsaXplIGlzPD4oKSAvIGRvd25jYXN0PD4oKSBzdXBwb3J0IHRvIGFsbCB0eXBlcwpJbmRl
eDogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxNzQxMzkpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MjgsNiArNzI4LDEyIEBACiAjZGVmaW5lIEVOQUJMRV9D
T05DVVJSRU5UX0pJVCAxCiAjZW5kaWYKIAorLyogV2UgZG8gbm90IHdhbnQgdG8gYWxsb3cgTExJ
bnQgb24gMzItYml0IFdpbmRvd3Mgc28gdGhhdCB3ZSBjYW4gc3VwcG9ydCBzb21lIGFuY2llbnQK
KyAgIENQVXMgdGhhdCBkbyBub3QgaGF2ZSBTU0UyIHN1cHBvcnQgKi8KKyNpZiBPUyhXSU5ET1dT
KSAmJiAhQ1BVKFg4Nl82NCkKKyNkZWZpbmUgRU5BQkxFX0xMSU5UX0NfTE9PUCAxCisjZW5kaWYK
KwogLyogRGlzYWJsZSB0aGUgSklUIGlmIHdlIGZvcmNlIHRoZSBMTEludCBDIExvb3AgKi8KICNp
ZiBkZWZpbmVkKEVOQUJMRV9MTElOVF9DX0xPT1ApICYmIEVOQUJMRV9MTElOVF9DX0xPT1AKICN1
bmRlZiBFTkFCTEVfSklUCg==
</data>
<flag name="review"
          id="263737"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>