<?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>64017</bug_id>
          
          <creation_ts>2011-07-06 12:55:33 -0700</creation_ts>
          <short_desc>DFG speculative JIT may crash when speculating int on a non-int JSConstant</short_desc>
          <delta_ts>2011-07-06 13:40:37 -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>All</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>432943</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-06 12:55:33 -0700</bug_when>
    <thetext>The DFG speculative JIT may sometimes perform speculations that are statically wrong.  This is inevitable in the current design and is supposed to be both performance neutral in the average and correct, because the JIT will recover once it detects that the speculation was wrong.  However, the JIT fails to perform the recovery in the case that a JSConstant node that references a non-int (for example a JSCell*) is speculated to be an Int32.  This causes crashes if the GPR that would have contained the Int32 is ever spilled and filled.  The spilling code skips spilling under the assumption that the Int32 can be rematerialized, and the filling code crashes because it&apos;s not possible to rematerialize something that is not actually an Int32 constant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432945</commentid>
    <comment_count>1</comment_count>
      <attachid>99863</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-06 12:58:17 -0700</bug_when>
    <thetext>Created attachment 99863
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432953</commentid>
    <comment_count>2</comment_count>
      <attachid>99863</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-07-06 13:00:52 -0700</bug_when>
    <thetext>Comment on attachment 99863
the patch

At some point we should remove that resolved FIXME you found, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432963</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-06 13:08:24 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 99863 [details])
&gt; At some point we should remove that resolved FIXME you found, too.

Yup, see https://bugs.webkit.org/show_bug.cgi?id=64022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432993</commentid>
    <comment_count>4</comment_count>
      <attachid>99863</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-06 13:40:34 -0700</bug_when>
    <thetext>Comment on attachment 99863
the patch

Clearing flags on attachment: 99863

Committed r90487: &lt;http://trac.webkit.org/changeset/90487&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432994</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-06 13:40:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99863</attachid>
            <date>2011-07-06 12:58:17 -0700</date>
            <delta_ts>2011-07-06 13:40:33 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>specrecoverint_patch_1.diff</filename>
            <type>text/plain</type>
            <size>1728</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTA0ODMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDctMDYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
Rkcgc3BlY3VsYXRpdmUgSklUIG1heSBjcmFzaCB3aGVuIHNwZWN1bGF0aW5nIGludCBvbiBhIG5v
bi1pbnQgSlNDb25zdGFudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY0MDE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlSW50SW50ZXJuYWwpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKwogMjAxMS0wNy0wNiAgRG1pdHJpeSBW
eXVrb3YgIDxkdnl1a292QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQg
TGV2aW4uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAkocmV2aXNpb24gOTA0NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksOSBAQCBH
UFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnRJCiAgICAgICAgICAgICAgICAg
cmV0dXJuRm9ybWF0ID0gRGF0YUZvcm1hdEludGVnZXI7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IGdwcjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1faml0Lm1vdmUodmFsdWVPZkpTQ29u
c3RhbnRBc0ltbVB0cihub2RlSW5kZXgpLCBncHIpOworICAgICAgICAgICAgdGVybWluYXRlU3Bl
Y3VsYXRpdmVFeGVjdXRpb24oKTsKKyAgICAgICAgICAgIHJldHVybkZvcm1hdCA9IERhdGFGb3Jt
YXRJbnRlZ2VyOworICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRlKCk7CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBEYXRhRm9ybWF0IHNwaWxsRm9ybWF0ID0gaW5mby5zcGlsbEZvcm1h
dCgpOwogICAgICAgICAgICAgQVNTRVJUKHNwaWxsRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKQEAg
LTg2Miw2ICs4NjQsOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUp
CiAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwogICAgICAgICBH
UFJSZWcgdmFsdWVSZWcgPSB2YWx1ZS5ncHIoKTsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2hSZWcg
PSBzY3JhdGNoLmdwcigpOworICAgICAgICAKKyAgICAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQor
ICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHdyaXRlQmFycmllcihtX2ppdCwgYmFzZVJl
Zywgc2NyYXRjaFJlZyk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>