<?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>150761</bug_id>
          
          <creation_ts>2015-10-31 16:44:49 -0700</creation_ts>
          <short_desc>Add conditional moves to the MacroAssembler</short_desc>
          <delta_ts>2015-11-07 10:11:40 -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>WebKit 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>
          
          <blocked>150762</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1138238</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-10-31 16:44:49 -0700</bug_when>
    <thetext>This would allow us to add Select to B3.  The FTL uses Select quite a bit, so this is probably a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139108</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-11-03 15:00:46 -0800</bug_when>
    <thetext>Select is a non-branching instruction of the form x = select(a, b, c) where if a is non-zero then x = b else x = c.  This is implemented using conditional moves, a CPU instruction that does not branch, but performs a move dependent on some condition.

At the machine code level, a “cmov” is formatted very similarly to a branch, so it’s probably a matter of tweaking our branch formatting code.  We probably want the API to be something like:

m_jit.moveConditionally(LessThan, gpr1, gpr2, gpr3, gpr4); // move gpr3 to gpr4 if gpr1 is less than gpr2.
m_jit.moveConditionallyTest(NonZero, gpr1, gpr2, gpr3, gpr4); // move gpr3 to gpr4 if (gpr1 &amp; gpr2) != 0.
m_jit.moveConditionallyDouble(DoubleEqual, fpr1, fpr2, gpr1, gpr2) // move gpr1 to gpr2 if fpr1 == fpr2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139217</commentid>
    <comment_count>2</comment_count>
      <attachid>264761</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-11-03 18:02:18 -0800</bug_when>
    <thetext>Created attachment 264761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140191</commentid>
    <comment_count>3</comment_count>
      <attachid>264761</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-07 10:11:36 -0800</bug_when>
    <thetext>Comment on attachment 264761
Patch

Clearing flags on attachment: 264761

Committed r192131: &lt;http://trac.webkit.org/changeset/192131&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140192</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-07 10:11:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264761</attachid>
            <date>2015-11-03 18:02:18 -0800</date>
            <delta_ts>2015-11-07 10:11:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>150761.patch</filename>
            <type>text/plain</type>
            <size>9838</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkyMDA1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE1LTExLTAzICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBjb25kaXRpb25hbCBtb3ZlcyB0byB0aGUgTWFjcm9Bc3NlbWJsZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDc2MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG1vdmVDb25kaXRp
