From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v8 14/50] x86emul: basic AVX512DQ testing Date: Fri, 15 Mar 2019 04:44:23 -0600 Message-ID: <5C8B8207020000780021F173@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 1h4kKA-0004t5-DN for xen-devel@lists.xenproject.org; Fri, 15 Mar 2019 10:44:26 +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 VGVzdCB2YXJpb3VzIG9mIHRoZSBpbnNucyB3aGljaCBoYXZlIGJlZW4gaW1wbGVtZW50ZWQgYWxy ZWFkeS4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0t CnY2OiBSZS1iYXNlLgp2NTogUmUtYmFzZSBvdmVyIGNoYW5nZXMgZWFybGllciBpbiB0aGUgc2Vy aWVzLgp2NDogV3JhcCBPVlIocG11bGxxKSBpbiBfX0FWWDUxMlZMX18gY29uZGl0aW9uYWwuCnYz OiBOZXcuCgotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvTWFrZWZpbGUKKysrIGIvdG9v bHMvdGVzdHMveDg2X2VtdWxhdG9yL01ha2VmaWxlCkBAIC0xNiw3ICsxNiw3IEBAIHZwYXRoICUu YyAkKFhFTl9ST09UKS94ZW4vbGliL3g4NgogCiBDRkxBR1MgKz0gJChDRkxBR1NfeGVuaW5jbHVk ZSkKIAotU0lNRCA6PSAzZG5vdyBzc2Ugc3NlMiBzc2U0IGF2eCBhdngyIHhvcCBhdng1MTJmIGF2 eDUxMmJ3CitTSU1EIDo9IDNkbm93IHNzZSBzc2UyIHNzZTQgYXZ4IGF2eDIgeG9wIGF2eDUxMmYg YXZ4NTEyYncgYXZ4NTEyZHEKIEZNQSA6PSBmbWE0IGZtYQogU0cgOj0gYXZ4Mi1zZwogVEVTVENB U0VTIDo9IGJsb3dmaXNoICQoU0lNRCkgJChGTUEpICQoU0cpCkBAIC02OSw5ICs2OSwxMiBAQCBh dng1MTJmLWZsdHMgOj0gNCA4CiBhdng1MTJidy12ZWNzIDo9ICQoYXZ4NTEyZi12ZWNzKQogYXZ4 NTEyYnctaW50cyA6PSAxIDIKIGF2eDUxMmJ3LWZsdHMgOj0KK2F2eDUxMmRxLXZlY3MgOj0gJChh dng1MTJmLXZlY3MpCithdng1MTJkcS1pbnRzIDo9ICQoYXZ4NTEyZi1pbnRzKQorYXZ4NTEyZHEt Zmx0cyA6PSAkKGF2eDUxMmYtZmx0cykKIAogYXZ4NTEyZi1vcG1hc2stdmVjcyA6PSAyCi1hdng1 MTJkcS1vcG1hc2stdmVjcyA6PSAxCithdng1MTJkcS1vcG1hc2stdmVjcyA6PSAxIDIKIGF2eDUx MmJ3LW9wbWFzay12ZWNzIDo9IDQgOAogCiAjIFN1cHByZXNzIGJ1aWxkaW5nIGJ5IGRlZmF1bHQg b2YgdGhlIGhhcm5lc3MgaWYgdGhlIGNvbXBpbGVyIGNhbid0IGRlYWwKLS0tIGEvdG9vbHMvdGVz dHMveDg2X2VtdWxhdG9yL3NpbWQuaAorKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2lt ZC5oCkBAIC0xMjEsNiArMTIxLDM0IEBAIHR5cGVkZWYgaW50IF9fYXR0cmlidXRlX18oKHZlY3Rv cl9zaXplKEUKIHR5cGVkZWYgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKEVJ R0hUSF9TSVpFKSkpIHZkaV9laWdodGhfdDsKICMgZW5kaWYKIAorIyBkZWZpbmUgREVDTF9QQUlS KHcpIFwKK3R5cGVkZWYgdyAjIyBfdCBwYWlyX3Q7IFwKK3R5cGVkZWYgdnNpXyAjIyB3ICMjIF90 IHZzaV9wYWlyX3Q7IFwKK3R5cGVkZWYgdmRpXyAjIyB3ICMjIF90IHZkaV9wYWlyX3QKKyMgZGVm aW5lIERFQ0xfUVVBUlRFVCh3KSBcCit0eXBlZGVmIHcgIyMgX3QgcXVhcnRldF90OyBcCit0eXBl ZGVmIHZzaV8gIyMgdyAjIyBfdCB2c2lfcXVhcnRldF90OyBcCit0eXBlZGVmIHZkaV8gIyMgdyAj IyBfdCB2ZGlfcXVhcnRldF90CisjIGRlZmluZSBERUNMX09DVEVUKHcpIFwKK3R5cGVkZWYgdyAj IyBfdCBvY3RldF90OyBcCit0eXBlZGVmIHZzaV8gIyMgdyAjIyBfdCB2c2lfb2N0ZXRfdDsgXAor dHlwZWRlZiB2ZGlfICMjIHcgIyMgX3QgdmRpX29jdGV0X3QKKworIyBpZiBFTEVNX0NPVU5UID09 IDQKK0RFQ0xfUEFJUihoYWxmKTsKKyMgZWxpZiBFTEVNX0NPVU5UID09IDgKK0RFQ0xfUEFJUihx dWFydGVyKTsKK0RFQ0xfUVVBUlRFVChoYWxmKTsKKyMgZWxpZiBFTEVNX0NPVU5UID09IDE2CitE RUNMX1BBSVIoZWlnaHRoKTsKK0RFQ0xfUVVBUlRFVChxdWFydGVyKTsKK0RFQ0xfT0NURVQoaGFs Zik7CisjIGVuZGlmCisKKyMgdW5kZWYgREVDTF9PQ1RFVAorIyB1bmRlZiBERUNMX1FVQVJURVQK KyMgdW5kZWYgREVDTF9QQUlSCisKICNlbmRpZgogCiAjaWYgVkVDX1NJWkUgPT0gMTYKQEAgLTE0 Niw2ICsxNzQsMTQgQEAgdHlwZWRlZiBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygodmVjdG9yXwog I2lmZGVmIF9fQVZYNTEyRl9fCiAKIC8qIFNhZGx5IHRoZXJlIGFyZSBhIGZldyBleGNlcHRpb25z IHRvIHRoZSBnZW5lcmFsIG5hbWluZyBydWxlcy4gKi8KKyMgZGVmaW5lIF9fYnVpbHRpbl9pYTMy X2Jyb2FkY2FzdGYzMng0XzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX2Jyb2FkY2FzdGYzMng0XzUx MgorIyBkZWZpbmUgX19idWlsdGluX2lhMzJfYnJvYWRjYXN0aTMyeDRfNTEyX21hc2sgX19idWls dGluX2lhMzJfYnJvYWRjYXN0aTMyeDRfNTEyCisjIGRlZmluZSBfX2J1aWx0aW5faWEzMl9pbnNl cnRmMzJ4NF81MTJfbWFzayBfX2J1aWx0aW5faWEzMl9pbnNlcnRmMzJ4NF9tYXNrCisjIGRlZmlu ZSBfX2J1aWx0aW5faWEzMl9pbnNlcnRmMzJ4OF81MTJfbWFzayBfX2J1aWx0aW5faWEzMl9pbnNl cnRmMzJ4OF9tYXNrCisjIGRlZmluZSBfX2J1aWx0aW5faWEzMl9pbnNlcnRmNjR4NF81MTJfbWFz ayBfX2J1aWx0aW5faWEzMl9pbnNlcnRmNjR4NF9tYXNrCisjIGRlZmluZSBfX2J1aWx0aW5faWEz Ml9pbnNlcnRpMzJ4NF81MTJfbWFzayBfX2J1aWx0aW5faWEzMl9pbnNlcnRpMzJ4NF9tYXNrCisj IGRlZmluZSBfX2J1aWx0aW5faWEzMl9pbnNlcnRpMzJ4OF81MTJfbWFzayBfX2J1aWx0aW5faWEz Ml9pbnNlcnRpMzJ4OF9tYXNrCisjIGRlZmluZSBfX2J1aWx0aW5faWEzMl9pbnNlcnRpNjR4NF81 MTJfbWFzayBfX2J1aWx0aW5faWEzMl9pbnNlcnRpNjR4NF9tYXNrCiAjIGRlZmluZSBfX2J1aWx0 aW5faWEzMl9zaHVmX2YzMng0XzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX3NodWZfZjMyeDRfbWFz awogIyBkZWZpbmUgX19idWlsdGluX2lhMzJfc2h1Zl9mNjR4Ml81MTJfbWFzayBfX2J1aWx0aW5f aWEzMl9zaHVmX2Y2NHgyX21hc2sKICMgZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3NodWZfaTMyeDRf NTEyX21hc2sgX19idWlsdGluX2lhMzJfc2h1Zl9pMzJ4NF9tYXNrCkBAIC0zMzEsNiArMzY3LDIw IEBAIE9WUihwdW5wY2tsd2QpOwogIyAgZW5kaWYKICMgZW5kaWYKIAorIyBpZmRlZiBfX0FWWDUx MkRRX18KK09WUl9WRlAoYW5kKTsKK09WUl9WRlAoYW5kbik7CitPVlJfVkZQKG9yKTsKK09WUihw ZXh0cmQpOworT1ZSKHBleHRycSk7CitPVlIocGluc3JkKTsKK09WUihwaW5zcnEpOworIyAgaWZk ZWYgX19BVlg1MTJWTF9fCitPVlIocG11bGxxKTsKKyMgIGVuZGlmCitPVlJfVkZQKHhvcik7Cisj IGVuZGlmCisKICMgdW5kZWYgT1ZSX1ZGUAogIyB1bmRlZiBPVlJfU0ZQCiAjIHVuZGVmIE9WUl9J TlQKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuYworKysgYi90b29scy90ZXN0 cy94ODZfZW11bGF0b3Ivc2ltZC5jCkBAIC0xMzksNiArMTM5LDI3IEBAIHN0YXRpYyBpbmxpbmUg Ym9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICMgZW5kaWYKICNlbGlmIGRlZmluZWQoRkxPQVRf U0laRSkgJiYgZGVmaW5lZChfX0FWWDUxMkZfXykgJiYgXAogICAgICAgKFZFQ19TSVpFID09IDY0 IHx8IGRlZmluZWQoX19BVlg1MTJWTF9fKSkKKyMgaWYgRUxFTV9DT1VOVCA9PSA4IC8qIHZleHRy YWN0ZnszMiw2NH14NCAqLyB8fCBcCisgICAgIChFTEVNX0NPVU5UID09IDE2ICYmIEVMRU1fU0la RSA9PSA0ICYmIGRlZmluZWQoX19BVlg1MTJEUV9fKSkgLyogdmV4dHJhY3RmMzJ4OCAqLyB8fCBc CisgICAgIChFTEVNX0NPVU5UID09IDQgJiYgRUxFTV9TSVpFID09IDggJiYgZGVmaW5lZChfX0FW WDUxMkRRX18pKSAvKiB2ZXh0cmFjdGY2NHgyICovCisjICBkZWZpbmUgbG93X2hhbGYoeCkgKHsg XAorICAgIGhhbGZfdCB0XzsgXAorICAgIGFzbSAoICJ2ZXh0cmFjdGYlY1t3XXglY1tuXSAkMCwg JVtzXSwgJVtkXSIgXAorICAgICAgICAgIDogW2RdICI9bSIgKHRfKSBcCisgICAgICAgICAgOiBb c10gInYiICh4KSwgW3ddICJpIiAoRUxFTV9TSVpFICogOCksIFtuXSAiaSIgKEVMRU1fQ09VTlQg LyAyKSApOyBcCisgICAgdF87IFwKK30pCisjIGVuZGlmCisjIGlmIChFTEVNX0NPVU5UID09IDE2 ICYmIEVMRU1fU0laRSA9PSA0KSAvKiB2ZXh0cmFjdGYzMng0ICovIHx8IFwKKyAgICAgKEVMRU1f Q09VTlQgPT0gOCAmJiBFTEVNX1NJWkUgPT0gOCAmJiBkZWZpbmVkKF9fQVZYNTEyRFFfXykpIC8q IHZleHRyYWN0ZjY0eDIgKi8KKyMgIGRlZmluZSBsb3dfcXVhcnRlcih4KSAoeyBcCisgICAgcXVh cnRlcl90IHRfOyBcCisgICAgYXNtICggInZleHRyYWN0ZiVjW3ddeCVjW25dICQwLCAlW3NdLCAl W2RdIiBcCisgICAgICAgICAgOiBbZF0gIj1tIiAodF8pIFwKKyAgICAgICAgICA6IFtzXSAidiIg KHgpLCBbd10gImkiIChFTEVNX1NJWkUgKiA4KSwgW25dICJpIiAoRUxFTV9DT1VOVCAvIDQpICk7 IFwKKyAgICB0XzsgXAorfSkKKyMgZW5kaWYKICMgaWYgRkxPQVRfU0laRSA9PSA0CiAjICBkZWZp bmUgYnJvYWRjYXN0KHgpICh7IFwKICAgICB2ZWNfdCB0XzsgXApAQCAtMTQ2LDYgKzE2NywxNyBA QCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAgICAgICAgICAgOiAi PXYiICh0XykgOiAibSIgKCooZmxvYXRbMV0peyB4IH0pICk7IFwKICAgICB0XzsgXAogfSkKKyMg IGlmIFZFQ19TSVpFID49IDMyICYmIGRlZmluZWQoX19BVlg1MTJEUV9fKQorIyAgIGRlZmluZSBi cm9hZGNhc3RfcGFpcih4KSAoeyBcCisgICAgdmVjX3QgdF87IFwKKyAgICBhc20gKCAidmJyb2Fk Y2FzdGYzMngyICUxLCAlMCIgOiAiPXYiICh0XykgOiAibSIgKHgpICk7IFwKKyAgICB0XzsgXAor fSkKKyMgIGVuZGlmCisjICBpZiBWRUNfU0laRSA9PSA2NCAmJiBkZWZpbmVkKF9fQVZYNTEyRFFf XykKKyMgICBkZWZpbmUgYnJvYWRjYXN0X29jdGV0KHgpIEIoYnJvYWRjYXN0ZjMyeDhfLCBfbWFz aywgeCwgdW5kZWYoKSwgfjApCisjICAgZGVmaW5lIGluc2VydF9vY3RldCh4LCB5LCBwKSBCKGlu c2VydGYzMng4XywgX21hc2ssIHgsIHksIHAsIHVuZGVmKCksIH4wKQorIyAgZW5kaWYKICMgIGRl ZmluZSBtYXgoeCwgeSkgQlJfKG1heHBzLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICBk ZWZpbmUgbWluKHgsIHkpIEJSXyhtaW5wcywgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQogIyAg ZGVmaW5lIG1peCh4LCB5KSBCKG1vdmFwcywgX21hc2ssIHgsIHksICgwYjAxMDEwMTAxMDEwMTAx MDEgJiBBTExfVFJVRSkpCkBAIC0xNTUsNiArMTg3LDEzIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBf dG9fYm9vbChieXRlX3ZlY190IGIKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSBCKHVu cGNrbHBzLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICAgZGVmaW5lIHN3YXAoeCkgQihz aHVmcHMsIF9tYXNrLCB4LCB4LCAwYjAwMDExMDExLCB1bmRlZigpLCB+MCkKICMgIGVsc2UKKyMg ICBkZWZpbmUgYnJvYWRjYXN0X3F1YXJ0ZXQoeCkgQihicm9hZGNhc3RmMzJ4NF8sIF9tYXNrLCB4 LCB1bmRlZigpLCB+MCkKKyMgICBkZWZpbmUgaW5zZXJ0X3BhaXIoeCwgeSwgcCkgXAorICAgIEIo aW5zZXJ0ZjMyeDRfLCBfbWFzaywgeCwgXAorICAgICAgLyogQ2FzdCBuZWVkZWQgYmVsb3cgdG8g d29yayBhcm91bmQgZ2NjIDcueCBxdWlyay4gKi8gXAorICAgICAgKHApICYgMSA/ICh0eXBlb2Yo eSkpX19idWlsdGluX2lhMzJfc2h1ZnBzKHksIHksIDBiMDEwMDAxMDApIDogKHkpLCBcCisgICAg ICAocCkgPj4gMSwgeCwgMyA8PCAoKHApICogMikpCisjICAgZGVmaW5lIGluc2VydF9xdWFydGV0 KHgsIHksIHApIEIoaW5zZXJ0ZjMyeDRfLCBfbWFzaywgeCwgeSwgcCwgdW5kZWYoKSwgfjApCiAj ICAgZGVmaW5lIGludGVybGVhdmVfaGkoeCwgeSkgQih2cGVybWkydmFycHMsIF9tYXNrLCB4LCBp bnRlcmxlYXZlX2hpLCB5LCB+MCkKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSBCKHZw ZXJtdDJ2YXJwcywgX21hc2ssIGludGVybGVhdmVfbG8sIHgsIHksIH4wKQogIyAgIGRlZmluZSBz d2FwKHgpICh7IFwKQEAgLTE3OCw2ICsyMTcsMTQgQEAgc3RhdGljIGlubGluZSBib29sIF90b19i b29sKGJ5dGVfdmVjX3QgYgogICAgIHRfOyBcCiB9KQogIyAgZW5kaWYKKyMgIGlmIFZFQ19TSVpF ID49IDMyICYmIGRlZmluZWQoX19BVlg1MTJEUV9fKQorIyAgIGRlZmluZSBicm9hZGNhc3RfcGFp cih4KSBCKGJyb2FkY2FzdGY2NHgyXywgX21hc2ssIHgsIHVuZGVmKCksIH4wKQorIyAgIGRlZmlu ZSBpbnNlcnRfcGFpcih4LCB5LCBwKSBCKGluc2VydGY2NHgyXywgX21hc2ssIHgsIHksIHAsIHVu ZGVmKCksIH4wKQorIyAgZW5kaWYKKyMgIGlmIFZFQ19TSVpFID09IDY0CisjICAgZGVmaW5lIGJy b2FkY2FzdF9xdWFydGV0KHgpIEIoYnJvYWRjYXN0ZjY0eDRfLCAsIHgsIHVuZGVmKCksIH4wKQor IyAgIGRlZmluZSBpbnNlcnRfcXVhcnRldCh4LCB5LCBwKSBCKGluc2VydGY2NHg0XywgX21hc2ss IHgsIHksIHAsIHVuZGVmKCksIH4wKQorIyAgZW5kaWYKICMgIGRlZmluZSBtYXgoeCwgeSkgQlJf KG1heHBkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICBkZWZpbmUgbWluKHgsIHkpIEJS XyhtaW5wZCwgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQogIyAgZGVmaW5lIG1peCh4LCB5KSBC KG1vdmFwZCwgX21hc2ssIHgsIHksIDBiMDEwMTAxMDEpCkBAIC0zMDYsNiArMzUzLDE2IEBAIHN0 YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICAgICB0XzsgXAogfSkKICMg ZW5kaWYKKyMgaWYgKEVMRU1fQ09VTlQgPT0gMTYgJiYgRUxFTV9TSVpFID09IDQpIC8qIHZleHRy YWN0aTMyeDQgKi8gfHwgXAorICAgICAgIChFTEVNX0NPVU5UID09IDggJiYgRUxFTV9TSVpFID09 IDggJiYgZGVmaW5lZChfX0FWWDUxMkRRX18pKSAvKiB2ZXh0cmFjdGk2NHgyICovCisjICBkZWZp bmUgbG93X3F1YXJ0ZXIoeCkgKHsgXAorICAgIHF1YXJ0ZXJfdCB0XzsgXAorICAgIGFzbSAoICJ2 ZXh0cmFjdGklY1t3XXglY1tuXSAkMCwgJVtzXSwgJVtkXSIgXAorICAgICAgICAgIDogW2RdICI9 bSIgKHRfKSBcCisgICAgICAgICAgOiBbc10gInYiICh4KSwgW3ddICJpIiAoRUxFTV9TSVpFICog OCksIFtuXSAiaSIgKEVMRU1fQ09VTlQgLyA0KSApOyBcCisgICAgdF87IFwKK30pCisjIGVuZGlm CiAjIGlmIElOVF9TSVpFID09IDQgfHwgVUlOVF9TSVpFID09IDQKICMgIGRlZmluZSBicm9hZGNh c3QoeCkgKHsgXAogICAgIHZlY190IHRfOyBcCkBAIC0zMTgsMTEgKzM3NSwzMCBAQCBzdGF0aWMg aW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAgICAgYXNtICggInZwYnJvYWRjYXN0 ZCAlazEsICUwIiA6ICI9diIgKHRfKSA6ICJyIiAoeCkgKTsgXAogICAgIHRfOyBcCiB9KQorIyAg aWZkZWYgX19BVlg1MTJEUV9fCisjICAgZGVmaW5lIGJyb2FkY2FzdF9wYWlyKHgpICh7IFwKKyAg ICB2ZWNfdCB0XzsgXAorICAgIGFzbSAoICJ2YnJvYWRjYXN0aTMyeDIgJTEsICUwIiA6ICI9diIg KHRfKSA6ICJtIiAoeCkgKTsgXAorICAgIHRfOyBcCit9KQorIyAgZW5kaWYKKyMgIGlmIFZFQ19T SVpFID09IDY0ICYmIGRlZmluZWQoX19BVlg1MTJEUV9fKQorIyAgIGRlZmluZSBicm9hZGNhc3Rf b2N0ZXQoeCkgKCh2ZWNfdClCKGJyb2FkY2FzdGkzMng4XywgX21hc2ssICh2c2lfb2N0ZXRfdCko eCksICh2c2lfdCl1bmRlZigpLCB+MCkpCisjICAgZGVmaW5lIGluc2VydF9vY3RldCh4LCB5LCBw KSAoKHZlY190KUIoaW5zZXJ0aTMyeDhfLCBfbWFzaywgKHZzaV90KSh4KSwgKHZzaV9vY3RldF90 KSh5KSwgcCwgKHZzaV90KXVuZGVmKCksIH4wKSkKKyMgIGVuZGlmCiAjICBpZiBWRUNfU0laRSA9 PSAxNgogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpICgodmVjX3QpQihwdW5wY2toZHEs IF9tYXNrLCAodnNpX3QpKHgpLCAodnNpX3QpKHkpLCAodnNpX3QpdW5kZWYoKSwgfjApKQogIyAg IGRlZmluZSBpbnRlcmxlYXZlX2xvKHgsIHkpICgodmVjX3QpQihwdW5wY2tsZHEsIF9tYXNrLCAo dnNpX3QpKHgpLCAodnNpX3QpKHkpLCAodnNpX3QpdW5kZWYoKSwgfjApKQogIyAgIGRlZmluZSBz d2FwKHgpICgodmVjX3QpQihwc2h1ZmQsIF9tYXNrLCAodnNpX3QpKHgpLCAwYjAwMDExMDExLCAo dnNpX3QpdW5kZWYoKSwgfjApKQogIyAgZWxzZQorIyAgIGRlZmluZSBicm9hZGNhc3RfcXVhcnRl dCh4KSAoKHZlY190KUIoYnJvYWRjYXN0aTMyeDRfLCBfbWFzaywgKHZzaV9xdWFydGV0X3QpKHgp LCAodnNpX3QpdW5kZWYoKSwgfjApKQorIyAgIGRlZmluZSBpbnNlcnRfcGFpcih4LCB5LCBwKSBc CisgICAgKHZlY190KShCKGluc2VydGkzMng0XywgX21hc2ssICh2c2lfdCkoeCksIFwKKyAgICAg ICAgICAgICAgLyogRmlyc3QgY2FzdCBuZWVkZWQgYmVsb3cgdG8gd29yayBhcm91bmQgZ2NjIDcu eCBxdWlyay4gKi8gXAorICAgICAgICAgICAgICAocCkgJiAxID8gKHZzaV9wYWlyX3QpX19idWls dGluX2lhMzJfcHNodWZkKCh2c2lfcGFpcl90KSh5KSwgMGIwMTAwMDEwMCkgXAorICAgICAgICAg ICAgICAgICAgICAgIDogKHZzaV9wYWlyX3QpKHkpLCBcCisgICAgICAgICAgICAgIChwKSA+PiAx LCAodnNpX3QpKHgpLCAzIDw8ICgocCkgKiAyKSkpCisjICAgZGVmaW5lIGluc2VydF9xdWFydGV0 KHgsIHksIHApICgodmVjX3QpQihpbnNlcnRpMzJ4NF8sIF9tYXNrLCAodnNpX3QpKHgpLCAodnNp X3F1YXJ0ZXRfdCkoeSksIHAsICh2c2lfdCl1bmRlZigpLCB+MCkpCiAjICAgZGVmaW5lIGludGVy bGVhdmVfaGkoeCwgeSkgKCh2ZWNfdClCKHZwZXJtaTJ2YXJkLCBfbWFzaywgKHZzaV90KSh4KSwg aW50ZXJsZWF2ZV9oaSwgKHZzaV90KSh5KSwgfjApKQogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2xv KHgsIHkpICgodmVjX3QpQih2cGVybXQydmFyZCwgX21hc2ssIGludGVybGVhdmVfbG8sICh2c2lf dCkoeCksICh2c2lfdCkoeSksIH4wKSkKICMgICBkZWZpbmUgc3dhcCh4KSAoKHZlY190KUIocHNo dWZkLCBfbWFzaywgXApAQCAtMzQ3LDYgKzQyMywxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3Rv X2Jvb2woYnl0ZV92ZWNfdCBiCiAgICAgdF87IFwKIH0pCiAjICBlbmRpZgorIyAgaWYgVkVDX1NJ WkUgPj0gMzIgJiYgZGVmaW5lZChfX0FWWDUxMkRRX18pCisjICAgZGVmaW5lIGJyb2FkY2FzdF9w YWlyKHgpICgodmVjX3QpQihicm9hZGNhc3RpNjR4Ml8sIF9tYXNrLCAodmRpX3BhaXJfdCkoeCks ICh2ZGlfdCl1bmRlZigpLCB+MCkpCisjICAgZGVmaW5lIGluc2VydF9wYWlyKHgsIHksIHApICgo dmVjX3QpQihpbnNlcnRpNjR4Ml8sIF9tYXNrLCAodmRpX3QpKHgpLCAodmRpX3BhaXJfdCkoeSks IHAsICh2ZGlfdCl1bmRlZigpLCB+MCkpCisjICBlbmRpZgorIyAgaWYgVkVDX1NJWkUgPT0gNjQK KyMgICBkZWZpbmUgYnJvYWRjYXN0X3F1YXJ0ZXQoeCkgKCh2ZWNfdClCKGJyb2FkY2FzdGk2NHg0 XywgLCAodmRpX3F1YXJ0ZXRfdCkoeCksICh2ZGlfdCl1bmRlZigpLCB+MCkpCisjICAgZGVmaW5l IGluc2VydF9xdWFydGV0KHgsIHksIHApICgodmVjX3QpQihpbnNlcnRpNjR4NF8sIF9tYXNrLCAo dmRpX3QpKHgpLCAodmRpX3F1YXJ0ZXRfdCkoeSksIHAsICh2ZGlfdCl1bmRlZigpLCB+MCkpCisj ICBlbmRpZgogIyAgaWYgVkVDX1NJWkUgPT0gMTYKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4 LCB5KSAoKHZlY190KUIocHVucGNraHFkcSwgX21hc2ssICh2ZGlfdCkoeCksICh2ZGlfdCkoeSks ICh2ZGlfdCl1bmRlZigpLCB+MCkpCiAjICAgZGVmaW5lIGludGVybGVhdmVfbG8oeCwgeSkgKCh2 ZWNfdClCKHB1bnBja2xxZHEsIF9tYXNrLCAodmRpX3QpKHgpLCAodmRpX3QpKHkpLCAodmRpX3Qp dW5kZWYoKSwgfjApKQpAQCAtODk4LDcgKzk4Miw3IEBAIHN0YXRpYyBpbmxpbmUgZWlnaHRoX3Qg bG93X2VpZ2h0aCh2ZWNfdAogICAgIGVpZ2h0aF90IHk7CiAgICAgdW5zaWduZWQgaW50IGk7CiAK LSAgICBmb3IgKCBpID0gMDsgaSA8IEVMRU1fQ09VTlQgLyA0OyArK2kgKQorICAgIGZvciAoIGkg PSAwOyBpIDwgRUxFTV9DT1VOVCAvIDg7ICsraSApCiAgICAgICAgIHlbaV0gPSB4W2ldOwogCiAg ICAgcmV0dXJuIHk7CkBAIC05MTAsNiArOTk0LDUwIEBAIHN0YXRpYyBpbmxpbmUgZWlnaHRoX3Qg bG93X2VpZ2h0aCh2ZWNfdAogCiAjZW5kaWYKIAorI2lmZGVmIGJyb2FkY2FzdF9wYWlyCisjIGlm IEVMRU1fQ09VTlQgPT0gNAorIyAgZGVmaW5lIGJyb2FkY2FzdF9oYWxmIGJyb2FkY2FzdF9wYWly CisjIGVsaWYgRUxFTV9DT1VOVCA9PSA4CisjICBkZWZpbmUgYnJvYWRjYXN0X3F1YXJ0ZXIgYnJv YWRjYXN0X3BhaXIKKyMgZWxpZiBFTEVNX0NPVU5UID09IDE2CisjICBkZWZpbmUgYnJvYWRjYXN0 X2VpZ2h0aCBicm9hZGNhc3RfcGFpcgorIyBlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBpbnNlcnRf cGFpcgorIyBpZiBFTEVNX0NPVU5UID09IDQKKyMgIGRlZmluZSBpbnNlcnRfaGFsZiBpbnNlcnRf cGFpcgorIyBlbGlmIEVMRU1fQ09VTlQgPT0gOAorIyAgZGVmaW5lIGluc2VydF9xdWFydGVyIGlu c2VydF9wYWlyCisjIGVsaWYgRUxFTV9DT1VOVCA9PSAxNgorIyAgZGVmaW5lIGluc2VydF9laWdo dGggaW5zZXJ0X3BhaXIKKyMgZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgYnJvYWRjYXN0X3F1YXJ0 ZXQKKyMgaWYgRUxFTV9DT1VOVCA9PSA4CisjICBkZWZpbmUgYnJvYWRjYXN0X2hhbGYgYnJvYWRj YXN0X3F1YXJ0ZXQKKyMgZWxpZiBFTEVNX0NPVU5UID09IDE2CisjICBkZWZpbmUgYnJvYWRjYXN0 X3F1YXJ0ZXIgYnJvYWRjYXN0X3F1YXJ0ZXQKKyMgZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgaW5z ZXJ0X3F1YXJ0ZXQKKyMgaWYgRUxFTV9DT1VOVCA9PSA4CisjICBkZWZpbmUgaW5zZXJ0X2hhbGYg aW5zZXJ0X3F1YXJ0ZXQKKyMgZWxpZiBFTEVNX0NPVU5UID09IDE2CisjICBkZWZpbmUgaW5zZXJ0 X3F1YXJ0ZXIgaW5zZXJ0X3F1YXJ0ZXQKKyMgZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChi cm9hZGNhc3Rfb2N0ZXQpICYmIEVMRU1fQ09VTlQgPT0gMTYKKyMgZGVmaW5lIGJyb2FkY2FzdF9o YWxmIGJyb2FkY2FzdF9vY3RldAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKGluc2VydF9vY3RldCkg JiYgRUxFTV9DT1VOVCA9PSAxNgorIyBkZWZpbmUgaW5zZXJ0X2hhbGYgaW5zZXJ0X29jdGV0Cisj ZW5kaWYKKwogI2lmIGRlZmluZWQoX19BVlg1MTJGX18pICYmIGRlZmluZWQoRkxPQVRfU0laRSkK ICMgaW5jbHVkZSAic2ltZC1mbWEuYyIKICNlbmRpZgpAQCAtMTIwNSw2ICsxMzMzLDYwIEBAIGlu dCBzaW1kX3Rlc3Qodm9pZCkKICAgICBpZiAoICFlcShicm9hZGNhc3QyKEVMRU1fQ09VTlQgKyAx KSwgc3JjICsgaW52KSApIHJldHVybiBfX0xJTkVfXzsKICNlbmRpZgogCisjaWYgZGVmaW5lZChi cm9hZGNhc3RfaGFsZikgJiYgZGVmaW5lZChpbnNlcnRfaGFsZikKKyAgICB7CisgICAgICAgIGhh bGZfdCBhdXggPSBsb3dfaGFsZihzcmMpOworCisgICAgICAgIHRvdWNoKGF1eCk7CisgICAgICAg IHggPSBicm9hZGNhc3RfaGFsZihhdXgpOworICAgICAgICB0b3VjaChhdXgpOworICAgICAgICB5 ID0gaW5zZXJ0X2hhbGYoc3JjLCBhdXgsIDEpOworICAgICAgICBpZiAoICFlcSh4LCB5KSApIHJl dHVybiBfX0xJTkVfXzsKKyAgICB9CisjZW5kaWYKKworI2lmIGRlZmluZWQoYnJvYWRjYXN0X3F1 YXJ0ZXIpICYmIGRlZmluZWQoaW5zZXJ0X3F1YXJ0ZXIpCisgICAgeworICAgICAgICBxdWFydGVy X3QgYXV4ID0gbG93X3F1YXJ0ZXIoc3JjKTsKKworICAgICAgICB0b3VjaChhdXgpOworICAgICAg ICB4ID0gYnJvYWRjYXN0X3F1YXJ0ZXIoYXV4KTsKKyAgICAgICAgdG91Y2goYXV4KTsKKyAgICAg ICAgeSA9IGluc2VydF9xdWFydGVyKHNyYywgYXV4LCAxKTsKKyAgICAgICAgdG91Y2goYXV4KTsK KyAgICAgICAgeSA9IGluc2VydF9xdWFydGVyKHksIGF1eCwgMik7CisgICAgICAgIHRvdWNoKGF1 eCk7CisgICAgICAgIHkgPSBpbnNlcnRfcXVhcnRlcih5LCBhdXgsIDMpOworICAgICAgICBpZiAo ICFlcSh4LCB5KSApIHJldHVybiBfX0xJTkVfXzsKKyAgICB9CisjZW5kaWYKKworI2lmIGRlZmlu ZWQoYnJvYWRjYXN0X2VpZ2h0aCkgJiYgZGVmaW5lZChpbnNlcnRfZWlnaHRoKSAmJiBcCisgICAg LyogQXQgbGVhc3QgZ2NjIDcuMyAib3B0aW1pemVzIiBhd2F5IGFsbCBpbnNlcnRfZWlnaHRoKCkg Y2FsbHMgYmVsb3cuICovIFwKKyAgICBfX0dOVUNfXyA+PSA4CisgICAgeworICAgICAgICBlaWdo dGhfdCBhdXggPSBsb3dfZWlnaHRoKHNyYyk7CisKKyAgICAgICAgdG91Y2goYXV4KTsKKyAgICAg ICAgeCA9IGJyb2FkY2FzdF9laWdodGgoYXV4KTsKKyAgICAgICAgdG91Y2goYXV4KTsKKyAgICAg ICAgeSA9IGluc2VydF9laWdodGgoc3JjLCBhdXgsIDEpOworICAgICAgICB0b3VjaChhdXgpOwor ICAgICAgICB5ID0gaW5zZXJ0X2VpZ2h0aCh5LCBhdXgsIDIpOworICAgICAgICB0b3VjaChhdXgp OworICAgICAgICB5ID0gaW5zZXJ0X2VpZ2h0aCh5LCBhdXgsIDMpOworICAgICAgICB0b3VjaChh dXgpOworICAgICAgICB5ID0gaW5zZXJ0X2VpZ2h0aCh5LCBhdXgsIDQpOworICAgICAgICB0b3Vj aChhdXgpOworICAgICAgICB5ID0gaW5zZXJ0X2VpZ2h0aCh5LCBhdXgsIDUpOworICAgICAgICB0 b3VjaChhdXgpOworICAgICAgICB5ID0gaW5zZXJ0X2VpZ2h0aCh5LCBhdXgsIDYpOworICAgICAg ICB0b3VjaChhdXgpOworICAgICAgICB5ID0gaW5zZXJ0X2VpZ2h0aCh5LCBhdXgsIDcpOworICAg ICAgICBpZiAoICFlcSh4LCB5KSApIHJldHVybiBfX0xJTkVfXzsKKyAgICB9CisjZW5kaWYKKwog I2lmIGRlZmluZWQoaW50ZXJsZWF2ZV9sbykgJiYgZGVmaW5lZChpbnRlcmxlYXZlX2hpKQogICAg IHRvdWNoKHNyYyk7CiAgICAgeCA9IGludGVybGVhdmVfbG8oaW52LCBzcmMpOwotLS0gYS90b29s cy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11bGF0b3IuYworKysgYi90b29scy90ZXN0 cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11bGF0b3IuYwpAQCAtMjMsNiArMjMsNyBAQCBhc20g KCAiLnB1c2hzZWN0aW9uIC50ZXN0LCBcImF4XCIsIEBwcm9nCiAjaW5jbHVkZSAiYXZ4NTEyYnct b3BtYXNrLmgiCiAjaW5jbHVkZSAiYXZ4NTEyZi5oIgogI2luY2x1ZGUgImF2eDUxMmJ3LmgiCisj aW5jbHVkZSAiYXZ4NTEyZHEuaCIKIAogI2RlZmluZSB2ZXJib3NlIGZhbHNlIC8qIFN3aXRjaCB0 byB0cnVlIGZvciBmYXIgbW9yZSBsb2dnaW5nLiAqLwogCkBAIC0xMDAsNiArMTAxLDExIEBAIHN0 YXRpYyBib29sIHNpbWRfY2hlY2tfYXZ4NTEyZHEodm9pZCkKIH0KICNkZWZpbmUgc2ltZF9jaGVj a19hdng1MTJkcV9vcG1hc2sgc2ltZF9jaGVja19hdng1MTJkcQogCitzdGF0aWMgYm9vbCBzaW1k X2NoZWNrX2F2eDUxMmRxX3ZsKHZvaWQpCit7CisgICAgcmV0dXJuIGNwdV9oYXNfYXZ4NTEyZHEg JiYgY3B1X2hhc19hdng1MTJ2bDsKK30KKwogc3RhdGljIGJvb2wgc2ltZF9jaGVja19hdng1MTJi dyh2b2lkKQogewogICAgIHJldHVybiBjcHVfaGFzX2F2eDUxMmJ3OwpAQCAtMjY3LDkgKzI3Mywx MCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKICAgICBTSU1EKFhPUCBpMzJ4OCwgICAgICAgICAg ICAgICB4b3AsICAgICAgMzJpNCksCiAgICAgU0lNRChYT1AgaTY0eDQsICAgICAgICAgICAgICAg eG9wLCAgICAgIDMyaTgpLAogICAgIFNJTUQoT1BNQVNLL3csICAgICBhdng1MTJmX29wbWFzaywg ICAgICAgICAyKSwKLSAgICBTSU1EKE9QTUFTSy9iLCAgICBhdng1MTJkcV9vcG1hc2ssICAgICAg ICAgMSksCi0gICAgU0lNRChPUE1BU0svZCwgICAgYXZ4NTEyYndfb3BtYXNrLCAgICAgICAgIDQp LAotICAgIFNJTUQoT1BNQVNLL3EsICAgIGF2eDUxMmJ3X29wbWFzaywgICAgICAgICA4KSwKKyAg ICBTSU1EKE9QTUFTSytEUS9iLCBhdng1MTJkcV9vcG1hc2ssICAgICAgICAgMSksCisgICAgU0lN RChPUE1BU0srRFEvdywgYXZ4NTEyZHFfb3BtYXNrLCAgICAgICAgIDIpLAorICAgIFNJTUQoT1BN QVNLK0JXL2QsIGF2eDUxMmJ3X29wbWFzaywgICAgICAgICA0KSwKKyAgICBTSU1EKE9QTUFTSytC Vy9xLCBhdng1MTJid19vcG1hc2ssICAgICAgICAgOCksCiAgICAgU0lNRChBVlg1MTJGIGYzMiBz Y2FsYXIsICBhdng1MTJmLCAgICAgICAgZjQpLAogICAgIFNJTUQoQVZYNTEyRiBmMzJ4MTYsICAg ICAgYXZ4NTEyZiwgICAgICA2NGY0KSwKICAgICBTSU1EKEFWWDUxMkYgZjY0IHNjYWxhciwgIGF2 eDUxMmYsICAgICAgICBmOCksCkBAIC0zMDIsNiArMzA5LDI0IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgewogICAgIEFWWDUxMlZMKEJXK1ZMIHUxNng4LCAgICBhdng1MTJidywgICAgICAxNnUyKSwK ICAgICBBVlg1MTJWTChCVytWTCBzMTZ4MTYsICAgYXZ4NTEyYncsICAgICAgMzJpMiksCiAgICAg QVZYNTEyVkwoQlcrVkwgdTE2eDE2LCAgIGF2eDUxMmJ3LCAgICAgIDMydTIpLAorICAgIFNJTUQo QVZYNTEyRFEgZjMyeDE2LCAgICBhdng1MTJkcSwgICAgICA2NGY0KSwKKyAgICBTSU1EKEFWWDUx MkRRIGY2NHg4LCAgICAgYXZ4NTEyZHEsICAgICAgNjRmOCksCisgICAgU0lNRChBVlg1MTJEUSBz MzJ4MTYsICAgIGF2eDUxMmRxLCAgICAgIDY0aTQpLAorICAgIFNJTUQoQVZYNTEyRFEgdTMyeDE2 LCAgICBhdng1MTJkcSwgICAgICA2NHU0KSwKKyAgICBTSU1EKEFWWDUxMkRRIHM2NHg4LCAgICAg YXZ4NTEyZHEsICAgICAgNjRpOCksCisgICAgU0lNRChBVlg1MTJEUSB1NjR4OCwgICAgIGF2eDUx MmRxLCAgICAgIDY0dTgpLAorICAgIEFWWDUxMlZMKERRK1ZMIGYzMng0LCAgICBhdng1MTJkcSwg ICAgICAxNmY0KSwKKyAgICBBVlg1MTJWTChEUStWTCBmNjR4MiwgICAgYXZ4NTEyZHEsICAgICAg MTZmOCksCisgICAgQVZYNTEyVkwoRFErVkwgZjMyeDgsICAgIGF2eDUxMmRxLCAgICAgIDMyZjQp LAorICAgIEFWWDUxMlZMKERRK1ZMIGY2NHg0LCAgICBhdng1MTJkcSwgICAgICAzMmY4KSwKKyAg ICBBVlg1MTJWTChEUStWTCBzMzJ4NCwgICAgYXZ4NTEyZHEsICAgICAgMTZpNCksCisgICAgQVZY NTEyVkwoRFErVkwgdTMyeDQsICAgIGF2eDUxMmRxLCAgICAgIDE2dTQpLAorICAgIEFWWDUxMlZM KERRK1ZMIHMzMng4LCAgICBhdng1MTJkcSwgICAgICAzMmk0KSwKKyAgICBBVlg1MTJWTChEUStW TCB1MzJ4OCwgICAgYXZ4NTEyZHEsICAgICAgMzJ1NCksCisgICAgQVZYNTEyVkwoRFErVkwgczY0 eDIsICAgIGF2eDUxMmRxLCAgICAgIDE2aTgpLAorICAgIEFWWDUxMlZMKERRK1ZMIHU2NHgyLCAg ICBhdng1MTJkcSwgICAgICAxNnU4KSwKKyAgICBBVlg1MTJWTChEUStWTCBzNjR4NCwgICAgYXZ4 NTEyZHEsICAgICAgMzJpOCksCisgICAgQVZYNTEyVkwoRFErVkwgdTY0eDQsICAgIGF2eDUxMmRx LCAgICAgIDMydTgpLAogI3VuZGVmIEFWWDUxMlZMXwogI3VuZGVmIEFWWDUxMlZMCiAjdW5kZWYg U0lNRF8KCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=