<?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>31060</bug_id>
          
          <creation_ts>2009-11-03 07:39:21 -0800</creation_ts>
          <short_desc>Use ARMv7 specific encoding for immediate constants on ARMv7 target</short_desc>
          <delta_ts>2009-11-05 00:28:54 -0800</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>Other</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="Gabor Loki">loki</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>160060</commentid>
    <comment_count>0</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2009-11-03 07:39:21 -0800</bug_when>
    <thetext>ARMv7 provides a simple way to store 16bit wide immediate constants to a register. This is useful when JavaScriptCore is tuned to an ARMv7 processor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160061</commentid>
    <comment_count>1</comment_count>
      <attachid>42381</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2009-11-03 07:40:22 -0800</bug_when>
    <thetext>Created attachment 42381
Use ARMv7 specific encoding for immediate constants on ARMv7 target</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160382</commentid>
    <comment_count>2</comment_count>
      <attachid>42381</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2009-11-04 01:45:33 -0800</bug_when>
    <thetext>Comment on attachment 42381
Use ARMv7 specific encoding for immediate constants on ARMv7 target

Having 0 as the &quot;cannot encode&quot; value for getImm16Op2 is probably not a good idea, since 0 is a common immediate, and could be encoded in one instruction.

I guess this is not actively a problem in this patch, since you don&apos;t call encodeComplexImm on zero – but to guard against this mistake creeping in you should probably ASSERT(imm != 0) in this function, or use a value other than 0 to mean &apos;cannot encode&apos;.

We also prefer to avoid magic values in the code, so I&apos;d suggest that you should define up a name for this (e.g. something like static const ARMWord INVALID_IMM16 0;), then return 0; should be return INVALID_IMM16;, if (tmp) should be if (tmp != INVALID_IMM16).

It would also probably be a good idea to add guards to movw_r &amp; movt_r that op2 is valid.

r-, because I think some extra ASSERTs here are worthwhile, but the patch is otherwise all good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160410</commentid>
    <comment_count>3</comment_count>
      <attachid>42474</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2009-11-04 04:03:15 -0800</bug_when>
    <thetext>Created attachment 42474
