<?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>120020</bug_id>
          
          <creation_ts>2013-08-19 12:29:55 -0700</creation_ts>
          <short_desc>Change Set 154207 causes wrong register to be used for 32 bit tests</short_desc>
          <delta_ts>2013-08-19 14:25:34 -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="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>benjamin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>918736</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-08-19 12:29:55 -0700</bug_when>
    <thetext>The change to branchTest32(ResultCondition, RegisterID, TrustedImm32) in change set 154207 breaks the testing of registers esp, ebp, esi and edi.

Due to the encoding of registers for 32bit addressing, registers numbered 4-7 (esp, ebp, esi and edi) become the upper half of registers 0-3 (ah, ch, dh and bh respectively).  Therefore a call to branchTestPtr(Zero, GPRInfo::edi, TrustedImm32(7)) while emit a testb  $7, %bh instruction.

For 64 bit addressing, a REX prefix is used to assure the right lower 8 bits or a register are used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918761</commentid>
    <comment_count>1</comment_count>
      <attachid>209115</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-08-19 13:28:58 -0700</bug_when>
    <thetext>Created attachment 209115
Patch

Limit the prior optimization to registers eax, ecx, edx and ebx per intel documentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918794</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-08-19 14:25:34 -0700</bug_when>
    <thetext>Committed r154298: &lt;http://trac.webkit.org/changeset/154298&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209115</attachid>
            <date>2013-08-19 13:28:58 -0700</date>
            <delta_ts>2013-08-19 13:44:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>120020.patch</filename>
            <type>text/plain</type>
            <size>1751</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU0MjkyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDEzLTA4LTE5ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjAwMjAgQ2hhbmdl
IFNldCAxNTQyMDcgY2F1c2VzIHdyb25nIHJlZ2lzdGVyIHRvIGJlIHVzZWQgZm9yIDMyIGJpdCB0
ZXN0cworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
YW5nZSBicmFuc2hUZXN0MzIgdG8gb25seSB1c2UgdGhlIGJ5dGUgZm9yIDggYml0IHRlc3Qgb24g
dGhlIGxvd2VyIDQgcmVnaXN0ZXJzLgorICAgICAgICBSZWdpc3RlcnMgNCB0aHJvdWdoIDcgYXMg
Ynl0ZSByZWdpc2VycyBhcmUgYWgsIGNoLCBkaCBhbmQgYmggaW5zdGVhZCBvZiBzcCwgYnAsIHNp
IGFuZCBkaS4KKworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5o
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YnJhbmNoVGVzdDMyKToK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVDZWxsKToKKwogMjAxMy0wOC0xNiAg
T2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIDxodHRwczovL3dlYmtp
dC5vcmcvYi8xMTk4NjA+IENyYXNoIGR1cmluZyBleGNlcHRpb24gdW53aW5kaW5nCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAxNTQyODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTExNDAsNyArMTE0MCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmIChtYXNrLm1fdmFs
dWUgPT0gLTEpCiAgICAgICAgICAgICBtX2Fzc2VtYmxlci50ZXN0bF9ycihyZWcsIHJlZyk7Ci0g
ICAgICAgIGVsc2UgaWYgKCEobWFzay5tX3ZhbHVlICYgfjB4ZmYpKQorICAgICAgICBlbHNlIGlm
ICghKG1hc2subV92YWx1ZSAmIH4weGZmKSAmJiByZWcgPCBYODZSZWdpc3RlcnM6OmVzcCkgLy8g
VXNpbmcgZXNwIGFuZCBncmVhdGVyIGFzIGEgYnl0ZSByZWdpc3RlciB5aWVsZHMgdGhlIHVwcGVy
IGhhbGYgb2YgdGhlIDE2IGJpdCByZWdpc3RlcnMgYXgsIGN4LCBkeCBhbmQgYngsIGUuZy4gZXNw
LCByZWdpc3RlciA0LCBpcyBhY3R1YWxseSBhaC4KICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRl
c3RiX2k4cihtYXNrLm1fdmFsdWUsIHJlZyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1f
YXNzZW1ibGVyLnRlc3RsX2kzMnIobWFzay5tX3ZhbHVlLCByZWcpOwo=
</data>
<flag name="review"
          id="231103"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>