b25hbGx5LCBtb3ZlQ29uZGl0aW9uYWxseVRlc3QgJiBtb3ZlQ29uZGl0aW9uYWxseURvdWJsZSB0
byBYODYgbWFjcm8gYXNzZW1ibGVycy4KKyAgICAgICAgQmVuY2ggdGVzdGVkIGNvcnJlY3Qgb3Bj
b2RlcyBhbmQgb3BlcmF0aW9ucyBvbiBYODYtNjQgYW5kIFg4NiBmb3IgYSBzZWxlY3QgbnVtYmVy
IG9mIGNvbXBhcmlzb25zLgorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjptb3ZlQ29u
ZGl0aW9uYWxseSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjptb3Zl
Q29uZGl0aW9uYWxseVRlc3QpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1v
bjo6bW92ZUNvbmRpdGlvbmFsbHlEb3VibGUpOgorICAgICAgICAqIGFzc2VtYmxlci9YODZBc3Nl
bWJsZXIuaDoKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpjbW92Y2MpOgorICAgICAgICAo
SlNDOjpYODZBc3NlbWJsZXI6OmNtb3ZsX3JyKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVy
OjpjbW92bF9tcik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6Y21vdmVsX3JyKToKKyAg
ICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpjbW92bmVsX3JyKToKKyAgICAgICAgKEpTQzo6WDg2
QXNzZW1ibGVyOjpjbW92cGxfcnIpOgorICAgICAgICAoSlNDOjpYODZBc3NlbWJsZXI6OmNtb3Zu
cGxfcnIpOgorICAgICAgICAoSlNDOjpYODZBc3NlbWJsZXI6OmNtb3ZxX3JyKToKKyAgICAgICAg
KEpTQzo6WDg2QXNzZW1ibGVyOjpjbW92cV9tcik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6Y21vdmVxX3JyKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpjbW92bmVxX3JyKToK
KyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpjbW92cHFfcnIpOgorICAgICAgICAoSlNDOjpY
ODZBc3NlbWJsZXI6OmNtb3ZucHFfcnIpOgorICAgICAgICAoSlNDOjpYODZBc3NlbWJsZXI6Olg4
Nkluc3RydWN0aW9uRm9ybWF0dGVyOjp0d29CeXRlT3A2NCk6CisKIDIwMTUtMTEtMDMgIE1hcmsg
TGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBvcF9hZGQgdGVzdHMgdG8g
Y29tcGFyZSBiZWhhdmlvciBvZiBKSVQgZ2VuZXJhdGVkIGNvZGUgdG8gdGhlIExMSU5UJ3MuCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAxOTE5NjApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEwNDYsNiArMTA0Niw1NCBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1v
dnFfaTY0cihpbW0ubV92YWx1ZSwgZGVzdCk7CiAgICAgfQogCisgICAgdm9pZCBtb3ZlQ29uZGl0
aW9uYWxseShSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0
ZXJJRCByaWdodCwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAg
ICAgIG1fYXNzZW1ibGVyLmNtcHFfcnIocmlnaHQsIGxlZnQpOworICAgICAgICBtX2Fzc2VtYmxl
ci5jbW92cV9ycih4ODZDb25kaXRpb24oY29uZCksIHNyYywgZGVzdCk7CisgICAgfQorCisgICAg
dm9pZCBtb3ZlQ29uZGl0aW9uYWxseVRlc3QoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVy
SUQgdGVzdFJlZywgUmVnaXN0ZXJJRCBtYXNrLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIudGVzdHFfcnIodGVzdFJlZywgbWFzayk7
CisgICAgICAgIG1fYXNzZW1ibGVyLmNtb3ZxX3JyKHg4NkNvbmRpdGlvbihjb25kKSwgc3JjLCBk
ZXN0KTsKKyAgICB9CisgICAgCisgICAgdm9pZCBtb3ZlQ29uZGl0aW9uYWxseURvdWJsZShEb3Vi
bGVDb25kaXRpb24gY29uZCwgRlBSZWdpc3RlcklEIGxlZnQsIEZQUmVnaXN0ZXJJRCByaWdodCwg
UmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIEFTU0VSVChp
c1NTRTJQcmVzZW50KCkpOworCisgICAgICAgIGlmIChjb25kICYgRG91YmxlQ29uZGl0aW9uQml0
SW52ZXJ0KQorICAgICAgICAgICAgbV9hc3NlbWJsZXIudWNvbWlzZF9ycihsZWZ0LCByaWdodCk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnVjb21pc2RfcnIocmlnaHQs
IGxlZnQpOworCisgICAgICAgIGlmIChjb25kID09IERvdWJsZUVxdWFsKSB7CisgICAgICAgICAg
ICBpZiAobGVmdCA9PSByaWdodCkgeworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtb3Zu
cHFfcnIoc3JjLCBkZXN0KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIEp1bXAgaXNVbm9yZGVyZWQobV9hc3NlbWJsZXIuanAoKSk7CisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5jbW92ZXFfcnIoc3JjLCBkZXN0KTsKKyAgICAgICAgICAgIGlz
VW5vcmRlcmVkLmxpbmsodGhpcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoY29uZCA9PSBEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkKSB7CisgICAgICAg
ICAgICBpZiAobGVmdCA9PSByaWdodCkgeworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNt
b3ZwcV9ycihzcmMsIGRlc3QpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21vdnBxX3JyKHNyYywgZGVzdCk7CisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5jbW92bmVxX3JyKHNyYywgZGVzdCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQoIShjb25kICYgRG91YmxlQ29uZGl0
aW9uQml0U3BlY2lhbCkpOworICAgICAgICBtX2Fzc2VtYmxlci5jbW92cV9ycihzdGF0aWNfY2Fz
dDxYODZBc3NlbWJsZXI6OkNvbmRpdGlvbj4oY29uZCAmIH5Eb3VibGVDb25kaXRpb25CaXRzKSwg
c3JjLCBkZXN0KTsKKyAgICB9CisgICAgCiAgICAgdm9pZCBzd2FwKFJlZ2lzdGVySUQgcmVnMSwg
UmVnaXN0ZXJJRCByZWcyKQogICAgIHsKICAgICAgICAgaWYgKHJlZzEgIT0gcmVnMikKQEAgLTEw
NzMsNiArMTEyMSw1NCBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmxfaTMycihp
bW0uYXNJbnRwdHIoKSwgZGVzdCk7CiAgICAgfQogCisgICAgdm9pZCBtb3ZlQ29uZGl0aW9uYWxs
eShSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0ZXJJRCBy
aWdodCwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1f
YXNzZW1ibGVyLmNtcGxfcnIocmlnaHQsIGxlZnQpOworICAgICAgICBtX2Fzc2VtYmxlci5jbW92
bF9ycih4ODZDb25kaXRpb24oY29uZCksIHNyYywgZGVzdCk7CisgICAgfQorCisgICAgdm9pZCBt
b3ZlQ29uZGl0aW9uYWxseVRlc3QoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgdGVz
dFJlZywgUmVnaXN0ZXJJRCBtYXNrLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQor
ICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIudGVzdGxfcnIodGVzdFJlZywgbWFzayk7CisgICAg
ICAgIG1fYXNzZW1ibGVyLmNtb3ZsX3JyKHg4NkNvbmRpdGlvbihjb25kKSwgc3JjLCBkZXN0KTsK
KyAgICB9CisKKyAgICB2b2lkIG1vdmVDb25kaXRpb25hbGx5RG91YmxlKERvdWJsZUNvbmRpdGlv
biBjb25kLCBGUFJlZ2lzdGVySUQgbGVmdCwgRlBSZWdpc3RlcklEIHJpZ2h0LCBSZWdpc3RlcklE
IHNyYywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzU1NFMlByZXNl
bnQoKSk7CisKKyAgICAgICAgaWYgKGNvbmQgJiBEb3VibGVDb25kaXRpb25CaXRJbnZlcnQpCisg
ICAgICAgICAgICBtX2Fzc2VtYmxlci51Y29taXNkX3JyKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgbV9hc3NlbWJsZXIudWNvbWlzZF9ycihyaWdodCwgbGVmdCk7CisK
KyAgICAgICAgaWYgKGNvbmQgPT0gRG91YmxlRXF1YWwpIHsKKyAgICAgICAgICAgIGlmIChsZWZ0
ID09IHJpZ2h0KSB7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21vdm5wbF9ycihzcmMs
IGRlc3QpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgSnVtcCBpc1Vub3JkZXJlZChtX2Fzc2VtYmxlci5qcCgpKTsKKyAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmNtb3ZlbF9ycihzcmMsIGRlc3QpOworICAgICAgICAgICAgaXNVbm9yZGVyZWQu
bGluayh0aGlzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChjb25kID09IERvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQpIHsKKyAgICAgICAgICAgIGlmIChs
ZWZ0ID09IHJpZ2h0KSB7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21vdnBsX3JyKHNy
YywgZGVzdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5jbW92cGxfcnIoc3JjLCBkZXN0KTsKKyAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmNtb3ZuZWxfcnIoc3JjLCBkZXN0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIEFTU0VSVCghKGNvbmQgJiBEb3VibGVDb25kaXRpb25CaXRTcGVj
aWFsKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmNtb3ZsX3JyKHN0YXRpY19jYXN0PFg4NkFzc2Vt
Ymxlcjo6Q29uZGl0aW9uPihjb25kICYgfkRvdWJsZUNvbmRpdGlvbkJpdHMpLCBzcmMsIGRlc3Qp
OworICAgIH0KKwogICAgIHZvaWQgc3dhcChSZWdpc3RlcklEIHJlZzEsIFJlZ2lzdGVySUQgcmVn
MikKICAgICB7CiAgICAgICAgIGlmIChyZWcxICE9IHJlZzIpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDE5MTk2MCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI0OCw2ICsyNDgsNyBAQCBwcml2YXRlOgogICAgICAgICBPUDJfQ1ZUU0ky
U0RfVnNkRWQgID0gMHgyQSwKICAgICAgICAgT1AyX0NWVFRTRDJTSV9HZFdzZCA9IDB4MkMsCiAg
ICAgICAgIE9QMl9VQ09NSVNEX1ZzZFdzZCAgPSAweDJFLAorICAgICAgICBPUDJfQ01PVkNDICAg
ICAgICAgID0gMHg0MCwKICAgICAgICAgT1AyX0FERFNEX1ZzZFdzZCAgICA9IDB4NTgsCiAgICAg
ICAgIE9QMl9NVUxTRF9Wc2RXc2QgICAgPSAweDU5LAogICAgICAgICBPUDJfQ1ZUU0QyU1NfVnNk
V3NkID0gMHg1QSwKQEAgLTI3OSw2ICsyODAsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgT1AzX01G
RU5DRSAgICAgICAgICA9IDB4RjAsCiAgICAgfSBUaHJlZUJ5dGVPcGNvZGVJRDsKIAorICAgIAor
ICAgIFR3b0J5dGVPcGNvZGVJRCBjbW92Y2MoQ29uZGl0aW9uIGNvbmQpCisgICAgeworICAgICAg
ICByZXR1cm4gKFR3b0J5dGVPcGNvZGVJRCkoT1AyX0NNT1ZDQyArIGNvbmQpOworICAgIH0KKwog
ICAgIFR3b0J5dGVPcGNvZGVJRCBqY2NSZWwzMihDb25kaXRpb24gY29uZCkKICAgICB7CiAgICAg
ICAgIHJldHVybiAoVHdvQnl0ZU9wY29kZUlEKShPUDJfSkNDX3JlbDMyICsgY29uZCk7CkBAIC0x
NTc4LDYgKzE1ODUsODMgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3A4
KE9QMl9NT1ZaWF9HdkViLCBkc3QsIHNyYyk7CiAgICAgfQogCisgICAgdm9pZCBjbW92bF9ycihD
b25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAg
ICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKGNtb3ZjYyhjb25kKSwgc3JjLCBkc3QpOworICAg
IH0KKworICAgIHZvaWQgY21vdmxfbXIoQ29uZGl0aW9uIGNvbmQsIGludCBvZmZzZXQsIFJlZ2lz
dGVySUQgYmFzZSwgUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci50
d29CeXRlT3AoY21vdmNjKGNvbmQpLCBkc3QsIGJhc2UsIG9mZnNldCk7CisgICAgfQorCisgICAg
dm9pZCBjbW92bF9tcihDb25kaXRpb24gY29uZCwgaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNl
LCBSZWdpc3RlcklEIGluZGV4LCBpbnQgc2NhbGUsIFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAg
ICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKGNtb3ZjYyhjb25kKSwgZHN0LCBiYXNlLCBpbmRl
eCwgc2NhbGUsIG9mZnNldCk7CisgICAgfQorCisgICAgdm9pZCBjbW92ZWxfcnIoUmVnaXN0ZXJJ
RCBzcmMsIFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0
ZU9wKGNtb3ZjYyhDb25kaXRpb25FKSwgc3JjLCBkc3QpOworICAgIH0KKyAgICAKKyAgICB2b2lk
IGNtb3ZuZWxfcnIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAg
ICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKGNtb3ZjYyhDb25kaXRpb25ORSksIHNyYywgZHN0KTsK
KyAgICB9CisgICAgCisgICAgdm9pZCBjbW92cGxfcnIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVy
SUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKGNtb3ZjYyhDb25k
aXRpb25QKSwgc3JjLCBkc3QpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGNtb3ZucGxfcnIoUmVn
aXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIu
dHdvQnl0ZU9wKGNtb3ZjYyhDb25kaXRpb25OUCksIHNyYywgZHN0KTsKKyAgICB9CisKKyNpZiBD
UFUoWDg2XzY0KQorICAgIHZvaWQgY21vdnFfcnIoQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQg
c3JjLCBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5dGVP
cDY0KGNtb3ZjYyhjb25kKSwgc3JjLCBkc3QpOworICAgIH0KKworICAgIHZvaWQgY21vdnFfbXIo
Q29uZGl0aW9uIGNvbmQsIGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwgUmVnaXN0ZXJJRCBk
c3QpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRlT3A2NChjbW92Y2MoY29uZCks
IGRzdCwgYmFzZSwgb2Zmc2V0KTsKKyAgICB9CisKKyAgICB2b2lkIGNtb3ZxX21yKENvbmRpdGlv
biBjb25kLCBpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2UsIFJlZ2lzdGVySUQgaW5kZXgsIGlu
dCBzY2FsZSwgUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci50d29C
eXRlT3A2NChjbW92Y2MoY29uZCksIGRzdCwgYmFzZSwgaW5kZXgsIHNjYWxlLCBvZmZzZXQpOwor
ICAgIH0KKworICAgIHZvaWQgY21vdmVxX3JyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRz
dCkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5dGVPcDY0KGNtb3ZjYyhDb25kaXRp
b25FKSwgc3JjLCBkc3QpOworICAgIH0KKworICAgIHZvaWQgY21vdm5lcV9ycihSZWdpc3RlcklE
IHNyYywgUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci50d29CeXRl
T3A2NChjbW92Y2MoQ29uZGl0aW9uTkUpLCBzcmMsIGRzdCk7CisgICAgfQorCisgICAgdm9pZCBj
bW92cHFfcnIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAgICAg
bV9mb3JtYXR0ZXIudHdvQnl0ZU9wNjQoY21vdmNjKENvbmRpdGlvblApLCBzcmMsIGRzdCk7Cisg
ICAgfQorCisgICAgdm9pZCBjbW92bnBxX3JyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRz
dCkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5dGVPcDY0KGNtb3ZjYyhDb25kaXRp
b25OUCksIHNyYywgZHN0KTsKKyAgICB9CisjZWxzZQorICAgIHZvaWQgY21vdmxfbXIoQ29uZGl0
aW9uIGNvbmQsIGNvbnN0IHZvaWQqIGFkZHIsIFJlZ2lzdGVySUQgZHN0KQorICAgIHsKKyAgICAg
ICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKGNtb3ZjYyhjb25kKSwgZHN0LCBhZGRyKTsKKyAgICB9
CisjZW5kaWYKKwogICAgIHZvaWQgbGVhbF9tcihpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2Us
IFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9Q
X0xFQSwgZHN0LCBiYXNlLCBvZmZzZXQpOwpAQCAtMjU2Niw2ICsyNjUwLDI0IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICBtX2J1ZmZlci5wdXRCeXRlVW5jaGVja2VkKG9wY29kZSk7CiAgICAgICAg
ICAgICByZWdpc3Rlck1vZFJNKHJlZywgcm0pOwogICAgICAgICB9CisKKyAgICAgICAgdm9pZCB0
d29CeXRlT3A2NChUd29CeXRlT3Bjb2RlSUQgb3Bjb2RlLCBpbnQgcmVnLCBSZWdpc3RlcklEIGJh
c2UsIGludCBvZmZzZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fYnVmZmVyLmVuc3VyZVNw
YWNlKG1heEluc3RydWN0aW9uU2l6ZSk7CisgICAgICAgICAgICBlbWl0UmV4VyhyZWcsIDAsIGJh
c2UpOworICAgICAgICAgICAgbV9idWZmZXIucHV0Qnl0ZVVuY2hlY2tlZChPUF8yQllURV9FU0NB
UEUpOworICAgICAgICAgICAgbV9idWZmZXIucHV0Qnl0ZVVuY2hlY2tlZChvcGNvZGUpOworICAg
ICAgICAgICAgbWVtb3J5TW9kUk0ocmVnLCBiYXNlLCBvZmZzZXQpOworICAgICAgICB9CisKKyAg
ICAgICAgdm9pZCB0d29CeXRlT3A2NChUd29CeXRlT3Bjb2RlSUQgb3Bjb2RlLCBpbnQgcmVnLCBS
ZWdpc3RlcklEIGJhc2UsIFJlZ2lzdGVySUQgaW5kZXgsIGludCBzY2FsZSwgaW50IG9mZnNldCkK
KyAgICAgICAgeworICAgICAgICAgICAgbV9idWZmZXIuZW5zdXJlU3BhY2UobWF4SW5zdHJ1Y3Rp
b25TaXplKTsKKyAgICAgICAgICAgIGVtaXRSZXhXKHJlZywgaW5kZXgsIGJhc2UpOworICAgICAg
ICAgICAgbV9idWZmZXIucHV0Qnl0ZVVuY2hlY2tlZChPUF8yQllURV9FU0NBUEUpOworICAgICAg
ICAgICAgbV9idWZmZXIucHV0Qnl0ZVVuY2hlY2tlZChvcGNvZGUpOworICAgICAgICAgICAgbWVt
b3J5TW9kUk0ocmVnLCBiYXNlLCBpbmRleCwgc2NhbGUsIG9mZnNldCk7CisgICAgICAgIH0KICNl
bmRpZgogCiAgICAgICAgIC8vIEJ5dGUtb3BlcmFuZHM6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>