<?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>21985</bug_id>
          
          <creation_ts>2008-10-30 13:15:43 -0700</creation_ts>
          <short_desc>Opcodes should use eax as their destination register whenever possible</short_desc>
          <delta_ts>2008-10-30 14:27:50 -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="Cameron Zwarich (cpst)">zwarich</reporter>
          <assigned_to name="Cameron Zwarich (cpst)">zwarich</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>97156</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-30 13:15:43 -0700</bug_when>
    <thetext>Some opcodes pointlessly use something other than eax as their destination register or supply eax as an argument to emitPutResult rather than using the default. This potentially makes the sort of memory traffic elimination like in bug 21943 less of a win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97159</commentid>
    <comment_count>1</comment_count>
      <attachid>24778</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-30 13:46:21 -0700</bug_when>
    <thetext>Created attachment 24778
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97161</commentid>
    <comment_count>2</comment_count>
      <attachid>24779</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-30 13:50:23 -0700</bug_when>
    <thetext>Created attachment 24779
Revised proposed patch

I forgot to remove one of the explicit uses of eax. Here is a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97163</commentid>
    <comment_count>3</comment_count>
      <attachid>24779</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-10-30 13:53:47 -0700</bug_when>
    <thetext>Comment on attachment 24779
Revised proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97164</commentid>
    <comment_count>4</comment_count>
      <attachid>24778</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-10-30 13:56:40 -0700</bug_when>
    <thetext>Comment on attachment 24778
Proposed patch

r=me

&gt; Index: ChangeLog
&gt; ===================================================================
&gt; --- ChangeLog	(revision 38005)
&gt; +++ ChangeLog	(working copy)
&gt; @@ -1,3 +1,17 @@
&gt; +2008-10-30  Cameron Zwarich  &lt;zwarich@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Bug 21985: Opcodes should use eax as their destination register whenever possible
&gt; +        &lt;https://bugs.webkit.org/show_bug.cgi?id=21985&gt;
&gt; +
&gt; +        Change more opcodes to use eax as the register for their final result,
&gt; +        and change calls to emitPutResult() that pass eax to rely on the default
&gt; +        value of eax.
&gt; +
&gt; +        * VM/CTI.cpp:
&gt; +        (JSC::CTI::privateCompileMainPass):
&gt; +
&gt;  2008-10-30  Alp Toker  &lt;alp@nuanti.com&gt;
&gt;  
&gt;          Build fix attempt for older gcc on the trunk-mac-intel build bot
&gt; Index: VM/CTI.cpp
&gt; ===================================================================
&gt; --- VM/CTI.cpp	(revision 38001)
&gt; +++ VM/CTI.cpp	(working copy)
&gt; @@ -1011,10 +1011,10 @@ void CTI::privateCompileMainPass()
&gt;          case op_mov: {
&gt;              unsigned src = instruction[i + 2].u.operand;
&gt;              if (isConstant(src))
&gt; -                m_jit.movl_i32r(asInteger(getConstant(m_callFrame, src)), X86::edx);
&gt; +                m_jit.movl_i32r(asInteger(getConstant(m_callFrame, src)), X86::eax);
&gt;              else
&gt; -                emitGetArg(src, X86::edx);
&gt; -            emitPutResult(instruction[i + 1].u.operand, X86::edx);
&gt; +                emitGetArg(src, X86::eax);
&gt; +            emitPutResult(instruction[i + 1].u.operand);
&gt;              i += 3;
&gt;              break;
&gt;          }
&gt; @@ -1071,7 +1071,7 @@ void CTI::privateCompileMainPass()
&gt;              emitJumpSlowCaseIfNotImmNum(X86::eax, i);
&gt;              m_jit.addl_i8r(getDeTaggedConstantImmediate(JSImmediate::oneImmediate()), X86::eax);
&gt;              m_slowCases.append(SlowCaseEntry(m_jit.emitUnlinkedJo(), i));
&gt; -            emitPutResult(srcDst, X86::eax);
&gt; +            emitPutResult(srcDst);
&gt;              i += 2;
&gt;              break;
&gt;          }
&gt; @@ -1305,7 +1305,7 @@ void CTI::privateCompileMainPass()
&gt;              JSVariableObject* globalObject = static_cast&lt;JSVariableObject*&gt;(instruction[i + 2].u.jsCell);
&gt;              m_jit.movl_i32r(asInteger(globalObject), X86::eax);
&gt;              emitGetVariableObjectRegister(X86::eax, instruction[i + 3].u.operand, X86::eax);
&gt; -            emitPutResult(instruction[i + 1].u.operand, X86::eax);
&gt; +            emitPutResult(instruction[i + 1].u.operand);
&gt;              i += 4;
&gt;              break;
&gt;          }
&gt; @@ -1407,8 +1407,8 @@ void CTI::privateCompileMainPass()
&gt;              X86Assembler::JmpSrc isObject = m_jit.emitUnlinkedJe();
&gt;  
&gt;              m_jit.link(isImmediate, m_jit.label());
&gt; -            emitGetArg(instruction[i + 2].u.operand, X86::ecx);
&gt; -            emitPutResult(instruction[i + 1].u.operand, X86::ecx);
&gt; +            emitGetArg(instruction[i + 2].u.operand, X86::eax);
&gt; +            emitPutResult(instruction[i + 1].u.operand, X86::eax);
&gt;              m_jit.link(isObject, m_jit.label());
&gt;  
&gt;              i += 3;
&gt; @@ -1603,7 +1603,7 @@ void CTI::privateCompileMainPass()
&gt;              emitJumpSlowCaseIfNotImmNum(X86::eax, i);
&gt;              m_jit.subl_i8r(getDeTaggedConstantImmediate(JSImmediate::oneImmediate()), X86::eax);
&gt;              m_slowCases.append(SlowCaseEntry(m_jit.emitUnlinkedJo(), i));
&gt; -            emitPutResult(srcDst, X86::eax);
&gt; +            emitPutResult(srcDst);
&gt;              i += 2;
&gt;              break;
&gt;          }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97173</commentid>
    <comment_count>5</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-10-30 14:27:50 -0700</bug_when>
    <thetext>Landed in r38009. Don&apos;t review my old patches, Maciej. ;-)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24778</attachid>
            <date>2008-10-30 13:46:21 -0700</date>
            <delta_ts>2008-10-30 14:27:29 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>eax.diff</filename>
            <type>text/plain</type>
            <size>3415</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM4MDA1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDgtMTAt
