<?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>67551</bug_id>
          
          <creation_ts>2011-09-02 20:48:53 -0700</creation_ts>
          <short_desc>DFG JIT speculation failure does recovery of additions without reboxing</short_desc>
          <delta_ts>2011-09-06 13:08:09 -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>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>461715</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-02 20:48:53 -0700</bug_when>
    <thetext>The DFG JIT speculation failure code can undo additions - so if we realize that we executed a destructive addition incorrectly, we can revert it.  But the code does not work: it performs an addition on the wrong register (it reverses the source and destination) and then fails to rebox the result, if the destructive addition also did implicit unboxing via zero extension.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461717</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-02 21:02:19 -0700</bug_when>
    <thetext>Correction: the recovery is done in the right order.  The bug here is that it does not do reboxing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461721</commentid>
    <comment_count>2</comment_count>
      <attachid>106243</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-02 21:15:59 -0700</bug_when>
    <thetext>Created attachment 106243
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461722</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-02 21:17:48 -0700</bug_when>
    <thetext>Attachment 106243 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/ChangeLog:3:  Line contains tab character.  [whitespace/tab] [5]
Source/JavaScriptCore/ChangeLog:4:  Line contains tab character.  [whitespace/tab] [5]
Source/JavaScriptCore/ChangeLog:5:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 3 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461727</commentid>
    <comment_count>4</comment_count>
      <attachid>106243</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-09-02 21:27:12 -0700</bug_when>
    <thetext>Comment on attachment 106243
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=106243&amp;action=review

&gt; Source/JavaScriptCore/ChangeLog:6
&gt; +

Please remove tabs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461728</commentid>
    <comment_count>5</comment_count>
      <attachid>106244</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-02 21:30:32 -0700</bug_when>
    <thetext>Created attachment 106244
the patch - removed tabs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461743</commentid>
    <comment_count>6</comment_count>
      <attachid>106244</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-02 22:22:41 -0700</bug_when>
    <thetext>Comment on attachment 106244
the patch - removed tabs

Clearing flags on attachment: 106244

Committed r94478: &lt;http://trac.webkit.org/changeset/94478&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461744</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-02 22:22:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462774</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-09-06 13:03:08 -0700</bug_when>
    <thetext>Could this patch have included a regression test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462780</commentid>
    <comment_count>9</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-06 13:08:09 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Could this patch have included a regression test?

It could have; at the time I wasn&apos;t sure if I could even repro it without tiered compilation but now I know I can.  A test case is on the way.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106243</attachid>
            <date>2011-09-02 21:15:59 -0700</date>
            <delta_ts>2011-09-02 21:30:32 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>goodrecover_patch_2.diff</filename>
            <type>text/plain</type>
            <size>1866</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTQ0NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDktMDIgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworCURGRyBKSVQg
c3BlY3VsYXRpb24gZmFpbHVyZSBkb2VzIHJlY292ZXJ5IG9mIGFkZGl0aW9ucyBpbiByZXZlcnNl
IGFuZAorCWRvZXNuJ3QgcmVib3gKKwlodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Njc1NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29t
cGlsZXI6Omp1bXBGcm9tU3BlY3VsYXRpdmVUb05vblNwZWN1bGF0aXZlKToKKwogMjAxMS0wOS0w
MiAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNl
IGxvY2FsIGltcGxlbWVudGF0aW9uIG9mIHN0cmluZyBlcXVhbHMoKSBtZXRob2RzIHdpdGggVVN0
cmluZyB2ZXJzaW9ucwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21w
aWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRD
b21waWxlci5jcHAJKHJldmlzaW9uIDk0NDc2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdKSVRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5NSw4ICs0OTUsMTYgQEAg
dm9pZCBKSVRDb21waWxlcjo6anVtcEZyb21TcGVjdWxhdGl2ZVRvTgogICAgIGlmIChyZWNvdmVy
eSkgewogICAgICAgICAvLyBUaGUgb25seSBhZGRpdGlvbmFsIHJlY292ZXJ5IHdlIGN1cnJlbnRs
eSBzdXBwb3J0IGlzIGZvciBpbnRlZ2VyIGFkZCBvcGVyYXRpb24KICAgICAgICAgQVNTRVJUKHJl
Y292ZXJ5LT50eXBlKCkgPT0gU3BlY3VsYXRpdmVBZGQpOworICAgICAgICBBU1NFUlQoY2hlY2su
bV9ncHJJbmZvW0dQUkluZm86OnRvSW5kZXgocmVjb3ZlcnktPmRlc3QoKSldLm5vZGVJbmRleCAh
PSBOb05vZGUpOwogICAgICAgICAvLyBSZXZlcnQgdGhlIGFkZC4KICAgICAgICAgc3ViMzIocmVj
b3ZlcnktPnNyYygpLCByZWNvdmVyeS0+ZGVzdCgpKTsKKyAgICAgICAgCisgICAgICAgIC8vIElm
IHJlY292ZXJ5LT5kZXN0KCkgc2hvdWxkIGhhdmUgYmVlbiBib3hlZCBwcmlvciB0byB0aGUgYWRk
aXRpb24sIHRoZW4gcmVib3gKKyAgICAgICAgLy8gaXQuCisgICAgICAgIERhdGFGb3JtYXQgZm9y
bWF0ID0gY2hlY2subV9ncHJJbmZvW0dQUkluZm86OnRvSW5kZXgocmVjb3ZlcnktPmRlc3QoKSld
LmZvcm1hdDsKKyAgICAgICAgQVNTRVJUKGZvcm1hdCA9PSBEYXRhRm9ybWF0SW50ZWdlciB8fCBm
b3JtYXQgPT0gRGF0YUZvcm1hdEpTSW50ZWdlciB8fCBmb3JtYXQgPT0gRGF0YUZvcm1hdEpTKTsK
KyAgICAgICAgaWYgKGZvcm1hdCAhPSBEYXRhRm9ybWF0SW50ZWdlcikKKyAgICAgICAgICAgIG9y
UHRyKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgcmVjb3ZlcnktPmRlc3QoKSk7CiAg
ICAgfQogICAgIAogICAgIC8vIEZpcnN0LCB3ZSBuZWVkIGEgcmV2ZXJzZSBtYXBwaW5nIHRoYXQg
dGVsbHMgdXMsIGZvciBhIE5vZGVJbmRleCwgd2hpY2ggcmVnaXN0ZXIK
</data>
<flag name="review"
          id="102618"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106244</attachid>
            <date>2011-09-02 21:30:32 -0700</date>
            <delta_ts>2011-09-02 22:22:41 -0700</delta_ts>
            <desc>the patch - removed tabs</desc>
            <filename>goodrecover_patch_4.diff</filename>
            <type>text/plain</type>
            <size>1883</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTQ0NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDktMDIgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgSklUIHNwZWN1bGF0aW9uIGZhaWx1cmUgZG9lcyByZWNvdmVyeSBvZiBhZGRpdGlvbnMgaW4g