Use ARMv7 specific encoding for immediate constants on ARMv7 target (take 2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160751</commentid>
    <comment_count>4</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2009-11-05 00:28:54 -0800</bug_when>
    <thetext>Landed in 50553.
https://trac.webkit.org/changeset/50553</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42381</attachid>
            <date>2009-11-03 07:40:22 -0800</date>
            <delta_ts>2009-11-04 04:03:15 -0800</delta_ts>
            <desc>Use ARMv7 specific encoding for immediate constants on ARMv7 target</desc>
            <filename>0001-Use-ARMv7-specific-encoding-for-immediate-constants.patch</filename>
            <type>text/plain</type>
            <size>4432</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">RnJvbSBkMzk2MjRlODVmMWNjNWJjMzg4NGE2M2QzMjMzZmJjZmMxZTE4NWZiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KRGF0
ZTogVHVlLCAzIE5vdiAyMDA5IDE2OjE1OjA0ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gVXNlIEFS
TXY3IHNwZWNpZmljIGVuY29kaW5nIGZvciBpbW1lZGlhdGUgY29uc3RhbnRzIG9uIEFSTXY3IHRh
cmdldAoKU2lnbmVkLW9mZi1ieTogR2Fib3IgTG9raSA8bG9raUBpbmYudS1zemVnZWQuaHU+Ci0t
LQogSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgfCAgIDE3ICsrKysr
KysrKysrKysrKwogSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5jcHAgfCAg
IDMyICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9BUk1Bc3NlbWJsZXIuaCAgIHwgICAyNiArKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxl
cyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5k
ZXggZmQ3M2NmOS4uOTQ1ZWY2YyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
CisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDA5LTEx
LTAzICBHYWJvciBMb2tpICA8bG9raUBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIEFSTXY3IHNwZWNpZmljIGVuY29k
aW5nIGZvciBpbW1lZGlhdGUgY29uc3RhbnRzIG9uIEFSTXY3IHRhcmdldAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzEwNjAKKworICAgICAgICAqIGFz
c2VtYmxlci9BUk1Bc3NlbWJsZXIuY3BwOgorICAgICAgICAoSlNDOjpBUk1Bc3NlbWJsZXI6Omdl
dEltbSk6CisgICAgICAgIChKU0M6OkFSTUFzc2VtYmxlcjo6bW92ZUltbSk6CisgICAgICAgIChK
U0M6OkFSTUFzc2VtYmxlcjo6ZW5jb2RlQ29tcGxleEltbSk6CisgICAgICAgICogYXNzZW1ibGVy
L0FSTUFzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBUk1Bc3NlbWJsZXI6Oik6CisgICAgICAg
IChKU0M6OkFSTUFzc2VtYmxlcjo6bW92d19yKToKKyAgICAgICAgKEpTQzo6QVJNQXNzZW1ibGVy
Ojptb3Z0X3IpOgorICAgICAgICAoSlNDOjpBUk1Bc3NlbWJsZXI6OmdldEltbTE2T3AyKToKKwog
MjAwOS0xMC0zMCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0FSTUFzc2VtYmxlci5jcHAgYi9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNz
ZW1ibGVyLmNwcAppbmRleCAxMzI0NTg2Li4wYTQwZTIzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvQVJNQXNzZW1ibGVyLmNwcApAQCAtMjQ3LDE0ICsyNDcsNyBAQCBBUk1Xb3JkIEFSTUFz
c2VtYmxlcjo6Z2V0SW1tKEFSTVdvcmQgaW1tLCBpbnQgdG1wUmVnLCBib29sIGludmVydCkKICAg
ICAgICAgcmV0dXJuIHRtcFJlZzsKICAgICB9CiAKLSAgICAvLyBEbyBpdCBieSAyIGluc3RydWN0
aW9uCi0gICAgaWYgKGdlbkludCh0bXBSZWcsIGltbSwgdHJ1ZSkpCi0gICAgICAgIHJldHVybiB0
bXBSZWc7Ci0gICAgaWYgKGdlbkludCh0bXBSZWcsIH5pbW0sIGZhbHNlKSkKLSAgICAgICAgcmV0
dXJuIHRtcFJlZzsKLQotICAgIGxkcl9pbW0odG1wUmVnLCBpbW0pOwotICAgIHJldHVybiB0bXBS
ZWc7CisgICAgcmV0dXJuIGVuY29kZUNvbXBsZXhJbW0oaW1tLCB0bXBSZWcpOwogfQogCiB2b2lk
IEFSTUFzc2VtYmxlcjo6bW92ZUltbShBUk1Xb3JkIGltbSwgaW50IGRlc3QpCkBAIC0yNzQsMTMg
KzI2NywzMiBAQCB2b2lkIEFSTUFzc2VtYmxlcjo6bW92ZUltbShBUk1Xb3JkIGltbSwgaW50IGRl
c3QpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBlbmNvZGVDb21wbGV4SW1tKGltbSwg
ZGVzdCk7Cit9CisKK0FSTVdvcmQgQVJNQXNzZW1ibGVyOjplbmNvZGVDb21wbGV4SW1tKEFSTVdv
cmQgaW1tLCBpbnQgZGVzdCkKK3sKKyAgICBBUk1Xb3JkIHRtcDsKKworI2lmIEFSTV9BUkNIX1ZF
UlNJT04gPj0gNworICAgIHRtcCA9IGdldEltbTE2T3AyKGltbSk7CisgICAgaWYgKHRtcCkgewor
ICAgICAgICBtb3Z3X3IoZGVzdCwgdG1wKTsKKyAgICAgICAgcmV0dXJuIGRlc3Q7CisgICAgfQor
ICAgIG1vdndfcihkZXN0LCBnZXRJbW0xNk9wMihpbW0gJiAweGZmZmYpKTsKKyAgICBtb3Z0X3Io
ZGVzdCwgZ2V0SW1tMTZPcDIoaW1tID4+IDE2KSk7CisgICAgcmV0dXJuIGRlc3Q7CisjZWxzZQog
ICAgIC8vIERvIGl0IGJ5IDIgaW5zdHJ1Y3Rpb24KICAgICBpZiAoZ2VuSW50KGRlc3QsIGltbSwg
dHJ1ZSkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGRlc3Q7CiAgICAgaWYgKGdl
bkludChkZXN0LCB+aW1tLCBmYWxzZSkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJu
IGRlc3Q7CiAKICAgICBsZHJfaW1tKGRlc3QsIGltbSk7CisgICAgcmV0dXJuIGRlc3Q7CisjZW5k
aWYKIH0KIAogLy8gTWVtb3J5IGxvYWQvc3RvcmUgaGVscGVycwpkaWZmIC0tZ2l0IGEvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5oIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0FSTUFzc2VtYmxlci5oCmluZGV4IDlmOWE0NTAuLjVjNjhjNTEgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk1Bc3NlbWJsZXIuaAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmgKQEAgLTEzOSw2ICsxMzksMTAgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgICAgICBDTFogPSAweDAxNmYwZjEwLAogICAgICAgICAgICAgQktQVCA9
IDB4ZTEyMDA3MCwKICNlbmRpZgorI2lmIEFSTV9BUkNIX1ZFUlNJT04gPj0gNworICAgICAgICAg
ICAgTU9WVyA9IDB4MDMwMDAwMDAsCisgICAgICAgICAgICBNT1ZUID0gMHgwMzQwMDAwMCwKKyNl
bmRpZgogICAgICAgICB9OwogCiAgICAgICAgIGVudW0gewpAQCAtMzMzLDYgKzMzNywxOCBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGVtaXRJbnN0KHN0YXRpY19jYXN0PEFSTVdvcmQ+
KGNjKSB8IE1PViwgcmQsIEFSTVJlZ2lzdGVyczo6cjAsIG9wMik7CiAgICAgICAgIH0KIAorI2lm
IEFSTV9BUkNIX1ZFUlNJT04gPj0gNworICAgICAgICB2b2lkIG1vdndfcihpbnQgcmQsIEFSTVdv
cmQgb3AyLCBDb25kaXRpb24gY2MgPSBBTCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9idWZm
ZXIucHV0SW50KHN0YXRpY19jYXN0PEFSTVdvcmQ+KGNjKSB8IE1PVlcgfCBSRChyZCkgfCBvcDIp
OworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBtb3Z0X3IoaW50IHJkLCBBUk1Xb3JkIG9wMiwg
Q29uZGl0aW9uIGNjID0gQUwpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fYnVmZmVyLnB1dElu
dChzdGF0aWNfY2FzdDxBUk1Xb3JkPihjYykgfCBNT1ZUIHwgUkQocmQpIHwgb3AyKTsKKyAgICAg
ICAgfQorI2VuZGlmCisKICAgICAgICAgdm9pZCBtb3ZzX3IoaW50IHJkLCBBUk1Xb3JkIG9wMiwg
Q29uZGl0aW9uIGNjID0gQUwpCiAgICAgICAgIHsKICAgICAgICAgICAgIGVtaXRJbnN0KHN0YXRp
Y19jYXN0PEFSTVdvcmQ+KGNjKSB8IE1PViB8IFNFVF9DQywgcmQsIEFSTVJlZ2lzdGVyczo6cjAs
IG9wMik7CkBAIC03MDgsOCArNzI0LDE4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAK
ICAgICAgICAgc3RhdGljIEFSTVdvcmQgZ2V0T3AyKEFSTVdvcmQgaW1tKTsKKworI2lmIEFSTV9B
UkNIX1ZFUlNJT04gPj0gNworICAgICAgICBzdGF0aWMgQVJNV29yZCBnZXRJbW0xNk9wMihBUk1X
b3JkIGltbSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGltbSA8PSAweGZmZmYpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIChpbW0gJiAweGYwMDApIDw8IDQgfCAoaW1tICYgMHhmZmYpOwor
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBBUk1Xb3Jk
IGdldEltbShBUk1Xb3JkIGltbSwgaW50IHRtcFJlZywgYm9vbCBpbnZlcnQgPSBmYWxzZSk7CiAg
ICAgICAgIHZvaWQgbW92ZUltbShBUk1Xb3JkIGltbSwgaW50IGRlc3QpOworICAgICAgICBBUk1X
b3JkIGVuY29kZUNvbXBsZXhJbW0oQVJNV29yZCBpbW0sIGludCBkZXN0KTsKIAogICAgICAgICAv
LyBNZW1vcnkgbG9hZC9zdG9yZSBoZWxwZXJzCiAKLS0gCjEuNi4wLjQKCg==
</data>
<flag name="review"
          id="23900"
          type_id="1"
          status="-"
          setter="barraclough"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42474</attachid>
            <date>2009-11-04 04:03:15 -0800</date>
            <delta_ts>2009-11-04 17:53:41 -0800</delta_ts>
            <desc>Use ARMv7 specific encoding for immediate constants on ARMv7 target (take 2)</desc>
            <filename>0001-Use-ARMv7-specific-encoding-for-immediate-constants.patch</filename>
            <type>text/plain</type>
            <size>5962</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">RnJvbSAzMWY2NzA4N2RkMTA3NmNiNjA0YTczZjQzNzE3ZmQ1MGFmZWMxYzJjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KRGF0
ZTogV2VkLCA0IE5vdiAyMDA5IDEyOjU4OjAzICswMTAwClN1YmplY3Q6IFtQQVRDSF0gVXNlIEFS
TXY3IHNwZWNpZmljIGVuY29kaW5nIGZvciBpbW1lZGlhdGUgY29uc3RhbnRzIG9uIEFSTXY3IHRh
cmdldAoKU2lnbmVkLW9mZi1ieTogR2Fib3IgTG9raSA8bG9raUBpbmYudS1zemVnZWQuaHU+Ci0t
LQogSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgfCAgIDIxICsrKysr
KysrKysrKysrCiBKYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcCB8ICAg
NDIgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L0FSTUFzc2VtYmxlci5oICAgfCAgIDMwICsrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNo
YW5nZWQsIDc4IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
YWU4NjhiLi5iMzBhYWI5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysr
IGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDktMTEtMDQg
IEdhYm9yIExva2kgIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQVJNdjcgc3BlY2lmaWMgZW5jb2Rpbmcg
Zm9yIGltbWVkaWF0ZSBjb25zdGFudHMgb24gQVJNdjcgdGFyZ2V0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTA2MAorCisgICAgICAgICogYXNzZW1i
bGVyL0FSTUFzc2VtYmxlci5jcHA6CisgICAgICAgIChKU0M6OkFSTUFzc2VtYmxlcjo6Z2V0T3Ay
KTogVXNlIElOVkFMSURfSU1NCisgICAgICAgIChKU0M6OkFSTUFzc2VtYmxlcjo6Z2V0SW1tKTog
VXNlIGVuY29kZUNvbXBsZXhJbW0gZm9yIGNvbXBsZXggaW1tZWRpYXRlCisgICAgICAgIChKU0M6
OkFSTUFzc2VtYmxlcjo6bW92ZUltbSk6IERpdHRvLgorICAgICAgICAoSlNDOjpBUk1Bc3NlbWJs
ZXI6OmVuY29kZUNvbXBsZXhJbW0pOiBFbmNvZGUgYSBjb25zdGFudCBieSBvbmUgb3IgdHdvCisg
ICAgICAgIGluc3RydWN0aW9ucyBvciBhIFBDIHJlbGF0aXZlIGxvYWQuCisgICAgICAgICogYXNz
ZW1ibGVyL0FSTUFzc2VtYmxlci5oOiBVc2UgSU5WQUxJRF9JTU0gaWYgYSBjb25zdGFudCBjYW5u
b3QgYmUKKyAgICAgICAgZW5jb2RlZCBhcyBhbiBpbW1lZGlhdGUgY29uc3RhbnQuCisgICAgICAg
IChKU0M6OkFSTUFzc2VtYmxlcjo6KToKKyAgICAgICAgKEpTQzo6QVJNQXNzZW1ibGVyOjptb3Z3
X3IpOiAxNi1iaXQgaW1tZWRpYXRlIGxvYWQKKyAgICAgICAgKEpTQzo6QVJNQXNzZW1ibGVyOjpt
b3Z0X3IpOiBIaWdoIGhhbGZ3b3JkIDE2LWJpdCBpbW1lZGlhdGUgbG9hZAorICAgICAgICAoSlND
OjpBUk1Bc3NlbWJsZXI6OmdldEltbTE2T3AyKTogRW5jb2RlIGltbWVkaWF0ZSBjb25zdGFudCBm
b3IKKyAgICAgICAgbW92d19yIGFuZCBtb3d0X3IKKwogMjAwOS0xMS0wMiAgT2xpdmVyIEh1bnQg
IDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xv
dWdoLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5j
cHAgYi9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcAppbmRleCAxMzI0
NTg2Li44MWMzMjIyIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNz
ZW1ibGVyLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNw
cApAQCAtMTE4LDcgKzExOCw3IEBAIEFSTVdvcmQgQVJNQXNzZW1ibGVyOjpnZXRPcDIoQVJNV29y
ZCBpbW0pCiAgICAgaWYgKChpbW0gJiAweDAwZmZmZmZmKSA9PSAwKQogICAgICAgICByZXR1cm4g
T1AyX0lNTSB8IChpbW0gPj4gMjQpIHwgKHJvbCA8PCA4KTsKIAotICAgIHJldHVybiAwOworICAg
IHJldHVybiBJTlZBTElEX0lNTTsKIH0KIAogaW50IEFSTUFzc2VtYmxlcjo6Z2VuSW50KGludCBy
ZWcsIEFSTVdvcmQgaW1tLCBib29sIHBvc2l0aXZlKQpAQCAtMjM2LDI1ICsyMzYsMTggQEAgQVJN
V29yZCBBUk1Bc3NlbWJsZXI6OmdldEltbShBUk1Xb3JkIGltbSwgaW50IHRtcFJlZywgYm9vbCBp
bnZlcnQpCiAKICAgICAvLyBEbyBpdCBieSAxIGluc3RydWN0aW9uCiAgICAgdG1wID0gZ2V0T3Ay
KGltbSk7Ci0gICAgaWYgKHRtcCkKKyAgICBpZiAodG1wICE9IElOVkFMSURfSU1NKQogICAgICAg
ICByZXR1cm4gdG1wOwogCiAgICAgdG1wID0gZ2V0T3AyKH5pbW0pOwotICAgIGlmICh0bXApIHsK
KyAgICBpZiAodG1wICE9IElOVkFMSURfSU1NKSB7CiAgICAgICAgIGlmIChpbnZlcnQpCiAgICAg
ICAgICAgICByZXR1cm4gdG1wIHwgT1AyX0lOVl9JTU07CiAgICAgICAgIG12bl9yKHRtcFJlZywg
dG1wKTsKICAgICAgICAgcmV0dXJuIHRtcFJlZzsKICAgICB9CiAKLSAgICAvLyBEbyBpdCBieSAy
IGluc3RydWN0aW9uCi0gICAgaWYgKGdlbkludCh0bXBSZWcsIGltbSwgdHJ1ZSkpCi0gICAgICAg
IHJldHVybiB0bXBSZWc7Ci0gICAgaWYgKGdlbkludCh0bXBSZWcsIH5pbW0sIGZhbHNlKSkKLSAg
ICAgICAgcmV0dXJuIHRtcFJlZzsKLQotICAgIGxkcl9pbW0odG1wUmVnLCBpbW0pOwotICAgIHJl
dHVybiB0bXBSZWc7CisgICAgcmV0dXJuIGVuY29kZUNvbXBsZXhJbW0oaW1tLCB0bXBSZWcpOwog
fQogCiB2b2lkIEFSTUFzc2VtYmxlcjo6bW92ZUltbShBUk1Xb3JkIGltbSwgaW50IGRlc3QpCkBA
IC0yNjMsMjQgKzI1Niw0MyBAQCB2b2lkIEFSTUFzc2VtYmxlcjo6bW92ZUltbShBUk1Xb3JkIGlt
bSwgaW50IGRlc3QpCiAKICAgICAvLyBEbyBpdCBieSAxIGluc3RydWN0aW9uCiAgICAgdG1wID0g
Z2V0T3AyKGltbSk7Ci0gICAgaWYgKHRtcCkgeworICAgIGlmICh0bXAgIT0gSU5WQUxJRF9JTU0p
IHsKICAgICAgICAgbW92X3IoZGVzdCwgdG1wKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIHRtcCA9IGdldE9wMih+aW1tKTsKLSAgICBpZiAodG1wKSB7CisgICAgaWYgKHRtcCAhPSBJ
TlZBTElEX0lNTSkgewogICAgICAgICBtdm5fcihkZXN0LCB0bXApOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCisgICAgZW5jb2RlQ29tcGxleEltbShpbW0sIGRlc3QpOworfQorCitBUk1Xb3Jk
IEFSTUFzc2VtYmxlcjo6ZW5jb2RlQ29tcGxleEltbShBUk1Xb3JkIGltbSwgaW50IGRlc3QpCit7
CisgICAgQVJNV29yZCB0bXA7CisKKyNpZiBBUk1fQVJDSF9WRVJTSU9OID49IDcKKyAgICB0bXAg
PSBnZXRJbW0xNk9wMihpbW0pOworICAgIGlmICh0bXAgIT0gSU5WQUxJRF9JTU0pIHsKKyAgICAg
ICAgbW92d19yKGRlc3QsIHRtcCk7CisgICAgICAgIHJldHVybiBkZXN0OworICAgIH0KKyAgICBt
b3Z3X3IoZGVzdCwgZ2V0SW1tMTZPcDIoaW1tICYgMHhmZmZmKSk7CisgICAgbW92dF9yKGRlc3Qs
IGdldEltbTE2T3AyKGltbSA+PiAxNikpOworICAgIHJldHVybiBkZXN0OworI2Vsc2UKICAgICAv
LyBEbyBpdCBieSAyIGluc3RydWN0aW9uCiAgICAgaWYgKGdlbkludChkZXN0LCBpbW0sIHRydWUp
KQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBkZXN0OwogICAgIGlmIChnZW5JbnQo
ZGVzdCwgfmltbSwgZmFsc2UpKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBkZXN0
OwogCiAgICAgbGRyX2ltbShkZXN0LCBpbW0pOworICAgIHJldHVybiBkZXN0OworI2VuZGlmCiB9
CiAKIC8vIE1lbW9yeSBsb2FkL3N0b3JlIGhlbHBlcnMKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BUk1Bc3NlbWJsZXIuaCBiL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9B
Uk1Bc3NlbWJsZXIuaAppbmRleCA5ZjlhNDUwLi5mOWUzMGRmIDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0FSTUFzc2VtYmxlci5oCkBAIC0xMzksNiArMTM5LDEwIEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAgICAgQ0xaID0gMHgwMTZmMGYxMCwKICAgICAgICAgICAgIEJLUFQgPSAweGUx
MjAwNzAsCiAjZW5kaWYKKyNpZiBBUk1fQVJDSF9WRVJTSU9OID49IDcKKyAgICAgICAgICAgIE1P
VlcgPSAweDAzMDAwMDAwLAorICAgICAgICAgICAgTU9WVCA9IDB4MDM0MDAwMDAsCisjZW5kaWYK
ICAgICAgICAgfTsKIAogICAgICAgICBlbnVtIHsKQEAgLTE3NSw2ICsxNzksOCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgICAgIHBhZEZvckFsaWduMzIgPSAweGVlMTIwMDcwLAogICAgICAg
ICB9OwogCisgICAgICAgIHN0YXRpYyBjb25zdCBBUk1Xb3JkIElOVkFMSURfSU1NID0gMHhmMDAw
MDAwMDsKKwogICAgICAgICBjbGFzcyBKbXBTcmMgewogICAgICAgICAgICAgZnJpZW5kIGNsYXNz
IEFSTUFzc2VtYmxlcjsKICAgICAgICAgcHVibGljOgpAQCAtMzMzLDYgKzMzOSwyMCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgIGVtaXRJbnN0KHN0YXRpY19jYXN0PEFSTVdvcmQ+KGNj
KSB8IE1PViwgcmQsIEFSTVJlZ2lzdGVyczo6cjAsIG9wMik7CiAgICAgICAgIH0KIAorI2lmIEFS
TV9BUkNIX1ZFUlNJT04gPj0gNworICAgICAgICB2b2lkIG1vdndfcihpbnQgcmQsIEFSTVdvcmQg
b3AyLCBDb25kaXRpb24gY2MgPSBBTCkKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKChv
cDIgfCAweGYwZmZmKSA9PSAweGYwZmZmKTsKKyAgICAgICAgICAgIG1fYnVmZmVyLnB1dEludChz
dGF0aWNfY2FzdDxBUk1Xb3JkPihjYykgfCBNT1ZXIHwgUkQocmQpIHwgb3AyKTsKKyAgICAgICAg
fQorCisgICAgICAgIHZvaWQgbW92dF9yKGludCByZCwgQVJNV29yZCBvcDIsIENvbmRpdGlvbiBj
YyA9IEFMKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoKG9wMiB8IDB4ZjBmZmYpID09
IDB4ZjBmZmYpOworICAgICAgICAgICAgbV9idWZmZXIucHV0SW50KHN0YXRpY19jYXN0PEFSTVdv
cmQ+KGNjKSB8IE1PVlQgfCBSRChyZCkgfCBvcDIpOworICAgICAgICB9CisjZW5kaWYKKwogICAg
ICAgICB2b2lkIG1vdnNfcihpbnQgcmQsIEFSTVdvcmQgb3AyLCBDb25kaXRpb24gY2MgPSBBTCkK
ICAgICAgICAgewogICAgICAgICAgICAgZW1pdEluc3Qoc3RhdGljX2Nhc3Q8QVJNV29yZD4oY2Mp
IHwgTU9WIHwgU0VUX0NDLCByZCwgQVJNUmVnaXN0ZXJzOjpyMCwgb3AyKTsKQEAgLTcwOCw4ICs3
MjgsMTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgQVJN
V29yZCBnZXRPcDIoQVJNV29yZCBpbW0pOworCisjaWYgQVJNX0FSQ0hfVkVSU0lPTiA+PSA3Cisg
ICAgICAgIHN0YXRpYyBBUk1Xb3JkIGdldEltbTE2T3AyKEFSTVdvcmQgaW1tKQorICAgICAgICB7
CisgICAgICAgICAgICBpZiAoaW1tIDw9IDB4ZmZmZikKKyAgICAgICAgICAgICAgICByZXR1cm4g
KGltbSAmIDB4ZjAwMCkgPDwgNCB8IChpbW0gJiAweGZmZik7CisgICAgICAgICAgICByZXR1cm4g
SU5WQUxJRF9JTU07CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBBUk1Xb3JkIGdldEltbShB
Uk1Xb3JkIGltbSwgaW50IHRtcFJlZywgYm9vbCBpbnZlcnQgPSBmYWxzZSk7CiAgICAgICAgIHZv
aWQgbW92ZUltbShBUk1Xb3JkIGltbSwgaW50IGRlc3QpOworICAgICAgICBBUk1Xb3JkIGVuY29k
ZUNvbXBsZXhJbW0oQVJNV29yZCBpbW0sIGludCBkZXN0KTsKIAogICAgICAgICAvLyBNZW1vcnkg
bG9hZC9zdG9yZSBoZWxwZXJzCiAKLS0gCjEuNi4wLjQKCg==
</data>
<flag name="review"
          id="24008"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>