From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v8 10/50] x86emul: support AVX512{F, BW, _VBMI} full permute insns Date: Fri, 15 Mar 2019 04:41:48 -0600 Message-ID: <5C8B816C020000780021F167@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5C8B7EC0020000780021F10B@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h4kHe-0004RF-Hu for xen-devel@lists.xenproject.org; Fri, 15 Mar 2019 10:41:50 +0000 In-Reply-To: <5C8B7EC0020000780021F10B@prv1-mh.provo.novell.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel Cc: George Dunlap , Andrew Cooper , Wei Liu , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org VGFrZSB0aGUgbGliZXJ0eSBhbmQgYWxzbyBjb3JyZWN0IHRoZSAocHVibGljIGludGVyZmFjZSkg bmFtZSBvZiB0aGUKQVZYNTEyX1ZCTUkgZmVhdHVyZSBmbGFnLCBvbiB0aGUgYXNzdW1wdGlvbiB0 aGF0IG5vIGV4dGVybmFsIGNvbnN1bWVyCmhhcyBhY3R1YWxseSBiZWVuIHVzaW5nIHRoYXQgZmxh ZyBzbyBmYXIuIEZ1cnRoZXJtb3JlIG1ha2UgaXQgaGF2ZQpBVlg1MTJCVyBpbnN0ZWFkIG9mIEFW WDUxMkYgYXMgYSBwcmVyZXF1aXNpdGUsIGZvciByZXF1aXJpbmcgZnVsbAo2NC1iaXQgbWFzayBy ZWdpc3RlcnMgKHRoZSB1cHBlciA0OCBiaXRzIG9mIHdoaWNoIGNhbid0IGJlIGFjY2Vzc2VkCm90 aGVyIHRoYW4gdGhyb3VnaCBYU0FWRS9YUlNUT1Igd2l0aG91dCBBVlg1MTJCVyBzdXBwb3J0KS4K ClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCnY3OiBS ZS1iYXNlLgp2NTogUmUtYmFzZS4KdjM6IE5ldy4KCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVs YXRvci9ldmV4LWRpc3A4LmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgtZGlz cDguYwpAQCAtMTczLDYgKzE3MywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEy Zl9hbGxbXSA9CiAgICAgSU5TTihwY21wZ3RkLCAgICAgIDY2LCAgIDBmLCA2NiwgICAgdmwsICAg ICAgZCwgdmwpLAogICAgIElOU04ocGNtcGd0cSwgICAgICA2NiwgMGYzOCwgMzcsICAgIHZsLCAg ICAgIHEsIHZsKSwKICAgICBJTlNOKHBjbXB1LCAgICAgICAgNjYsIDBmM2EsIDFlLCAgICB2bCwg ICAgIGRxLCB2bCksCisgICAgSU5TTihwZXJtaTIsICAgICAgIDY2LCAwZjM4LCA3NiwgICAgdmws ICAgICBkcSwgdmwpLAorICAgIElOU04ocGVybWkyLCAgICAgICA2NiwgMGYzOCwgNzcsICAgIHZs LCAgICAgc2QsIHZsKSwKKyAgICBJTlNOKHBlcm10MiwgICAgICAgNjYsIDBmMzgsIDdlLCAgICB2 bCwgICAgIGRxLCB2bCksCisgICAgSU5TTihwZXJtdDIsICAgICAgIDY2LCAwZjM4LCA3ZiwgICAg dmwsICAgICBzZCwgdmwpLAogICAgIElOU04ocG1heHMsICAgICAgICA2NiwgMGYzOCwgM2QsICAg IHZsLCAgICAgZHEsIHZsKSwKICAgICBJTlNOKHBtYXh1LCAgICAgICAgNjYsIDBmMzgsIDNmLCAg ICB2bCwgICAgIGRxLCB2bCksCiAgICAgSU5TTihwbWlucywgICAgICAgIDY2LCAwZjM4LCAzOSwg ICAgdmwsICAgICBkcSwgdmwpLApAQCAtMjk0LDYgKzI5OCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgdGVzdCBhdng1MTJid19hbGxbXQogICAgIElOU04ocGNtcGd0YiwgICAgIDY2LCAgIDBmLCA2 NCwgICAgdmwsICAgIGIsIHZsKSwKICAgICBJTlNOKHBjbXBndHcsICAgICA2NiwgICAwZiwgNjUs ICAgIHZsLCAgICB3LCB2bCksCiAgICAgSU5TTihwY21wdSwgICAgICAgNjYsIDBmM2EsIDNlLCAg ICB2bCwgICBidywgdmwpLAorICAgIElOU04ocGVybWkydywgICAgIDY2LCAwZjM4LCA3NSwgICAg dmwsICAgIHcsIHZsKSwKKyAgICBJTlNOKHBlcm10MncsICAgICA2NiwgMGYzOCwgN2QsICAgIHZs LCAgICB3LCB2bCksCiAgICAgSU5TTihwbWFkZHdkLCAgICAgNjYsICAgMGYsIGY1LCAgICB2bCwg ICAgdywgdmwpLAogICAgIElOU04ocG1heHNiLCAgICAgIDY2LCAwZjM4LCAzYywgICAgdmwsICAg IGIsIHZsKSwKICAgICBJTlNOKHBtYXhzdywgICAgICA2NiwgICAwZiwgZWUsICAgIHZsLCAgICB3 LCB2bCksCkBAIC0zNzgsNiArMzg0LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1 MTJkcV81MTJbXQogICAgIElOU04oaW5zZXJ0aTMyeDgsICAgIDY2LCAwZjNhLCAzYSwgZWxfOCwg ZCwgdmwpLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMl92Ym1pX2FsbFtd ID0geworICAgIElOU04ocGVybWkyYiwgICAgICAgNjYsIDBmMzgsIDc1LCB2bCwgYiwgdmwpLAor ICAgIElOU04ocGVybXQyYiwgICAgICAgNjYsIDBmMzgsIDdkLCB2bCwgYiwgdmwpLAorfTsKKwog c3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgdmxfYWxsW10gPSB7IFZMXzUxMiwgVkxfMTI4LCBW TF8yNTYgfTsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHZsXzEyOFtdID0geyBWTF8xMjgg fTsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHZsX25vMTI4W10gPSB7IFZMXzUxMiwgVkxf MjU2IH07CkBAIC03MTgsNCArNzI5LDUgQEAgdm9pZCBldmV4X2Rpc3A4X3Rlc3Qodm9pZCAqaW5z dHIsIHN0cnVjdAogICAgIFJVTihhdng1MTJkcSwgMTI4KTsKICAgICBSVU4oYXZ4NTEyZHEsIG5v MTI4KTsKICAgICBSVU4oYXZ4NTEyZHEsIDUxMik7CisgICAgUlVOKGF2eDUxMl92Ym1pLCBhbGwp OwogfQotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5jCisrKyBiL3Rvb2xzL3Rl c3RzL3g4Nl9lbXVsYXRvci9zaW1kLmMKQEAgLTE1MCw2ICsxNTAsOSBAQCBzdGF0aWMgaW5saW5l IGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAjICAgZGVmaW5lIGludGVybGVhdmVfaGkoeCwg eSkgQih1bnBja2hwcywgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQogIyAgIGRlZmluZSBpbnRl cmxlYXZlX2xvKHgsIHkpIEIodW5wY2tscHMsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKICMg ICBkZWZpbmUgc3dhcCh4KSBCKHNodWZwcywgX21hc2ssIHgsIHgsIDBiMDAwMTEwMTEsIHVuZGVm KCksIH4wKQorIyAgZWxzZQorIyAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpIEIodnBlcm1p MnZhcnBzLCBfbWFzaywgeCwgaW50ZXJsZWF2ZV9oaSwgeSwgfjApCisjICAgZGVmaW5lIGludGVy bGVhdmVfbG8oeCwgeSkgQih2cGVybXQydmFycHMsIF9tYXNrLCBpbnRlcmxlYXZlX2xvLCB4LCB5 LCB+MCkKICMgIGVuZGlmCiAjIGVsaWYgRkxPQVRfU0laRSA9PSA4CiAjICBpZiBWRUNfU0laRSA+ PSAzMgpAQCAtMTc1LDYgKzE3OCw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRl X3ZlY190IGIKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSBCKHVucGNraHBkLCBfbWFz aywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICAgZGVmaW5lIGludGVybGVhdmVfbG8oeCwgeSkgQih1 bnBja2xwZCwgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQogIyAgIGRlZmluZSBzd2FwKHgpIEIo c2h1ZnBkLCBfbWFzaywgeCwgeCwgMGIwMSwgdW5kZWYoKSwgfjApCisjICBlbHNlCisjICAgZGVm aW5lIGludGVybGVhdmVfaGkoeCwgeSkgQih2cGVybWkydmFycGQsIF9tYXNrLCB4LCBpbnRlcmxl YXZlX2hpLCB5LCB+MCkKKyMgICBkZWZpbmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSBCKHZwZXJtdDJ2 YXJwZCwgX21hc2ssIGludGVybGVhdmVfbG8sIHgsIHksIH4wKQogIyAgZW5kaWYKICMgZW5kaWYK ICNlbGlmIEZMT0FUX1NJWkUgPT0gNCAmJiBkZWZpbmVkKF9fU1NFX18pCkBAIC0zMDMsNiArMzA5 LDkgQEAgc3RhdGljIGlubGluZSBib29sIF90b19ib29sKGJ5dGVfdmVjX3QgYgogIyAgaWYgVkVD X1NJWkUgPT0gMTYKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSAoKHZlY190KUIocHVu cGNraGRxLCBfbWFzaywgKHZzaV90KSh4KSwgKHZzaV90KSh5KSwgKHZzaV90KXVuZGVmKCksIH4w KSkKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSAoKHZlY190KUIocHVucGNrbGRxLCBf bWFzaywgKHZzaV90KSh4KSwgKHZzaV90KSh5KSwgKHZzaV90KXVuZGVmKCksIH4wKSkKKyMgIGVs c2UKKyMgICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSAoKHZlY190KUIodnBlcm1pMnZhcmQs IF9tYXNrLCAodnNpX3QpKHgpLCBpbnRlcmxlYXZlX2hpLCAodnNpX3QpKHkpLCB+MCkpCisjICAg ZGVmaW5lIGludGVybGVhdmVfbG8oeCwgeSkgKCh2ZWNfdClCKHZwZXJtdDJ2YXJkLCBfbWFzaywg aW50ZXJsZWF2ZV9sbywgKHZzaV90KSh4KSwgKHZzaV90KSh5KSwgfjApKQogIyAgZW5kaWYKICMg IGRlZmluZSBtaXgoeCwgeSkgKCh2ZWNfdClCKG1vdmRxYTMyXywgX21hc2ssICh2c2lfdCkoeCks ICh2c2lfdCkoeSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwYjAxMDEwMTAx MDEwMTAxMDEgJiAoKDEgPDwgRUxFTV9DT1VOVCkgLSAxKSkpKQpAQCAtMzI0LDYgKzMzMyw5IEBA IHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICMgIGlmIFZFQ19TSVpF ID09IDE2CiAjICAgZGVmaW5lIGludGVybGVhdmVfaGkoeCwgeSkgKCh2ZWNfdClCKHB1bnBja2hx ZHEsIF9tYXNrLCAodmRpX3QpKHgpLCAodmRpX3QpKHkpLCAodmRpX3QpdW5kZWYoKSwgfjApKQog IyAgIGRlZmluZSBpbnRlcmxlYXZlX2xvKHgsIHkpICgodmVjX3QpQihwdW5wY2tscWRxLCBfbWFz aywgKHZkaV90KSh4KSwgKHZkaV90KSh5KSwgKHZkaV90KXVuZGVmKCksIH4wKSkKKyMgIGVsc2UK KyMgICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSAoKHZlY190KUIodnBlcm1pMnZhcnEsIF9t YXNrLCAodmRpX3QpKHgpLCBpbnRlcmxlYXZlX2hpLCAodmRpX3QpKHkpLCB+MCkpCisjICAgZGVm aW5lIGludGVybGVhdmVfbG8oeCwgeSkgKCh2ZWNfdClCKHZwZXJtdDJ2YXJxLCBfbWFzaywgaW50 ZXJsZWF2ZV9sbywgKHZkaV90KSh4KSwgKHZkaV90KSh5KSwgfjApKQogIyAgZW5kaWYKICMgIGRl ZmluZSBtaXgoeCwgeSkgKCh2ZWNfdClCKG1vdmRxYTY0XywgX21hc2ssICh2ZGlfdCkoeCksICh2 ZGlfdCkoeSksIDBiMDEwMTAxMDEpKQogIyBlbmRpZgpAQCAtNzY5LDYgKzc4MSw3IEBAIGludCBz aW1kX3Rlc3Qodm9pZCkKIHsKICAgICB1bnNpZ25lZCBpbnQgaSwgajsKICAgICB2ZWNfdCB4LCB5 LCB6LCBzcmMsIGludiwgYWx0LCBzaDsKKyAgICB2aW50X3QgaW50ZXJsZWF2ZV9sbywgaW50ZXJs ZWF2ZV9oaTsKIAogICAgIGZvciAoIGkgPSAwLCBqID0gRUxFTV9TSVpFIDw8IDM7IGkgPCBFTEVN X0NPVU5UOyArK2kgKQogICAgIHsKQEAgLTc4Miw2ICs3OTUsOSBAQCBpbnQgc2ltZF90ZXN0KHZv aWQpCiAgICAgICAgIGlmICggIShpICYgKGkgKyAxKSkgKQogICAgICAgICAgICAgLS1qOwogICAg ICAgICBzaFtpXSA9IGo7CisKKyAgICAgICAgaW50ZXJsZWF2ZV9sb1tpXSA9ICgoaSAmIDEpICog RUxFTV9DT1VOVCkgfCAoaSA+PiAxKTsKKyAgICAgICAgaW50ZXJsZWF2ZV9oaVtpXSA9IGludGVy bGVhdmVfbG9baV0gKyAoRUxFTV9DT1VOVCAvIDIpOwogICAgIH0KIAogICAgIHRvdWNoKHNyYyk7 CkBAIC0xMDc1LDcgKzEwOTEsNyBAQCBpbnQgc2ltZF90ZXN0KHZvaWQpCiAgICAgeCA9IHNyYyAq IGFsdDsKICAgICB5ID0gaW50ZXJsZWF2ZV9sbyh4LCBhbHQgPCAwKTsKICAgICB0b3VjaCh4KTsK LSAgICB6ID0gd2lkZW4xKHgpOworICAgIHogPSB3aWRlbjEobG93X2hhbGYoeCkpOwogICAgIHRv dWNoKHgpOwogICAgIGlmICggIWVxKHosIHkpICkgcmV0dXJuIF9fTElORV9fOwogCkBAIC0xMTA3 LDcgKzExMjMsNyBAQCBpbnQgc2ltZF90ZXN0KHZvaWQpCiAKICMgaWZkZWYgd2lkZW4xCiAgICAg dG91Y2goc3JjKTsKLSAgICB4ID0gd2lkZW4xKHNyYyk7CisgICAgeCA9IHdpZGVuMShsb3dfaGFs ZihzcmMpKTsKICAgICB0b3VjaChzcmMpOwogICAgIGlmICggIWVxKHgsIHkpICkgcmV0dXJuIF9f TElORV9fOwogIyBlbmRpZgotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5oCisr KyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmgKQEAgLTcwLDYgKzcwLDE2IEBAIHR5 cGVkZWYgaW50IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKFYKIHR5cGVkZWYgbG9uZyBsb25n IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKFZFQ19TSVpFKSkpIHZkaV90OwogI2VuZGlmCiAK KyNpZiBFTEVNX1NJWkUgPT0gMQordHlwZWRlZiB2cWlfdCB2aW50X3Q7CisjZWxpZiBFTEVNX1NJ WkUgPT0gMgordHlwZWRlZiB2aGlfdCB2aW50X3Q7CisjZWxpZiBFTEVNX1NJWkUgPT0gNAordHlw ZWRlZiB2c2lfdCB2aW50X3Q7CisjZWxpZiBFTEVNX1NJWkUgPT0gOAordHlwZWRlZiB2ZGlfdCB2 aW50X3Q7CisjZW5kaWYKKwogI2lmIFZFQ19TSVpFID49IDE2CiAKICMgaWYgRUxFTV9DT1VOVCA+ PSAyCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci94ODYtZW11bGF0ZS5oCisrKyBiL3Rv b2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci94ODYtZW11bGF0ZS5oCkBAIC0xMzYsNiArMTM2LDcgQEAg c3RhdGljIGlubGluZSBib29sIHhjcjBfbWFzayh1aW50NjRfdCBtYQogI2RlZmluZSBjcHVfaGFz X2F2eDUxMmRxICAoY3AuZmVhdC5hdng1MTJkcSAmJiB4Y3IwX21hc2soMHhlNikpCiAjZGVmaW5l IGNwdV9oYXNfYXZ4NTEyYncgIChjcC5mZWF0LmF2eDUxMmJ3ICYmIHhjcjBfbWFzaygweGU2KSkK ICNkZWZpbmUgY3B1X2hhc19hdng1MTJ2bCAgKGNwLmZlYXQuYXZ4NTEydmwgJiYgeGNyMF9tYXNr KDB4ZTYpKQorI2RlZmluZSBjcHVfaGFzX2F2eDUxMl92Ym1pIChjcC5mZWF0LmF2eDUxMl92Ym1p ICYmIHhjcjBfbWFzaygweGU2KSkKIAogI2RlZmluZSBjcHVfaGFzX3hnZXRidjEgICAoY3B1X2hh c194c2F2ZSAmJiBjcC54c3RhdGUueGdldGJ2MSkKIAotLS0gYS94ZW4vYXJjaC94ODYveDg2X2Vt dWxhdGUveDg2X2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2Vt dWxhdGUuYwpAQCAtNDY4LDkgKzQ2OCwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV4dDBmMzhf dGFibGUgewogICAgIFsweDU5XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIsIC50d29fb3Ag PSAxLCAuZDhzID0gMyB9LAogICAgIFsweDVhXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMTI4LCAu dHdvX29wID0gMSwgLmQ4cyA9IDQgfSwKICAgICBbMHg1Yl0gPSB7IC5zaW1kX3NpemUgPSBzaW1k XzI1NiwgLnR3b19vcCA9IDEsIC5kOHMgPSBkOHNfdmxfYnlfMiB9LAorICAgIFsweDc1IC4uLiAw eDc2XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLmQ4cyA9IGQ4c192bCB9LAor ICAgIFsweDc3XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAuZDhzID0gZDhzX3Zs IH0sCiAgICAgWzB4NzhdID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciwgLnR3b19vcCA9IDEg fSwKICAgICBbMHg3OV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyLCAudHdvX29wID0gMSwg LmQ4cyA9IDEgfSwKICAgICBbMHg3YSAuLi4gMHg3Y10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX25v bmUsIC50d29fb3AgPSAxIH0sCisgICAgWzB4N2QgLi4uIDB4N2VdID0geyAuc2ltZF9zaXplID0g c2ltZF9wYWNrZWRfaW50LCAuZDhzID0gZDhzX3ZsIH0sCisgICAgWzB4N2ZdID0geyAuc2ltZF9z aXplID0gc2ltZF9wYWNrZWRfZnAsIC5kOHMgPSBkOHNfdmwgfSwKICAgICBbMHg4Y10gPSB7IC5z aW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQgfSwKICAgICBbMHg4ZV0gPSB7IC5zaW1kX3NpemUg PSBzaW1kX3BhY2tlZF9pbnQsIC50b19tZW0gPSAxIH0sCiAgICAgWzB4OTAgLi4uIDB4OTNdID0g eyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciwgLnZzaWIgPSAxIH0sCkBAIC0xODYxLDYgKzE4NjUs NyBAQCBzdGF0aWMgYm9vbCB2Y3B1X2hhcygKICNkZWZpbmUgdmNwdV9oYXNfc2hhKCkgICAgICAg ICB2Y3B1X2hhcyggICAgICAgICA3LCBFQlgsIDI5LCBjdHh0LCBvcHMpCiAjZGVmaW5lIHZjcHVf aGFzX2F2eDUxMmJ3KCkgICAgdmNwdV9oYXMoICAgICAgICAgNywgRUJYLCAzMCwgY3R4dCwgb3Bz KQogI2RlZmluZSB2Y3B1X2hhc19hdng1MTJ2bCgpICAgIHZjcHVfaGFzKCAgICAgICAgIDcsIEVC WCwgMzEsIGN0eHQsIG9wcykKKyNkZWZpbmUgdmNwdV9oYXNfYXZ4NTEyX3ZibWkoKSB2Y3B1X2hh cyggICAgICAgICA3LCBFQ1gsICAxLCBjdHh0LCBvcHMpCiAjZGVmaW5lIHZjcHVfaGFzX3JkcGlk KCkgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgRUNYLCAyMiwgY3R4dCwgb3BzKQogI2RlZmlu ZSB2Y3B1X2hhc19jbHplcm8oKSAgICAgIHZjcHVfaGFzKDB4ODAwMDAwMDgsIEVCWCwgIDAsIGN0 eHQsIG9wcykKIApAQCAtNjA0Myw2ICs2MDQ4LDExIEBAIHg4Nl9lbXVsYXRlKAogICAgIENBU0Vf U0lNRF9QQUNLRURfRlAoX0VWRVgsIDB4MGYsIDB4MTUpOiAvKiB2dW5wY2tocHtzLGR9IFt4eXpd bW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLwogICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25f aWYoZXZleC53ICE9IChldmV4LnBmeCAmIFZFWF9QUkVGSVhfRE9VQkxFX01BU0spLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRVhDX1VEKTsKKyAgICAgICAgLyogZmFsbCB0aHJvdWdo ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHg3Nik6IC8qIHZwZXJt aTJ7ZCxxfSBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVN VUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDc3KTogLyogdnBlcm1pMnB7cyxkfSBbeHl6XW1tL21l bSxbeHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgw ZjM4LCAweDdlKTogLyogdnBlcm10MntkLHF9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtr fSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4N2YpOiAvKiB2cGVy bXQycHtzLGR9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLwogICAgICAgICBmYXVs dF9zdXBwcmVzc2lvbiA9IGZhbHNlOwogICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KICAgICBj YXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHhkYik6IC8qIHZwYW5ke2QscX0gW3h5el1t bS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCkBAIC04NTY0LDYgKzg1NzQsMTYgQEAgeDg2X2Vt dWxhdGUoCiAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihlYS50eXBlICE9IE9QX01FTSB8 fCAhdmV4LmwgfHwgdmV4LncsIEVYQ19VRCk7CiAgICAgICAgIGdvdG8gc2ltZF8wZl9hdngyOwog CisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHg3NSk6IC8qIHZwZXJtaTJ7 Yix3fSBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxf T1BDX0VWRVhfNjYoMHgwZjM4LCAweDdkKTogLyogdnBlcm10MntiLHd9IFt4eXpdbW0vbWVtLFt4 eXpdbW0sW3h5el1tbXtrfSAqLworICAgICAgICBpZiAoICFldmV4LncgKQorICAgICAgICAgICAg aG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyX3ZibWkpOworICAgICAgICBlbHNlCisgICAg ICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJidyk7CisgICAgICAgIGdlbmVy YXRlX2V4Y2VwdGlvbl9pZihldmV4LmJycywgRVhDX1VEKTsKKyAgICAgICAgZmF1bHRfc3VwcHJl c3Npb24gPSBmYWxzZTsKKyAgICAgICAgZ290byBhdng1MTJmX25vX3NhZTsKKwogICAgIGNhc2Ug WDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4NzgpOiAvKiB2cGJyb2FkY2FzdGIgeG1tL204 LFt4eXpdbW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDc5 KTogLyogdnBicm9hZGNhc3R3IHhtbS9tMTYsW3h5el1tbXtrfSAqLwogICAgICAgICBob3N0X2Fu ZF92Y3B1X211c3RfaGF2ZShhdng1MTJidyk7Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1 ZmVhdHVyZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oCkBAIC0xMDcs NiArMTA3LDcgQEAKICNkZWZpbmUgY3B1X2hhc19hdng1MTJ2bCAgICAgICAgYm9vdF9jcHVfaGFz KFg4Nl9GRUFUVVJFX0FWWDUxMlZMKQogCiAvKiBDUFVJRCBsZXZlbCAweDAwMDAwMDA3OjAuZWN4 ICovCisjZGVmaW5lIGNwdV9oYXNfYXZ4NTEyX3ZibWkgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVB VFVSRV9BVlg1MTJfVkJNSSkKICNkZWZpbmUgY3B1X2hhc19yZHBpZCAgICAgICAgICAgYm9vdF9j cHVfaGFzKFg4Nl9GRUFUVVJFX1JEUElEKQogCiAvKiBDUFVJRCBsZXZlbCAweDgwMDAwMDA3LmVk eCAqLwotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCisr KyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmgKQEAgLTIyNCw3 ICsyMjQsNyBAQCBYRU5fQ1BVRkVBVFVSRShBVlg1MTJWTCwgICAgICA1KjMyKzMxKSAvCiAKIC8q IEludGVsLWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBDUFVJRCBsZXZlbCAweDAwMDAwMDA3OjAuZWN4 LCB3b3JkIDYgKi8KIFhFTl9DUFVGRUFUVVJFKFBSRUZFVENIV1QxLCAgIDYqMzIrIDApIC8qQSAg UFJFRkVUQ0hXVDEgaW5zdHJ1Y3Rpb24gKi8KLVhFTl9DUFVGRUFUVVJFKEFWWDUxMlZCTUksICAg IDYqMzIrIDEpIC8qQSAgQVZYLTUxMiBWZWN0b3IgQnl0ZSBNYW5pcHVsYXRpb24gSW5zdHJzICov CitYRU5fQ1BVRkVBVFVSRShBVlg1MTJfVkJNSSwgICA2KjMyKyAxKSAvKkEgIEFWWC01MTIgVmVj dG9yIEJ5dGUgTWFuaXB1bGF0aW9uIEluc3RycyAqLwogWEVOX0NQVUZFQVRVUkUoVU1JUCwgICAg ICAgICAgNiozMisgMikgLypTICBVc2VyIE1vZGUgSW5zdHJ1Y3Rpb24gUHJldmVudGlvbiAqLwog WEVOX0NQVUZFQVRVUkUoUEtVLCAgICAgICAgICAgNiozMisgMykgLypIICBQcm90ZWN0aW9uIEtl eXMgZm9yIFVzZXJzcGFjZSAqLwogWEVOX0NQVUZFQVRVUkUoT1NQS0UsICAgICAgICAgNiozMisg NCkgLyohICBPUyBQcm90ZWN0aW9uIEtleXMgRW5hYmxlICovCi0tLSBhL3hlbi90b29scy9nZW4t Y3B1aWQucHkKKysrIGIveGVuL3Rvb2xzL2dlbi1jcHVpZC5weQpAQCAtMjU5LDEyICsyNTksMTcg QEAgZGVmIGNydW5jaF9udW1iZXJzKHN0YXRlKToKICAgICAgICAgQVZYMjogW0FWWDUxMkZdLAog CiAgICAgICAgICMgQVZYNTEyRiBpcyB0YWtlbiB0byBtZWFuIGhhcmR3YXJlIHN1cHBvcnQgZm9y IDUxMmJpdCByZWdpc3RlcnMKLSAgICAgICAgIyAod2hpY2ggaW4gcHJhY3RpY2UgZGVwZW5kcyBv biB0aGUgRVZFWCBwcmVmaXggdG8gZW5jb2RlKSwgYW5kIHRoZQotICAgICAgICAjIGluc3RydWN0 aW9ucyB0aGVtc2VsdmVzLiBBbGwgZnVydGhlciBBVlg1MTIgZmVhdHVyZXMgYXJlIGJ1aWx0IG9u Ci0gICAgICAgICMgdG9wIG9mIEFWWDUxMkYKKyAgICAgICAgIyAod2hpY2ggaW4gcHJhY3RpY2Ug ZGVwZW5kcyBvbiB0aGUgRVZFWCBwcmVmaXggdG8gZW5jb2RlKSBhcyB3ZWxsCisgICAgICAgICMg YXMgbWFzayByZWdpc3RlcnMsIGFuZCB0aGUgaW5zdHJ1Y3Rpb25zIHRoZW1zZWx2ZXMuIEFsbCBm dXJ0aGVyCisgICAgICAgICMgQVZYNTEyIGZlYXR1cmVzIGFyZSBidWlsdCBvbiB0b3Agb2YgQVZY NTEyRgogICAgICAgICBBVlg1MTJGOiBbQVZYNTEyRFEsIEFWWDUxMklGTUEsIEFWWDUxMlBGLCBB Vlg1MTJFUiwgQVZYNTEyQ0QsCi0gICAgICAgICAgICAgICAgICBBVlg1MTJCVywgQVZYNTEyVkws IEFWWDUxMlZCTUksIEFWWDUxMl80Vk5OSVcsCi0gICAgICAgICAgICAgICAgICBBVlg1MTJfNEZN QVBTLCBBVlg1MTJfVlBPUENOVERRXSwKKyAgICAgICAgICAgICAgICAgIEFWWDUxMkJXLCBBVlg1 MTJWTCwgQVZYNTEyXzRWTk5JVywgQVZYNTEyXzRGTUFQUywKKyAgICAgICAgICAgICAgICAgIEFW WDUxMl9WUE9QQ05URFFdLAorCisgICAgICAgICMgQVZYNTEyIGV4dGVuc2lvbnMgYWN0aW5nIHNv bGVseSBvbiB2ZWN0b3JzIG9mIGJ5dGVzL3dvcmRzIGFyZSBtYWRlCisgICAgICAgICMgZGVwZW5k ZW50cyBvZiBBVlg1MTJCVyAoYXMgdG8gcmVxdWlyaW5nIHdpZGVyIHRoYW4gMTYtYml0IG1hc2sK KyAgICAgICAgIyByZWdpc3RlcnMpLCBkZXNwaXRlIHRoZSBTRE0gbm90IGZvcm1hbGx5IG1ha2lu ZyB0aGlzIGNvbm5lY3Rpb24uCisgICAgICAgIEFWWDUxMkJXOiBbQVZYNTEyX1ZCTUldLAogCiAg ICAgICAgICMgVGhlIGZlYXR1cmVzOgogICAgICAgICAjICAgKiBTaW5nbGUgVGhyZWFkIEluZGly ZWN0IEJyYW5jaCBQcmVkaWN0b3JzCgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs