<?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>65095</bug_id>
          
          <creation_ts>2011-07-24 22:54:16 -0700</creation_ts>
          <short_desc>X86-64 assembler emits three instructions instead of two for certain loads and stores</short_desc>
          <delta_ts>2011-07-25 10:59:25 -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>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>441560</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-24 22:54:16 -0700</bug_when>
    <thetext>The only X86-64 instructions for storing to, or loading from, 64-bit absolute immediate addresses require that the source of the store (or the target of the load) is EAX.  If the X86-64 assembler in JSC is asked to emit code for storing, or loading, an absolute immediate address where the register containing the value is not EAX, it will emit two additional instructions to swap values between EAX and the requested register.  This is not as efficient as simply moving the 64-bit address into the assembler&apos;s scratch register, which would result in two instructions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441561</commentid>
    <comment_count>1</comment_count>
      <attachid>101850</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-24 22:59:22 -0700</bug_when>
    <thetext>Created attachment 101850
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441743</commentid>
    <comment_count>2</comment_count>
      <attachid>101850</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-25 10:59:21 -0700</bug_when>
    <thetext>Comment on attachment 101850
the patch

Clearing flags on attachment: 101850

Committed r91678: &lt;http://trac.webkit.org/changeset/91678&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441744</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-25 10:59:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101850</attachid>
            <date>2011-07-24 22:59:22 -0700</date>
            <delta_ts>2011-07-25 10:59:21 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>nomoveax_patch_1.diff</filename>
            <type>text/plain</type>
            <size>2875</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTE2NTcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTEtMDctMjQgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBY
ODYtNjQgYXNzZW1ibGVyIGVtaXRzIHRocmVlIGluc3RydWN0aW9ucyBpbnN0ZWFkIG9mIHR3byBm
b3IgY2VydGFpbgorICAgICAgICBsb2FkcyBhbmQgc3RvcmVzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwOTUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFNpbXBseSBtYWRlIHRoZXNlIGZv
dXIgbWV0aG9kcyBpbiB0aGUgYXNzZW1ibGVyIHVzZSB0aGUgc2NyYXRjaCByZWdpc3RlciwKKyAg
ICAgICAgd2hpY2ggdGhleSB3ZXJlIHByZXZpb3VzbHkgYXZvaWRpbmcuICBJdCBzdGlsbCBvcHRp
bWl6ZXMgZm9yIHRoZSBjYXNlIHdoZXJlCisgICAgICAgIGFuIGFic29sdXRlIGFkZHJlc3MgbWVt
b3J5IGFjY2Vzc2VzIGlzIHVzaW5nIEVBWC4gIFRoaXMgcmVzdWx0cyBpbiBhIHNsaWdodAorICAg
ICAgICBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudC4KKworICAgICAgICAqIGFzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6
bG9hZDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6OnN0b3JlMzIpOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6bG9hZFB0cik6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyWDg2XzY0OjpzdG9yZVB0cik6CisKIDIwMTEtMDctMjIgIFNvbW1l
ciBQYW5hZ2UgIDxwYW5hZ2VAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZl
ciBIdW50LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4Nl82NC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAkocmV2aXNpb24gOTE2NTcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTgxLDkgKzgxLDggQEAgcHVibGljOgogICAgICAgICBpZiAoZGVzdCA9PSBYODZSZWdp
c3RlcnM6OmVheCkKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmxfbUVBWChhZGRyZXNzKTsK
ICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBtb3ZlKFg4NlJlZ2lzdGVyczo6ZWF4LCBkZXN0
KTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmxfbUVBWChhZGRyZXNzKTsKLSAgICAgICAg
ICAgIHN3YXAoWDg2UmVnaXN0ZXJzOjplYXgsIGRlc3QpOworICAgICAgICAgICAgbW92ZShUcnVz
dGVkSW1tUHRyKGFkZHJlc3MpLCBkZXN0KTsKKyAgICAgICAgICAgIGxvYWQzMihkZXN0LCBkZXN0
KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTA3LDEwICsxMDYsOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHN0b3JlMzIoVHJ1c3RlZEltbTMyIGltbSwgdm9pZCogYWRkcmVzcykKICAgICB7Ci0g
ICAgICAgIG1vdmUoWDg2UmVnaXN0ZXJzOjplYXgsIHNjcmF0Y2hSZWdpc3Rlcik7Ci0gICAgICAg
IG1vdmUoaW1tLCBYODZSZWdpc3RlcnM6OmVheCk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLm1vdmxf
RUFYbShhZGRyZXNzKTsKLSAgICAgICAgbW92ZShzY3JhdGNoUmVnaXN0ZXIsIFg4NlJlZ2lzdGVy
czo6ZWF4KTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBzY3JhdGNoUmVn
aXN0ZXIpOworICAgICAgICBzdG9yZTMyKGltbSwgc2NyYXRjaFJlZ2lzdGVyKTsKICAgICB9CiAK
ICAgICBDYWxsIGNhbGwoKQpAQCAtMjU3LDkgKzI1NCw4IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGRlc3QgPT0gWDg2UmVnaXN0ZXJzOjplYXgpCiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3Zx
X21FQVgoYWRkcmVzcyk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgbW92ZShYODZSZWdp
c3RlcnM6OmVheCwgZGVzdCk7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZxX21FQVgoYWRk
cmVzcyk7Ci0gICAgICAgICAgICBzd2FwKFg4NlJlZ2lzdGVyczo6ZWF4LCBkZXN0KTsKKyAgICAg
ICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgZGVzdCk7CisgICAgICAgICAgICBs
b2FkUHRyKGRlc3QsIGRlc3QpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yOTAsOSArMjg2LDgg
QEAgcHVibGljOgogICAgICAgICBpZiAoc3JjID09IFg4NlJlZ2lzdGVyczo6ZWF4KQogICAgICAg
ICAgICAgbV9hc3NlbWJsZXIubW92cV9FQVhtKGFkZHJlc3MpOwogICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgIHN3YXAoWDg2UmVnaXN0ZXJzOjplYXgsIHNyYyk7Ci0gICAgICAgICAgICBtX2Fz
c2VtYmxlci5tb3ZxX0VBWG0oYWRkcmVzcyk7Ci0gICAgICAgICAgICBzd2FwKFg4NlJlZ2lzdGVy
czo6ZWF4LCBzcmMpOworICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBz
Y3JhdGNoUmVnaXN0ZXIpOworICAgICAgICAgICAgc3RvcmVQdHIoc3JjLCBzY3JhdGNoUmVnaXN0
ZXIpOwogICAgICAgICB9CiAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>