<?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>147640</bug_id>
          
          <creation_ts>2015-08-04 11:46:26 -0700</creation_ts>
          <short_desc>jsc-tailcall: Align callee save registers names across LLInt and JITs</short_desc>
          <delta_ts>2015-09-14 10:58:36 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>148658</dup_id>
          
          <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>147639</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>basile_clement</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1114676</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-08-04 11:46:26 -0700</bug_when>
    <thetext>The LLInt and JITs&apos; names and register ids for callee saves are different.  The names and the registers the represent should be the same across all of JavaScriptCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114683</commentid>
    <comment_count>1</comment_count>
      <attachid>258195</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-08-04 11:57:17 -0700</bug_when>
    <thetext>Created attachment 258195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114692</commentid>
    <comment_count>2</comment_count>
      <attachid>258195</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-04 12:07:40 -0700</bug_when>
    <thetext>Comment on attachment 258195
Patch

Do we really need the added complexity of architecture-dependent register usage? I think we should keep the LLInt as is, and make sure that we always have regCS1 == tagTypeNumber and regCS2 == tagMask.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114712</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-08-04 12:33:08 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 258195 [details]
&gt; Patch
&gt; 
&gt; Do we really need the added complexity of architecture-dependent register
&gt; usage? I think we should keep the LLInt as is, and make sure that we always
&gt; have regCS1 == tagTypeNumber and regCS2 == tagMask.

The thinking is uniformity.  The LLInt needs to restore all callee saves and therefore needs names for all callee saves.  Right now the 64 bit LLint code only know about 3 callee saves, but it needs to restore all callee saves as part of catching an exception.

Callee saves are stored in memory in register ID order from low to high addresses.  The new regCSN and csrN alias follow the register ID.  This simplifies coding the store and load order, especially in the LLInt. If regCS1 and regCS2 where kept as the tag value registers and the highest two register ID callee saves, we&apos;d end up with something like the following (X86-64 example):

csr0 / regCS0    rbx
csr1 / regCS1    r14
csr2 / regCS2    r15
csr3 / regCS3    r12
csr4 / regCS4    r13

The store order in memory though would be regCS0, regCS3, regCS4, regCS1, regCS2.

This would have to be explicitly coded in the LLInt.  If we adopt what the patch suggests, for nonFTL tiers regCSN+1 is always stored at a higher address than regCSN, making coding much clearer.

The other result is that csrN is the same as regCSN for all platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114713</commentid>
    <comment_count>4</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-04 12:37:34 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Comment on attachment 258195 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Do we really need the added complexity of architecture-dependent register
&gt; &gt; usage? I think we should keep the LLInt as is, and make sure that we always
&gt; &gt; have regCS1 == tagTypeNumber and regCS2 == tagMask.
&gt; 
&gt; The thinking is uniformity.  The LLInt needs to restore all callee saves and
&gt; therefore needs names for all callee saves.  Right now the 64 bit LLint code
&gt; only know about 3 callee saves, but it needs to restore all callee saves as
&gt; part of catching an exception.
&gt; 
&gt; Callee saves are stored in memory in register ID order from low to high
&gt; addresses.  The new regCSN and csrN alias follow the register ID.  This
&gt; simplifies coding the store and load order, especially in the LLInt. If
&gt; regCS1 and regCS2 where kept as the tag value registers and the highest two
&gt; register ID callee saves, we&apos;d end up with something like the following
&gt; (X86-64 example):
&gt; 
&gt; csr0 / regCS0    rbx
&gt; csr1 / regCS1    r14
&gt; csr2 / regCS2    r15
&gt; csr3 / regCS3    r12
&gt; csr4 / regCS4    r13
&gt; 
&gt; The store order in memory though would be regCS0, regCS3, regCS4, regCS1,
&gt; regCS2.
&gt; 
&gt; This would have to be explicitly coded in the LLInt.  If we adopt what the
&gt; patch suggests, for nonFTL tiers regCSN+1 is always stored at a higher
&gt; address than regCSN, making coding much clearer.
&gt; 
&gt; The other result is that csrN is the same as regCSN for all platforms.