MzAgIENhbWVyb24gWndhcmljaCAgPHp3YXJpY2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyMTk4NTogT3Bjb2RlcyBzaG91
bGQgdXNlIGVheCBhcyB0aGVpciBkZXN0aW5hdGlvbiByZWdpc3RlciB3aGVuZXZlciBwb3NzaWJs
ZQorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTg1
PgorCisgICAgICAgIENoYW5nZSBtb3JlIG9wY29kZXMgdG8gdXNlIGVheCBhcyB0aGUgcmVnaXN0
ZXIgZm9yIHRoZWlyIGZpbmFsIHJlc3VsdCwKKyAgICAgICAgYW5kIGNoYW5nZSBjYWxscyB0byBl
bWl0UHV0UmVzdWx0KCkgdGhhdCBwYXNzIGVheCB0byByZWx5IG9uIHRoZSBkZWZhdWx0CisgICAg
ICAgIHZhbHVlIG9mIGVheC4KKworICAgICAgICAqIFZNL0NUSS5jcHA6CisgICAgICAgIChKU0M6
OkNUSTo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisKIDIwMDgtMTAtMzAgIEFscCBUb2tlciAg
PGFscEBudWFudGkuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCBhdHRlbXB0IGZvciBvbGRlciBn
Y2Mgb24gdGhlIHRydW5rLW1hYy1pbnRlbCBidWlsZCBib3QKSW5kZXg6IFZNL0NUSS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVk0vQ1RJLmNwcAkocmV2aXNpb24gMzgwMDEpCisrKyBWTS9DVEkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDExLDEwICsxMDExLDEwIEBAIHZvaWQgQ1RJOjpwcml2YXRlQ29t
cGlsZU1haW5QYXNzKCkKICAgICAgICAgY2FzZSBvcF9tb3Y6IHsKICAgICAgICAgICAgIHVuc2ln
bmVkIHNyYyA9IGluc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpZiAo
aXNDb25zdGFudChzcmMpKQotICAgICAgICAgICAgICAgIG1faml0Lm1vdmxfaTMycihhc0ludGVn
ZXIoZ2V0Q29uc3RhbnQobV9jYWxsRnJhbWUsIHNyYykpLCBYODY6OmVkeCk7CisgICAgICAgICAg
ICAgICAgbV9qaXQubW92bF9pMzJyKGFzSW50ZWdlcihnZXRDb25zdGFudChtX2NhbGxGcmFtZSwg
c3JjKSksIFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBlbWl0
R2V0QXJnKHNyYywgWDg2OjplZHgpOwotICAgICAgICAgICAgZW1pdFB1dFJlc3VsdChpbnN0cnVj
dGlvbltpICsgMV0udS5vcGVyYW5kLCBYODY6OmVkeCk7CisgICAgICAgICAgICAgICAgZW1pdEdl
dEFyZyhzcmMsIFg4Njo6ZWF4KTsKKyAgICAgICAgICAgIGVtaXRQdXRSZXN1bHQoaW5zdHJ1Y3Rp
b25baSArIDFdLnUub3BlcmFuZCk7CiAgICAgICAgICAgICBpICs9IDM7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQpAQCAtMTA3MSw3ICsxMDcxLDcgQEAgdm9pZCBDVEk6OnByaXZhdGVD
b21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tTnVt
KFg4Njo6ZWF4LCBpKTsKICAgICAgICAgICAgIG1faml0LmFkZGxfaThyKGdldERlVGFnZ2VkQ29u
c3RhbnRJbW1lZGlhdGUoSlNJbW1lZGlhdGU6Om9uZUltbWVkaWF0ZSgpKSwgWDg2OjplYXgpOwog
ICAgICAgICAgICAgbV9zbG93Q2FzZXMuYXBwZW5kKFNsb3dDYXNlRW50cnkobV9qaXQuZW1pdFVu
bGlua2VkSm8oKSwgaSkpOwotICAgICAgICAgICAgZW1pdFB1dFJlc3VsdChzcmNEc3QsIFg4Njo6
ZWF4KTsKKyAgICAgICAgICAgIGVtaXRQdXRSZXN1bHQoc3JjRHN0KTsKICAgICAgICAgICAgIGkg
Kz0gMjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xMzA1LDcgKzEzMDUsNyBA
QCB2b2lkIENUSTo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBKU1Zhcmlh
YmxlT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1ZhcmlhYmxlT2JqZWN0Kj4o
aW5zdHJ1Y3Rpb25baSArIDJdLnUuanNDZWxsKTsKICAgICAgICAgICAgIG1faml0Lm1vdmxfaTMy
cihhc0ludGVnZXIoZ2xvYmFsT2JqZWN0KSwgWDg2OjplYXgpOwogICAgICAgICAgICAgZW1pdEdl
dFZhcmlhYmxlT2JqZWN0UmVnaXN0ZXIoWDg2OjplYXgsIGluc3RydWN0aW9uW2kgKyAzXS51Lm9w
ZXJhbmQsIFg4Njo6ZWF4KTsKLSAgICAgICAgICAgIGVtaXRQdXRSZXN1bHQoaW5zdHJ1Y3Rpb25b
aSArIDFdLnUub3BlcmFuZCwgWDg2OjplYXgpOworICAgICAgICAgICAgZW1pdFB1dFJlc3VsdChp
bnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKICAgICAgICAgICAgIGkgKz0gNDsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xNDA3LDggKzE0MDcsOCBAQCB2b2lkIENUSTo6
cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBYODZBc3NlbWJsZXI6OkptcFNy
YyBpc09iamVjdCA9IG1faml0LmVtaXRVbmxpbmtlZEplKCk7CiAKICAgICAgICAgICAgIG1faml0
LmxpbmsoaXNJbW1lZGlhdGUsIG1faml0LmxhYmVsKCkpOwotICAgICAgICAgICAgZW1pdEdldEFy
ZyhpbnN0cnVjdGlvbltpICsgMl0udS5vcGVyYW5kLCBYODY6OmVjeCk7Ci0gICAgICAgICAgICBl
bWl0UHV0UmVzdWx0KGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQsIFg4Njo6ZWN4KTsKKyAg
ICAgICAgICAgIGVtaXRHZXRBcmcoaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCwgWDg2Ojpl
YXgpOworICAgICAgICAgICAgZW1pdFB1dFJlc3VsdChpbnN0cnVjdGlvbltpICsgMV0udS5vcGVy
YW5kLCBYODY6OmVheCk7CiAgICAgICAgICAgICBtX2ppdC5saW5rKGlzT2JqZWN0LCBtX2ppdC5s
YWJlbCgpKTsKIAogICAgICAgICAgICAgaSArPSAzOwpAQCAtMTYwMyw3ICsxNjAzLDcgQEAgdm9p
ZCBDVEk6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdEp1bXBTbG93
Q2FzZUlmTm90SW1tTnVtKFg4Njo6ZWF4LCBpKTsKICAgICAgICAgICAgIG1faml0LnN1YmxfaThy
KGdldERlVGFnZ2VkQ29uc3RhbnRJbW1lZGlhdGUoSlNJbW1lZGlhdGU6Om9uZUltbWVkaWF0ZSgp
KSwgWDg2OjplYXgpOwogICAgICAgICAgICAgbV9zbG93Q2FzZXMuYXBwZW5kKFNsb3dDYXNlRW50
cnkobV9qaXQuZW1pdFVubGlua2VkSm8oKSwgaSkpOwotICAgICAgICAgICAgZW1pdFB1dFJlc3Vs
dChzcmNEc3QsIFg4Njo6ZWF4KTsKKyAgICAgICAgICAgIGVtaXRQdXRSZXN1bHQoc3JjRHN0KTsK
ICAgICAgICAgICAgIGkgKz0gMjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24779</attachid>
            <date>2008-10-30 13:50:23 -0700</date>
            <delta_ts>2008-10-30 13:53:47 -0700</delta_ts>
            <desc>Revised proposed patch</desc>
            <filename>eax.diff</filename>
            <type>text/plain</type>
            <size>3405</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM4MDA1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDgtMTAt
MzAgIENhbWVyb24gWndhcmljaCAgPHp3YXJpY2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAyMTk4NTogT3Bjb2RlcyBzaG91
bGQgdXNlIGVheCBhcyB0aGVpciBkZXN0aW5hdGlvbiByZWdpc3RlciB3aGVuZXZlciBwb3NzaWJs
ZQorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTg1
PgorCisgICAgICAgIENoYW5nZSBtb3JlIG9wY29kZXMgdG8gdXNlIGVheCBhcyB0aGUgcmVnaXN0
ZXIgZm9yIHRoZWlyIGZpbmFsIHJlc3VsdCwKKyAgICAgICAgYW5kIGNoYW5nZSBjYWxscyB0byBl
bWl0UHV0UmVzdWx0KCkgdGhhdCBwYXNzIGVheCB0byByZWx5IG9uIHRoZSBkZWZhdWx0CisgICAg
ICAgIHZhbHVlIG9mIGVheC4KKworICAgICAgICAqIFZNL0NUSS5jcHA6CisgICAgICAgIChKU0M6
OkNUSTo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisKIDIwMDgtMTAtMzAgIEFscCBUb2tlciAg
PGFscEBudWFudGkuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCBhdHRlbXB0IGZvciBvbGRlciBn
Y2Mgb24gdGhlIHRydW5rLW1hYy1pbnRlbCBidWlsZCBib3QKSW5kZXg6IFZNL0NUSS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVk0vQ1RJLmNwcAkocmV2aXNpb24gMzgwMDEpCisrKyBWTS9DVEkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDExLDEwICsxMDExLDEwIEBAIHZvaWQgQ1RJOjpwcml2YXRlQ29t
cGlsZU1haW5QYXNzKCkKICAgICAgICAgY2FzZSBvcF9tb3Y6IHsKICAgICAgICAgICAgIHVuc2ln
bmVkIHNyYyA9IGluc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpZiAo
aXNDb25zdGFudChzcmMpKQotICAgICAgICAgICAgICAgIG1faml0Lm1vdmxfaTMycihhc0ludGVn
ZXIoZ2V0Q29uc3RhbnQobV9jYWxsRnJhbWUsIHNyYykpLCBYODY6OmVkeCk7CisgICAgICAgICAg
ICAgICAgbV9qaXQubW92bF9pMzJyKGFzSW50ZWdlcihnZXRDb25zdGFudChtX2NhbGxGcmFtZSwg
c3JjKSksIFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBlbWl0
R2V0QXJnKHNyYywgWDg2OjplZHgpOwotICAgICAgICAgICAgZW1pdFB1dFJlc3VsdChpbnN0cnVj
dGlvbltpICsgMV0udS5vcGVyYW5kLCBYODY6OmVkeCk7CisgICAgICAgICAgICAgICAgZW1pdEdl
dEFyZyhzcmMsIFg4Njo6ZWF4KTsKKyAgICAgICAgICAgIGVtaXRQdXRSZXN1bHQoaW5zdHJ1Y3Rp
b25baSArIDFdLnUub3BlcmFuZCk7CiAgICAgICAgICAgICBpICs9IDM7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQpAQCAtMTA3MSw3ICsxMDcxLDcgQEAgdm9pZCBDVEk6OnByaXZhdGVD
b21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tTnVt
KFg4Njo6ZWF4LCBpKTsKICAgICAgICAgICAgIG1faml0LmFkZGxfaThyKGdldERlVGFnZ2VkQ29u
c3RhbnRJbW1lZGlhdGUoSlNJbW1lZGlhdGU6Om9uZUltbWVkaWF0ZSgpKSwgWDg2OjplYXgpOwog
ICAgICAgICAgICAgbV9zbG93Q2FzZXMuYXBwZW5kKFNsb3dDYXNlRW50cnkobV9qaXQuZW1pdFVu
bGlua2VkSm8oKSwgaSkpOwotICAgICAgICAgICAgZW1pdFB1dFJlc3VsdChzcmNEc3QsIFg4Njo6
ZWF4KTsKKyAgICAgICAgICAgIGVtaXRQdXRSZXN1bHQoc3JjRHN0KTsKICAgICAgICAgICAgIGkg
Kz0gMjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xMzA1LDcgKzEzMDUsNyBA
QCB2b2lkIENUSTo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBKU1Zhcmlh
YmxlT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1ZhcmlhYmxlT2JqZWN0Kj4o
aW5zdHJ1Y3Rpb25baSArIDJdLnUuanNDZWxsKTsKICAgICAgICAgICAgIG1faml0Lm1vdmxfaTMy
cihhc0ludGVnZXIoZ2xvYmFsT2JqZWN0KSwgWDg2OjplYXgpOwogICAgICAgICAgICAgZW1pdEdl
dFZhcmlhYmxlT2JqZWN0UmVnaXN0ZXIoWDg2OjplYXgsIGluc3RydWN0aW9uW2kgKyAzXS51Lm9w
ZXJhbmQsIFg4Njo6ZWF4KTsKLSAgICAgICAgICAgIGVtaXRQdXRSZXN1bHQoaW5zdHJ1Y3Rpb25b
aSArIDFdLnUub3BlcmFuZCwgWDg2OjplYXgpOworICAgICAgICAgICAgZW1pdFB1dFJlc3VsdChp
bnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKICAgICAgICAgICAgIGkgKz0gNDsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xNDA3LDggKzE0MDcsOCBAQCB2b2lkIENUSTo6
cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBYODZBc3NlbWJsZXI6OkptcFNy
YyBpc09iamVjdCA9IG1faml0LmVtaXRVbmxpbmtlZEplKCk7CiAKICAgICAgICAgICAgIG1faml0
LmxpbmsoaXNJbW1lZGlhdGUsIG1faml0LmxhYmVsKCkpOwotICAgICAgICAgICAgZW1pdEdldEFy
ZyhpbnN0cnVjdGlvbltpICsgMl0udS5vcGVyYW5kLCBYODY6OmVjeCk7Ci0gICAgICAgICAgICBl
bWl0UHV0UmVzdWx0KGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQsIFg4Njo6ZWN4KTsKKyAg
ICAgICAgICAgIGVtaXRHZXRBcmcoaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCwgWDg2Ojpl
YXgpOworICAgICAgICAgICAgZW1pdFB1dFJlc3VsdChpbnN0cnVjdGlvbltpICsgMV0udS5vcGVy
YW5kKTsKICAgICAgICAgICAgIG1faml0LmxpbmsoaXNPYmplY3QsIG1faml0LmxhYmVsKCkpOwog
CiAgICAgICAgICAgICBpICs9IDM7CkBAIC0xNjAzLDcgKzE2MDMsNyBAQCB2b2lkIENUSTo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJ
bW1OdW0oWDg2OjplYXgsIGkpOwogICAgICAgICAgICAgbV9qaXQuc3VibF9pOHIoZ2V0RGVUYWdn
ZWRDb25zdGFudEltbWVkaWF0ZShKU0ltbWVkaWF0ZTo6b25lSW1tZWRpYXRlKCkpLCBYODY6OmVh
eCk7CiAgICAgICAgICAgICBtX3Nsb3dDYXNlcy5hcHBlbmQoU2xvd0Nhc2VFbnRyeShtX2ppdC5l
bWl0VW5saW5rZWRKbygpLCBpKSk7Ci0gICAgICAgICAgICBlbWl0UHV0UmVzdWx0KHNyY0RzdCwg
WDg2OjplYXgpOworICAgICAgICAgICAgZW1pdFB1dFJlc3VsdChzcmNEc3QpOwogICAgICAgICAg
ICAgaSArPSAyOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
</data>
<flag name="review"
          id="11339"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>