cmV2ZXJzZSBhbmQKKyAgICAgICAgZG9lc24ndCByZWJveAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1NTEKKworICAgICAgICBSZXZpZXdlZCBieSBT
YW0gV2VpbmlnLgorCisgICAgICAgICogZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpKSVRDb21waWxlcjo6anVtcEZyb21TcGVjdWxhdGl2ZVRvTm9uU3BlY3VsYXRp
dmUpOgorCiAyMDExLTA5LTAyICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlcGxhY2UgbG9jYWwgaW1wbGVtZW50YXRpb24gb2Ygc3RyaW5nIGVxdWFscygp
IG1ldGhvZHMgd2l0aCBVU3RyaW5nIHZlcnNpb25zCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkocmV2aXNpb24gOTQ0NzYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDk1LDggKzQ5NSwxNiBAQCB2b2lkIEpJVENvbXBpbGVyOjpqdW1wRnJvbVNwZWN1bGF0aXZlVG9O
CiAgICAgaWYgKHJlY292ZXJ5KSB7CiAgICAgICAgIC8vIFRoZSBvbmx5IGFkZGl0aW9uYWwgcmVj
b3Zlcnkgd2UgY3VycmVudGx5IHN1cHBvcnQgaXMgZm9yIGludGVnZXIgYWRkIG9wZXJhdGlvbgog
ICAgICAgICBBU1NFUlQocmVjb3ZlcnktPnR5cGUoKSA9PSBTcGVjdWxhdGl2ZUFkZCk7CisgICAg
ICAgIEFTU0VSVChjaGVjay5tX2dwckluZm9bR1BSSW5mbzo6dG9JbmRleChyZWNvdmVyeS0+ZGVz
dCgpKV0ubm9kZUluZGV4ICE9IE5vTm9kZSk7CiAgICAgICAgIC8vIFJldmVydCB0aGUgYWRkLgog
ICAgICAgICBzdWIzMihyZWNvdmVyeS0+c3JjKCksIHJlY292ZXJ5LT5kZXN0KCkpOworICAgICAg
ICAKKyAgICAgICAgLy8gSWYgcmVjb3ZlcnktPmRlc3QoKSBzaG91bGQgaGF2ZSBiZWVuIGJveGVk
IHByaW9yIHRvIHRoZSBhZGRpdGlvbiwgdGhlbiByZWJveAorICAgICAgICAvLyBpdC4KKyAgICAg
ICAgRGF0YUZvcm1hdCBmb3JtYXQgPSBjaGVjay5tX2dwckluZm9bR1BSSW5mbzo6dG9JbmRleChy
ZWNvdmVyeS0+ZGVzdCgpKV0uZm9ybWF0OworICAgICAgICBBU1NFUlQoZm9ybWF0ID09IERhdGFG
b3JtYXRJbnRlZ2VyIHx8IGZvcm1hdCA9PSBEYXRhRm9ybWF0SlNJbnRlZ2VyIHx8IGZvcm1hdCA9
PSBEYXRhRm9ybWF0SlMpOworICAgICAgICBpZiAoZm9ybWF0ICE9IERhdGFGb3JtYXRJbnRlZ2Vy
KQorICAgICAgICAgICAgb3JQdHIoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCByZWNv
dmVyeS0+ZGVzdCgpKTsKICAgICB9CiAgICAgCiAgICAgLy8gRmlyc3QsIHdlIG5lZWQgYSByZXZl
cnNlIG1hcHBpbmcgdGhhdCB0ZWxscyB1cywgZm9yIGEgTm9kZUluZGV4LCB3aGljaCByZWdpc3Rl
cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>