I see, that makes sense. r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114716</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-08-04 12:47:53 -0700</bug_when>
    <thetext>Committed r187877: &lt;http://trac.webkit.org/changeset/187877&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122398</commentid>
    <comment_count>6</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-31 17:59:32 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 148658 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125642</commentid>
    <comment_count>7</comment_count>
      <attachid>258195</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-14 10:58:36 -0700</bug_when>
    <thetext>Comment on attachment 258195
Patch

Cleared review? from attachment 258195 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258195</attachid>
            <date>2015-08-04 11:57:17 -0700</date>
            <delta_ts>2015-09-14 10:58:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>147640.patch</filename>
            <type>text/plain</type>
            <size>10952</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg3ODcxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDE1LTA4LTA0ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIGpzYy10YWlsY2FsbDogQWxpZ24gY2FsbGVlIHNhdmUgcmVnaXN0ZXJzIG5hbWVzIGFjcm9z
cyBMTEludCBhbmQgSklUcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ3NjQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkZWQgY2FsbGVlIHNhdmUgcmVnaXN0ZXIgYWxpYXNlcyB0byBib3RoIHRoZSBM
TEludCBhbmQgSklUcyBhbmQgc2V0IHRoZSBhbGlhc2VzIHRvCisgICAgICAgIHRoZSBzYW1lIHJl
Z2lzdGVyLiAgQXMgYSByZXN1bHQsIHJlZ0NTMCBpbiB0aGUgSklUIGlzIHRoZSBzYW1lIGFzIGNz
cjAgaW4gdGhlIExMSW50LgorICAgICAgICBTb21lIHJlZ2lzdGVycyBhcmUgdW51c2VkIGluIGVp
dGhlciB0aGUgTExJbnQgb3IgSklUcy4KKworICAgICAgICBUaGlzIGlzIGluIHByZXBhcmF0aW9u
IGZvciBwcm9wZXJseSBoYW5kbGluZyBjYWxsZWUgc2F2ZSByZWdpc3RlciByZXN0b3JhdGlvbiBk
dXJpbmcgZXhjZXB0aW9uCisgICAgICAgIHByb2Nlc3NpbmcgYXMgYWxsIHRpZXJzIGFyZSBpbnZv
bHZlZCBpbiB0aGUgcmVzdG9yYXRpb24gcHJvY2VzcyBvZiBhbGwgY2FsbGVlIHNhdmVzLgorCisg
ICAgICAgICogaml0L0dQUkluZm8uaDoKKyAgICAgICAgKEpTQzo6R1BSSW5mbzo6dG9JbmRleCk6
CisgICAgICAgICogaml0L1JlZ2lzdGVyU2V0LmNwcDoKKyAgICAgICAgKEpTQzo6UmVnaXN0ZXJT
ZXQ6OmFsbFZNQ2FsbGVlU2F2ZVJlZ2lzdGVycyk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyU2V0
OjpiYXNlbGluZUNhbGxlZVNhdmVSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpSZWdpc3RlclNl
dDo6ZGZnQ2FsbGVlU2F2ZVJlZ2lzdGVycyk6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc206CisgICAgICAgICogb2ZmbGluZWFzbS9yZWdpc3RlcnMucmI6CisgICAgICAg
ICogb2ZmbGluZWFzbS94ODYucmI6CisKIDIwMTUtMDgtMDQgIEJhc2lsZSBDbGVtZW50ICA8YmFz
aWxlX2NsZW1lbnRAYXBwbGUuY29tPgogCiAgICAgICAgIGpzYy10YWlsY2FsbDogV2Ugc2hvdWxk
IGFib3J0V2l0aFJlYXNvbigpIGlmIHdlIGV2ZXIgcmV0dXJuIGZyb20gYSB0YWlsIGNhbGwKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCShyZXZpc2lvbiAxODc4NjgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtNDAz
LDE1ICs0MDMsMTcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ0NTMCA9IFg4NlJlZ2lzdGVyczo6ZWJ4OwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVn
Q1MxID0gWDg2UmVnaXN0ZXJzOjpyMTI7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzIg
PSBYODZSZWdpc3RlcnM6OnIxMzsKIAogI2lmICFPUyhXSU5ET1dTKQorICAgIHN0YXRpYyBjb25z
dCBHUFJSZWcgcmVnQ1MxID0gWDg2UmVnaXN0ZXJzOjpyMTI7CisgICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyByZWdDUzIgPSBYODZSZWdpc3RlcnM6OnIxMzsKICAgICBzdGF0aWMgY29uc3QgR1BSUmVn
IHJlZ0NTMyA9IFg4NlJlZ2lzdGVyczo6cjE0OwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVn
Q1M0ID0gWDg2UmVnaXN0ZXJzOjpyMTU7CiAjZWxzZQotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcg
cmVnQ1MzID0gWDg2UmVnaXN0ZXJzOjplc2k7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdD
UzQgPSBYODZSZWdpc3RlcnM6OmVkaTsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0NTMSA9
IFg4NlJlZ2lzdGVyczo6ZXNpOworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1MyID0gWDg2
UmVnaXN0ZXJzOjplZGk7CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzMgPSBYODZSZWdp
c3RlcnM6OnIxMjsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ0NTNCA9IFg4NlJlZ2lzdGVy
czo6cjEzOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1M1ID0gWDg2UmVnaXN0ZXJzOjpy
MTQ7CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzYgPSBYODZSZWdpc3RlcnM6OnIxNTsK
ICNlbmRpZgpAQCAtNDc0LDcgKzQ3Niw3IEBAIHB1YmxpYzoKICNpZiAhT1MoV0lORE9XUykKICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluZGV4Rm9yUmVnaXN0ZXJbMTZdID0geyAwLCAz
LCAyLCA4LCBJbnZhbGlkSW5kZXgsIEludmFsaWRJbmRleCwgMSwgNiwgNCwgNywgNSwgSW52YWxp
ZEluZGV4LCA5LCAxMCwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXggfTsKICNlbHNlCi0gICAg
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbmRleEZvclJlZ2lzdGVyWzE2XSA9IHsgMCwgNSwg
MSwgNiwgSW52YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIDksIDEwLCAyLCAzLCA0LCBJbnZhbGlk
SW5kZXgsIDcsIDgsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4IH07CisgICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBpbmRleEZvclJlZ2lzdGVyWzE2XSA9IHsgMCwgNSwgMSwgNiwgSW52
YWxpZEluZGV4LCBJbnZhbGlkSW5kZXgsIDcsIDgsIDIsIDMsIDQsIEludmFsaWRJbmRleCwgOSwg
MTAsIEludmFsaWRJbmRleCwgSW52YWxpZEluZGV4IH07CiAjZW5kaWYKICAgICAgICAgcmV0dXJu
IGluZGV4Rm9yUmVnaXN0ZXJbcmVnXTsKICAgICB9CkBAIC02MTIsOCArNjE0LDkgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnVDEzID0gQVJNNjRSZWdpc3RlcnM6OngxMzsK
ICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHJlZ1QxNCA9IEFSTTY0UmVnaXN0ZXJzOjp4MTQ7CiAg
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdUMTUgPSBBUk02NFJlZ2lzdGVyczo6eDE1OwotICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1MwID0gQVJNNjRSZWdpc3RlcnM6OngyNzsgLy8gdGFn
VHlwZU51bWJlcgotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1MxID0gQVJNNjRSZWdpc3Rl
cnM6OngyODsgLy8gdGFnTWFzaworICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmVnQ1MwID0gQVJN
NjRSZWdpc3RlcnM6OngyNjsgLy8gVXNlZCBieSBMTEludCBvbmx5CisgICAgc3RhdGljIGNvbnN0
IEdQUlJlZyByZWdDUzEgPSBBUk02NFJlZ2lzdGVyczo6eDI3OyAvLyB0YWdUeXBlTnVtYmVyCisg
ICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZWdDUzIgPSBBUk02NFJlZ2lzdGVyczo6eDI4OyAvLyB0
YWdNYXNrCiAgICAgLy8gVGhlc2UgY29uc3RhbnRzIHByb3ZpZGUgdGhlIG5hbWVzIGZvciB0aGUg
Z2VuZXJhbCBwdXJwb3NlIGFyZ3VtZW50ICYgcmV0dXJuIHZhbHVlIHJlZ2lzdGVycy4KICAgICBz
dGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMCA9IEFSTTY0UmVnaXN0ZXJzOjp4MDsgLy8g
cmVnVDAKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIGFyZ3VtZW50R1BSMSA9IEFSTTY0UmVnaXN0
ZXJzOjp4MTsgLy8gcmVnVDEKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0
ZXJTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0
ZXJTZXQuY3BwCShyZXZpc2lvbiAxODc4NjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1JlZ2lzdGVyU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDExICsxNDYsMTEgQEAgUmVn
aXN0ZXJTZXQgUmVnaXN0ZXJTZXQ6OmFsbFZNQ2FsbGVlU2F2ZQogI2VsaWYgQ1BVKEFSTV9USFVN
QjIpCiAjZWxpZiBDUFUoQVJNX1RSQURJVElPTkFMKQogI2VsaWYgQ1BVKEFSTTY0KQotICAgIHJl
c3VsdC5zZXQoQVJNNjRSZWdpc3RlcnM6OngyNik7Ci0gICAgQVNTRVJUKEdQUkluZm86OnJlZ0NT
MCA9PSBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwotICAgIEFTU0VSVChHUFJJbmZv
OjpyZWdDUzEgPT0gR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKTsKICAgICByZXN1bHQuc2V0KEdQ
UkluZm86OnJlZ0NTMCk7CisgICAgQVNTRVJUKEdQUkluZm86OnJlZ0NTMSA9PSBHUFJJbmZvOjp0
YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOworICAgIEFTU0VSVChHUFJJbmZvOjpyZWdDUzIgPT0gR1BS
SW5mbzo6dGFnTWFza1JlZ2lzdGVyKTsKICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTMSk7
CisgICAgcmVzdWx0LnNldChHUFJJbmZvOjpyZWdDUzIpOwogI2VsaWYgQ1BVKE1JUFMpCiAjZWxp
ZiBDUFUoU0g0KQogI2Vsc2UKQEAgLTE4MCwxMCArMTgwLDEwIEBAIFJlZ2lzdGVyU2V0IFJlZ2lz
dGVyU2V0OjpiYXNlbGluZUNhbGxlZVMKICNlbGlmIENQVShBUk1fVEhVTUIyKQogI2VsaWYgQ1BV
KEFSTV9UUkFESVRJT05BTCkKICNlbGlmIENQVShBUk02NCkKLSAgICBBU1NFUlQoR1BSSW5mbzo6
cmVnQ1MwID09IEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7Ci0gICAgQVNTRVJUKEdQ
UkluZm86OnJlZ0NTMSA9PSBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpOwotICAgIHJlc3VsdC5z
ZXQoR1BSSW5mbzo6cmVnQ1MwKTsKKyAgICBBU1NFUlQoR1BSSW5mbzo6cmVnQ1MxID09IEdQUklu
Zm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7CisgICAgQVNTRVJUKEdQUkluZm86OnJlZ0NTMiA9
PSBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVn
Q1MxKTsKKyAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTMik7CiAjZWxpZiBDUFUoTUlQUykK
ICNlbGlmIENQVShTSDQpCiAjZWxzZQpAQCAtMjE2LDEwICsyMTYsMTAgQEAgUmVnaXN0ZXJTZXQg
UmVnaXN0ZXJTZXQ6OmRmZ0NhbGxlZVNhdmVSZQogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCiAjZWxp
ZiBDUFUoQVJNX1RSQURJVElPTkFMKQogI2VsaWYgQ1BVKEFSTTY0KQotICAgIEFTU0VSVChHUFJJ
bmZvOjpyZWdDUzAgPT0gR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKLSAgICBBU1NF
UlQoR1BSSW5mbzo6cmVnQ1MxID09IEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7Ci0gICAgcmVz
dWx0LnNldChHUFJJbmZvOjpyZWdDUzApOworICAgIEFTU0VSVChHUFJJbmZvOjpyZWdDUzEgPT0g
R1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKKyAgICBBU1NFUlQoR1BSSW5mbzo6cmVn
Q1MyID09IEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7CiAgICAgcmVzdWx0LnNldChHUFJJbmZv
OjpyZWdDUzEpOworICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1MyKTsKICNlbGlmIENQVShN
SVBTKQogI2VsaWYgQ1BVKFNINCkKICNlbHNlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAxODc4Njgp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20J
KHdvcmtpbmcgY29weSkKQEAgLTEwNyw5ICsxMDcsMTAgQEAKICMgIC0gdDQgYW5kIHQ1IGFyZSBu
ZXZlciBhcmd1bWVudCByZWdpc3RlcnMsIHQzIGNhbiBvbmx5IGJlIGEzLCB0MSBjYW4gb25seSBi
ZQogIyAgYTE7IGJ1dCB0MCBhbmQgdDIgY2FuIGJlIGVpdGhlciBhMCBvciBhMi4KICMKLSMgIC0g
T24gNjQgYml0cywgY3NyMCwgY3NyMSBhbmQgY3NyMiBhcmUgYXZhaWxhYmxlIGFzIGNhbGxlZS1z
YXZlIHJlZ2lzdGVycy4KLSMgIGNzcjAgaXMgdXNlZCB0byBzdG9yZSB0aGUgUEMgYmFzZSwgd2hp
bGUgY3NyMSBhbmQgY3NyMiBhcmUgdXNlZCB0byBzdG9yZQotIyAgc3BlY2lhbCB0YWcgdmFsdWVz
LiBEb24ndCB1c2UgdGhlbSBmb3IgYW55dGhpbmcgZWxzZS4KKyMgIC0gT24gNjQgYml0cywgY3Ny
MCwgY3NyMSwgY3NyMiBhbmQgb3B0aW9uYWxseSBjc3IzLCBjc3I0LCBjc3I1IGFuZCBjc3I2Cisj
ICBhcmUgYXZhaWxhYmxlIGFzIGNhbGxlZS1zYXZlIHJlZ2lzdGVycy4KKyMgIGNzcjAgaXMgdXNl
ZCB0byBzdG9yZSB0aGUgUEMgYmFzZSwgd2hpbGUgdGhlIGxhc3QgdHdvIGNzciByZWdpc3RlcnMg
YXJlIHVzZWQKKyMgIHRvIHN0b3JlIHNwZWNpYWwgdGFnIHZhbHVlcy4gRG9uJ3QgdXNlIHRoZW0g
Zm9yIGFueXRoaW5nIGVsc2UuCiAjCiAjIEFkZGl0aW9uYWwgcGxhdGZvcm0tc3BlY2lmaWMgZGV0
YWlscyAoeW91IHNob3VsZG4ndCByZWx5IG9uIHRoaXMgcmVtYWluaW5nCiAjIHRydWUpOgpAQCAt
MjM5LDkgKzI0MCwxNyBAQCBpZiBKU1ZBTFVFNjQKICAgICAjICAgVGhpcyByZXF1aXJlcyBhbiBh
ZGQgYmVmb3JlIHRoZSBjYWxsLCBhbmQgYSBzdWIgYWZ0ZXIuCiAgICAgY29uc3QgUEMgPSB0NAog
ICAgIGNvbnN0IFBCID0gY3NyMAotICAgIGNvbnN0IHRhZ1R5cGVOdW1iZXIgPSBjc3IxCi0gICAg
Y29uc3QgdGFnTWFzayA9IGNzcjIKLSAgICAKKyAgICBpZiBBUk02NAorICAgICAgICBjb25zdCB0
YWdUeXBlTnVtYmVyID0gY3NyMQorICAgICAgICBjb25zdCB0YWdNYXNrID0gY3NyMgorICAgIGVs
c2lmIFg4Nl82NAorICAgICAgICBjb25zdCB0YWdUeXBlTnVtYmVyID0gY3NyMworICAgICAgICBj
b25zdCB0YWdNYXNrID0gY3NyNAorICAgIGVsc2lmIFg4Nl82NF9XSU4KKyAgICAgICAgY29uc3Qg
dGFnVHlwZU51bWJlciA9IGNzcjUKKyAgICAgICAgY29uc3QgdGFnTWFzayA9IGNzcjYKKyAgICBl
bmQKKwogICAgIG1hY3JvIGxvYWRpc0Zyb21JbnN0cnVjdGlvbihvZmZzZXQsIGRlc3QpCiAgICAg
ICAgIGxvYWRpcyBvZmZzZXQgKiA4W1BCLCBQQywgOF0sIGRlc3QKICAgICBlbmQKQEAgLTU0Niwx
MyArNTU1LDEzIEBAIG1hY3JvIHByZXNlcnZlQ2FsbGVlU2F2ZXNVc2VkQnlMTEludCgpCiAgICAg
ZWxzaWYgWDg2CiAgICAgZWxzaWYgWDg2X1dJTgogICAgIGVsc2lmIFg4Nl82NAotICAgICAgICBz
dG9yZXAgY3NyMiwgLThbY2ZyXQotICAgICAgICBzdG9yZXAgY3NyMSwgLTE2W2Nmcl0KKyAgICAg
ICAgc3RvcmVwIGNzcjQsIC04W2Nmcl0KKyAgICAgICAgc3RvcmVwIGNzcjMsIC0xNltjZnJdCiAg
ICAgICAgIHN0b3JlcCBjc3IwLCAtMjRbY2ZyXQogICAgIGVsc2lmIFg4Nl82NF9XSU4KICAgICAg
ICAgc3RvcmVwIHQ0LCAtOFtjZnJdCi0gICAgICAgIHN0b3JlcCBjc3IyLCAtMTZbY2ZyXQotICAg
ICAgICBzdG9yZXAgY3NyMSwgLTI0W2Nmcl0KKyAgICAgICAgc3RvcmVwIGNzcjYsIC0xNltjZnJd
CisgICAgICAgIHN0b3JlcCBjc3I1LCAtMjRbY2ZyXQogICAgICAgICBzdG9yZXAgY3NyMCwgLTMy
W2Nmcl0KICAgICBlbmQKIGVuZApAQCAtNTcwLDEyICs1NzksMTIgQEAgbWFjcm8gcmVzdG9yZUNh
bGxlZVNhdmVzVXNlZEJ5TExJbnQoKQogICAgIGVsc2lmIFg4Nl9XSU4KICAgICBlbHNpZiBYODZf
NjQKICAgICAgICAgbG9hZHAgLTI0W2Nmcl0sIGNzcjAKLSAgICAgICAgbG9hZHAgLTE2W2Nmcl0s
IGNzcjEKLSAgICAgICAgbG9hZHAgLThbY2ZyXSwgY3NyMgorICAgICAgICBsb2FkcCAtMTZbY2Zy
XSwgY3NyMworICAgICAgICBsb2FkcCAtOFtjZnJdLCBjc3I0CiAgICAgZWxzaWYgWDg2XzY0X1dJ
TgogICAgICAgICBsb2FkcCAtMzJbY2ZyXSwgY3NyMAotICAgICAgICBsb2FkcCAtMjRbY2ZyXSwg
Y3NyMQotICAgICAgICBsb2FkcCAtMTZbY2ZyXSwgY3NyMgorICAgICAgICBsb2FkcCAtMjRbY2Zy
XSwgY3NyNQorICAgICAgICBsb2FkcCAtMTZbY2ZyXSwgY3NyNgogICAgICAgICBsb2FkcCAtOFtj
ZnJdLCB0NAogICAgIGVuZAogZW5kCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9yZWdpc3RlcnMucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vcmVnaXN0ZXJzLnJiCShyZXZpc2lvbiAxODc4NjgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIJKHdvcmtpbmcgY29weSkKQEAgLTQzLDgg
KzQzLDEyIEBAIEdQUlMgPQogICAgICAicGMiLAogICAgICAjIDY0LWJpdCBvbmx5IHJlZ2lzdGVy
czoKICAgICAgImNzcjAiLAotICAgICAiY3NyMSIsICAjIHRhZyB0eXBlIG51bWJlciByZWdpc3Rl
cgotICAgICAiY3NyMiIgICAjIHRhZyBtYXNrIHJlZ2lzdGVyCisgICAgICJjc3IxIiwKKyAgICAg
ImNzcjIiLAorICAgICAiY3NyMyIsCisgICAgICJjc3I0IiwKKyAgICAgImNzcjUiLAorICAgICAi
Y3NyNiIKICAgICBdCiAKIEZQUlMgPQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20veDg2LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL3g4Ni5yYgkocmV2aXNpb24gMTg3ODY4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20veDg2LnJiCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMCArNTEsMTAgQEAgcmVxdWly
ZSAiY29uZmlnIgogIyAgcjggPT4gdDQKICMgcjEwID0+IHQ1CiAjIHJieCA9PiAgICAgICAgICAg
ICBjc3IwIChjYWxsZWUtc2F2ZSwgUEIsIHVudXNlZCBpbiBiYXNlbGluZSkKLSMgcjEyID0+ICAg
ICAgICAgICAgICAgICAgKGNhbGxlZS1zYXZlKQotIyByMTMgPT4gICAgICAgICAgICAgICAgICAo
Y2FsbGVlLXNhdmUpCi0jIHIxNCA9PiAgICAgICAgICAgICBjc3IxIChjYWxsZWUtc2F2ZSwgdGFn
VHlwZU51bWJlcikKLSMgcjE1ID0+ICAgICAgICAgICAgIGNzcjIgKGNhbGxlZS1zYXZlLCB0YWdN
YXNrKQorIyByMTIgPT4gICAgICAgICAgICAgY3NyMSAoY2FsbGVlLXNhdmUpCisjIHIxMyA9PiAg
ICAgICAgICAgICBjc3IyIChjYWxsZWUtc2F2ZSkKKyMgcjE0ID0+ICAgICAgICAgICAgIGNzcjMg
KGNhbGxlZS1zYXZlLCB0YWdUeXBlTnVtYmVyKQorIyByMTUgPT4gICAgICAgICAgICAgY3NyNCAo
Y2FsbGVlLXNhdmUsIHRhZ01hc2spCiAjIHJzcCA9PiBzcAogIyByYnAgPT4gY2ZyCiAjIHIxMSA9
PiAgICAgICAgICAgICAgICAgIChzY3JhdGNoKQpAQCAtNjksMTMgKzY5LDEzIEBAIHJlcXVpcmUg
ImNvbmZpZyIKICMgIHI4ID0+IHQyLCBhMgogIyAgcjkgPT4gdDMsIGEzCiAjIHIxMCA9PiB0NAot
IyByc2kgPT4gICAgICAgICAgICAgICAgICAoY2FsbGVlLXNhdmUpCiAjIHJieCA9PiAgICAgICAg
ICAgICBjc3IwIChjYWxsZWUtc2F2ZSwgUEIsIHVudXNlZCBpbiBiYXNlbGluZSkKLSMgcmRpID0+
ICAgICAgICAgICAgICAgICAgKGNhbGxlZS1zYXZlKQotIyByMTIgPT4gICAgICAgICAgICAgICAg
ICAoY2FsbGVlLXNhdmUpCi0jIHIxMyA9PiAgICAgICAgICAgICAgICAgIChjYWxsZWUtc2F2ZSkK
LSMgcjE0ID0+ICAgICAgICAgICAgIGNzcjEgKGNhbGxlZS1zYXZlLCB0YWdUeXBlTnVtYmVyKQot
IyByMTUgPT4gICAgICAgICAgICAgY3NyMiAoY2FsbGVlLXNhdmUsIHRhZ01hc2spCisjIHJzaSA9
PiAgICAgICAgICAgICBjc3IxIChjYWxsZWUtc2F2ZSkKKyMgcmRpID0+ICAgICAgICAgICAgIGNz
cjIgKGNhbGxlZS1zYXZlKQorIyByMTIgPT4gICAgICAgICAgICAgY3NyMyAoY2FsbGVlLXNhdmUp
CisjIHIxMyA9PiAgICAgICAgICAgICBjc3I0IChjYWxsZWUtc2F2ZSkKKyMgcjE0ID0+ICAgICAg
ICAgICAgIGNzcjUgKGNhbGxlZS1zYXZlLCB0YWdUeXBlTnVtYmVyKQorIyByMTUgPT4gICAgICAg
ICAgICAgY3NyNiAoY2FsbGVlLXNhdmUsIHRhZ01hc2spCiAjIHJzcCA9PiBzcAogIyByYnAgPT4g
Y2ZyCiAjIHIxMSA9PiAgICAgICAgICAgICAgICAgIChzY3JhdGNoKQpAQCAtMjkwLDggKzI5MCwx
OSBAQCBjbGFzcyBSZWdpc3RlcklECiAgICAgICAgICAgICB3aGVuICJjc3IwIgogICAgICAgICAg
ICAgICAgICJlYngiCiAgICAgICAgICAgICB3aGVuICJjc3IxIgotICAgICAgICAgICAgICAgICJy
MTQiCisgICAgICAgICAgICAgICAgInIxMiIKICAgICAgICAgICAgIHdoZW4gImNzcjIiCisgICAg
ICAgICAgICAgICAgInIxMyIKKyAgICAgICAgICAgIHdoZW4gImNzcjMiCisgICAgICAgICAgICAg
ICAgaXNXaW4gPyAiZXNpIiA6ICJyMTQiCisgICAgICAgICAgICB3aGVuICJjc3I0IgorICAgICAg
ICAgICAgICAgIGlzV2luID8gImVkaSIgOiAicjE1IgorICAgICAgICAgICAgICAgICJyMTUiCisg
ICAgICAgICAgICB3aGVuICJjc3I1IgorICAgICAgICAgICAgICAgIHJhaXNlICJjYW5ub3QgdXNl
IHJlZ2lzdGVyICN7bmFtZX0gb24gWDg2LTY0IiB1bmxlc3MgaXNXaW4KKyAgICAgICAgICAgICAg
ICAicjE0IgorICAgICAgICAgICAgd2hlbiAiY3NyNiIKKyAgICAgICAgICAgICAgICByYWlzZSAi
Y2Fubm90IHVzZSByZWdpc3RlciAje25hbWV9IG9uIFg4Ni02NCIgdW5sZXNzIGlzV2luCiAgICAg
ICAgICAgICAgICAgInIxNSIKICAgICAgICAgICAgIHdoZW4gImNmciIKICAgICAgICAgICAgICAg
ICAiZWJwIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>