From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v4 34/44] x86emul: basic AVX512DQ testing Date: Tue, 25 Sep 2018 07:48:01 -0600 Message-ID: <5BAA3C9102000078001EBB5D@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BAA34B502000078001EB9B6@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g4nhC-0000nN-4w for xen-devel@lists.xenproject.org; Tue, 25 Sep 2018 13:48:10 +0000 In-Reply-To: <5BAA34B502000078001EB9B6@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 List-Id: xen-devel@lists.xenproject.org VGVzdCB2YXJpb3VzIG9mIHRoZSBpbnNucyB3aGljaCBoYXZlIGJlZW4gaW1wbGVtZW50ZWQgYWxy ZWFkeS4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0t CnY0OiBXcmFwIE9WUihwbXVsbHEpIGluIF9fQVZYNTEyVkxfXyBjb25kaXRpb25hbC4KdjM6IE5l dy4KCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9NYWtlZmlsZQorKysgYi90b29scy90 ZXN0cy94ODZfZW11bGF0b3IvTWFrZWZpbGUKQEAgLTEzLDcgKzEzLDcgQEAgYWxsOiAkKFRBUkdF VCkKIHJ1bjogJChUQVJHRVQpCiAJLi8kKFRBUkdFVCkKIAotU0lNRCA6PSAzZG5vdyBzc2Ugc3Nl MiBzc2U0IGF2eCBhdngyIHhvcCBhdng1MTJmIGF2eDUxMmJ3CitTSU1EIDo9IDNkbm93IHNzZSBz c2UyIHNzZTQgYXZ4IGF2eDIgeG9wIGF2eDUxMmYgYXZ4NTEyYncgYXZ4NTEyZHEKIEZNQSA6PSBm bWE0IGZtYQogU0cgOj0gYXZ4Mi1zZwogVEVTVENBU0VTIDo9IGJsb3dmaXNoICQoU0lNRCkgJChG TUEpICQoU0cpCkBAIC02Niw5ICs2NiwxMiBAQCBhdng1MTJmLWZsdHMgOj0gNCA4CiBhdng1MTJi dy12ZWNzIDo9ICQoYXZ4NTEyZi12ZWNzKQogYXZ4NTEyYnctaW50cyA6PSAxIDIKIGF2eDUxMmJ3 LWZsdHMgOj0KK2F2eDUxMmRxLXZlY3MgOj0gJChhdng1MTJmLXZlY3MpCithdng1MTJkcS1pbnRz IDo9ICQoYXZ4NTEyZi1pbnRzKQorYXZ4NTEyZHEtZmx0cyA6PSAkKGF2eDUxMmYtZmx0cykKIAog YXZ4NTEyZi1vcG1hc2stdmVjcyA6PSAyCi1hdng1MTJkcS1vcG1hc2stdmVjcyA6PSAxCithdng1 MTJkcS1vcG1hc2stdmVjcyA6PSAxIDIKIGF2eDUxMmJ3LW9wbWFzay12ZWNzIDo9IDQgOAogCiAj IEZvciBBVlggYW5kIGxhdGVyLCBoYXZlIHRoZSBjb21waWxlciBhdm9pZCBYTU0wIHRvIHdpZGVu IGNvdmVyYWdlIG9mCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmgKKysrIGIv dG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuaApAQCAtMTIxLDYgKzEyMSwzNCBAQCB0eXBl ZGVmIGludCBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZShFCiB0eXBlZGVmIGxvbmcgbG9uZyBf X2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZShFSUdIVEhfU0laRSkpKSB2ZGlfZWlnaHRoX3Q7CiAj IGVuZGlmCiAKKyMgZGVmaW5lIERFQ0xfUEFJUih3KSBcCit0eXBlZGVmIHcgIyMgX3QgcGFpcl90 OyBcCit0eXBlZGVmIHZzaV8gIyMgdyAjIyBfdCB2c2lfcGFpcl90OyBcCit0eXBlZGVmIHZkaV8g IyMgdyAjIyBfdCB2ZGlfcGFpcl90CisjIGRlZmluZSBERUNMX1FVQVJURVQodykgXAordHlwZWRl ZiB3ICMjIF90IHF1YXJ0ZXRfdDsgXAordHlwZWRlZiB2c2lfICMjIHcgIyMgX3QgdnNpX3F1YXJ0 ZXRfdDsgXAordHlwZWRlZiB2ZGlfICMjIHcgIyMgX3QgdmRpX3F1YXJ0ZXRfdAorIyBkZWZpbmUg REVDTF9PQ1RFVCh3KSBcCit0eXBlZGVmIHcgIyMgX3Qgb2N0ZXRfdDsgXAordHlwZWRlZiB2c2lf ICMjIHcgIyMgX3QgdnNpX29jdGV0X3Q7IFwKK3R5cGVkZWYgdmRpXyAjIyB3ICMjIF90IHZkaV9v Y3RldF90CisKKyMgaWYgRUxFTV9DT1VOVCA9PSA0CitERUNMX1BBSVIoaGFsZik7CisjIGVsaWYg RUxFTV9DT1VOVCA9PSA4CitERUNMX1BBSVIocXVhcnRlcik7CitERUNMX1FVQVJURVQoaGFsZik7 CisjIGVsaWYgRUxFTV9DT1VOVCA9PSAxNgorREVDTF9QQUlSKGVpZ2h0aCk7CitERUNMX1FVQVJU RVQocXVhcnRlcik7CitERUNMX09DVEVUKGhhbGYpOworIyBlbmRpZgorCisjIHVuZGVmIERFQ0xf T0NURVQKKyMgdW5kZWYgREVDTF9RVUFSVEVUCisjIHVuZGVmIERFQ0xfUEFJUgorCiAjZW5kaWYK IAogI2lmIFZFQ19TSVpFID09IDE2CkBAIC0xNDYsNiArMTc0LDE0IEBAIHR5cGVkZWYgbG9uZyBs b25nIF9fYXR0cmlidXRlX18oKHZlY3Rvcl8KICNpZmRlZiBfX0FWWDUxMkZfXwogCiAvKiBTYWRs eSB0aGVyZSBhcmUgYSBmZXcgZXhjZXB0aW9ucyB0byB0aGUgZ2VuZXJhbCBuYW1pbmcgcnVsZXMu ICovCisjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX2Jyb2FkY2FzdGYzMng0XzUxMl9tYXNrIF9fYnVp bHRpbl9pYTMyX2Jyb2FkY2FzdGYzMng0XzUxMgorI2RlZmluZSBfX2J1aWx0aW5faWEzMl9icm9h ZGNhc3RpMzJ4NF81MTJfbWFzayBfX2J1aWx0aW5faWEzMl9icm9hZGNhc3RpMzJ4NF81MTIKKyNk ZWZpbmUgX19idWlsdGluX2lhMzJfaW5zZXJ0ZjMyeDRfNTEyX21hc2sgX19idWlsdGluX2lhMzJf aW5zZXJ0ZjMyeDRfbWFzaworI2RlZmluZSBfX2J1aWx0aW5faWEzMl9pbnNlcnRmMzJ4OF81MTJf bWFzayBfX2J1aWx0aW5faWEzMl9pbnNlcnRmMzJ4OF9tYXNrCisjZGVmaW5lIF9fYnVpbHRpbl9p YTMyX2luc2VydGY2NHg0XzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX2luc2VydGY2NHg0X21hc2sK KyNkZWZpbmUgX19idWlsdGluX2lhMzJfaW5zZXJ0aTMyeDRfNTEyX21hc2sgX19idWlsdGluX2lh MzJfaW5zZXJ0aTMyeDRfbWFzaworI2RlZmluZSBfX2J1aWx0aW5faWEzMl9pbnNlcnRpMzJ4OF81 MTJfbWFzayBfX2J1aWx0aW5faWEzMl9pbnNlcnRpMzJ4OF9tYXNrCisjZGVmaW5lIF9fYnVpbHRp bl9pYTMyX2luc2VydGk2NHg0XzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX2luc2VydGk2NHg0X21h c2sKICNkZWZpbmUgX19idWlsdGluX2lhMzJfc2h1Zl9mMzJ4NF81MTJfbWFzayBfX2J1aWx0aW5f aWEzMl9zaHVmX2YzMng0X21hc2sKICNkZWZpbmUgX19idWlsdGluX2lhMzJfc2h1Zl9mNjR4Ml81 MTJfbWFzayBfX2J1aWx0aW5faWEzMl9zaHVmX2Y2NHgyX21hc2sKICNkZWZpbmUgX19idWlsdGlu X2lhMzJfc2h1Zl9pMzJ4NF81MTJfbWFzayBfX2J1aWx0aW5faWEzMl9zaHVmX2kzMng0X21hc2sK QEAgLTMzMSw2ICszNjcsMjAgQEAgT1ZSKHNybGRxKTsKICMgZW5kaWYKICNlbmRpZgogCisjaWZk ZWYgX19BVlg1MTJEUV9fCitPVlJfVkZQKGFuZCk7CitPVlJfVkZQKGFuZG4pOworT1ZSX1ZGUChv cik7CitPVlIocGV4dHJkKTsKK09WUihwZXh0cnEpOworT1ZSKHBpbnNyZCk7CitPVlIocGluc3Jx KTsKKyMgaWZkZWYgX19BVlg1MTJWTF9fCitPVlIocG11bGxxKTsKKyMgZW5kaWYKK09WUl9WRlAo eG9yKTsKKyNlbmRpZgorCiAjdW5kZWYgT1ZSX1ZGUAogI3VuZGVmIE9WUl9TRlAKICN1bmRlZiBP VlJfSU5UCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmMKKysrIGIvdG9vbHMv dGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuYwpAQCAtMTM0LDYgKzEzNCwyNyBAQCBzdGF0aWMgaW5s aW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAjZWxpZiBkZWZpbmVkKEZMT0FUX1NJWkUp ICYmIGRlZmluZWQoX19BVlg1MTJGX18pICYmIFwKICAgICAgIChWRUNfU0laRSA9PSA2NCB8fCBk ZWZpbmVkKF9fQVZYNTEyVkxfXykpCiAjIGlmIFZFQ19TSVpFID4gRkxPQVRfU0laRQorIyAgaWYg RUxFTV9DT1VOVCA9PSA4IC8qIHZleHRyYWN0ZnszMiw2NH14NCAqLyB8fCBcCisgICAgICAgKEVM RU1fQ09VTlQgPT0gMTYgJiYgRUxFTV9TSVpFID09IDQgJiYgZGVmaW5lZChfX0FWWDUxMkRRX18p KSAvKiB2ZXh0cmFjdGYzMng4ICovIHx8IFwKKyAgICAgICAoRUxFTV9DT1VOVCA9PSA0ICYmIEVM RU1fU0laRSA9PSA4ICYmIGRlZmluZWQoX19BVlg1MTJEUV9fKSkgLyogdmV4dHJhY3RmNjR4MiAq LworIyAgIGRlZmluZSBsb3dfaGFsZih4KSAoeyBcCisgICAgaGFsZl90IHRfOyBcCisgICAgYXNt ICggInZleHRyYWN0ZiVjW3ddeCVjW25dICQwLCAlW3NdLCAlW2RdIiBcCisgICAgICAgICAgOiBb ZF0gIj1tIiAodF8pIFwKKyAgICAgICAgICA6IFtzXSAidiIgKHgpLCBbd10gImkiIChFTEVNX1NJ WkUgKiA4KSwgW25dICJpIiAoRUxFTV9DT1VOVCAvIDIpICk7IFwKKyAgICB0XzsgXAorfSkKKyMg IGVuZGlmCisjICBpZiAoRUxFTV9DT1VOVCA9PSAxNiAmJiBFTEVNX1NJWkUgPT0gNCkgLyogdmV4 dHJhY3RmMzJ4NCAqLyB8fCBcCisgICAgICAgKEVMRU1fQ09VTlQgPT0gOCAmJiBFTEVNX1NJWkUg PT0gOCAmJiBkZWZpbmVkKF9fQVZYNTEyRFFfXykpIC8qIHZleHRyYWN0ZjY0eDIgKi8KKyMgICBk ZWZpbmUgbG93X3F1YXJ0ZXIoeCkgKHsgXAorICAgIHF1YXJ0ZXJfdCB0XzsgXAorICAgIGFzbSAo ICJ2ZXh0cmFjdGYlY1t3XXglY1tuXSAkMCwgJVtzXSwgJVtkXSIgXAorICAgICAgICAgIDogW2Rd ICI9bSIgKHRfKSBcCisgICAgICAgICAgOiBbc10gInYiICh4KSwgW3ddICJpIiAoRUxFTV9TSVpF ICogOCksIFtuXSAiaSIgKEVMRU1fQ09VTlQgLyA0KSApOyBcCisgICAgdF87IFwKK30pCisjICBl bmRpZgogIyAgaWYgRkxPQVRfU0laRSA9PSA0CiAjICAgZGVmaW5lIGJyb2FkY2FzdCh4KSAoeyBc CiAgICAgdmVjX3QgdF87IFwKQEAgLTE0MSw2ICsxNjIsMTcgQEAgc3RhdGljIGlubGluZSBib29s IF90b19ib29sKGJ5dGVfdmVjX3QgYgogICAgICAgICAgIDogIj12IiAodF8pIDogIm0iICgqKGZs b2F0WzFdKXsgeCB9KSApOyBcCiAgICAgdF87IFwKIH0pCisjICAgaWYgVkVDX1NJWkUgPj0gMzIg JiYgZGVmaW5lZChfX0FWWDUxMkRRX18pCisjICAgIGRlZmluZSBicm9hZGNhc3RfcGFpcih4KSAo eyBcCisgICAgdmVjX3QgdF87IFwKKyAgICBhc20gKCAidmJyb2FkY2FzdGYzMngyICUxLCAlMCIg OiAiPXYiICh0XykgOiAibSIgKHgpICk7IFwKKyAgICB0XzsgXAorfSkKKyMgICBlbmRpZgorIyAg IGlmIFZFQ19TSVpFID09IDY0ICYmIGRlZmluZWQoX19BVlg1MTJEUV9fKQorIyAgICBkZWZpbmUg YnJvYWRjYXN0X29jdGV0KHgpIEIoYnJvYWRjYXN0ZjMyeDhfLCBfbWFzaywgeCwgdW5kZWYoKSwg fjApCisjICAgIGRlZmluZSBpbnNlcnRfb2N0ZXQoeCwgeSwgcCkgQihpbnNlcnRmMzJ4OF8sIF9t YXNrLCB4LCB5LCBwLCB1bmRlZigpLCB+MCkKKyMgICBlbmRpZgogIyAgIGRlZmluZSBtYXgoeCwg eSkgQlJfKG1heHBzLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICAgZGVmaW5lIG1pbih4 LCB5KSBCUl8obWlucHMsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKICMgICBkZWZpbmUgbWl4 KHgsIHkpIEIobW92YXBzLCBfbWFzaywgeCwgeSwgKDBiMDEwMTAxMDEwMTAxMDEwMSAmIEFMTF9U UlVFKSkKQEAgLTE0OSw2ICsxODEsMTMgQEAgc3RhdGljIGlubGluZSBib29sIF90b19ib29sKGJ5 dGVfdmVjX3QgYgogIyAgICBkZWZpbmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSBCKHVucGNrbHBzLCBf bWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICAgIGRlZmluZSBzd2FwKHgpIEIoc2h1ZnBzLCBf bWFzaywgeCwgeCwgMGIwMDAxMTAxMSwgdW5kZWYoKSwgfjApCiAjICAgZWxzZQorIyAgICBkZWZp bmUgYnJvYWRjYXN0X3F1YXJ0ZXQoeCkgQihicm9hZGNhc3RmMzJ4NF8sIF9tYXNrLCB4LCB1bmRl ZigpLCB+MCkKKyMgICAgZGVmaW5lIGluc2VydF9wYWlyKHgsIHksIHApIFwKKyAgICBCKGluc2Vy dGYzMng0XywgX21hc2ssIHgsIFwKKyAgICAgIC8qIENhc3QgbmVlZGVkIGJlbG93IHRvIHdvcmsg YXJvdW5kIGdjYyA3LnggcXVpcmsuICovIFwKKyAgICAgIChwKSAmIDEgPyAodHlwZW9mKHkpKV9f YnVpbHRpbl9pYTMyX3NodWZwcyh5LCB5LCAwYjAxMDAwMTAwKSA6ICh5KSwgXAorICAgICAgKHAp ID4+IDEsIHgsIDMgPDwgKChwKSAqIDIpKQorIyAgICBkZWZpbmUgaW5zZXJ0X3F1YXJ0ZXQoeCwg eSwgcCkgQihpbnNlcnRmMzJ4NF8sIF9tYXNrLCB4LCB5LCBwLCB1bmRlZigpLCB+MCkKICMgICAg ZGVmaW5lIGludGVybGVhdmVfaGkoeCwgeSkgQih2cGVybWkydmFycHMsIF9tYXNrLCB4LCBpbnRl cmxlYXZlX2hpLCB5LCB+MCkKICMgICAgZGVmaW5lIGludGVybGVhdmVfbG8oeCwgeSkgQih2cGVy bXQydmFycHMsIF9tYXNrLCBpbnRlcmxlYXZlX2xvLCB4LCB5LCB+MCkKICMgICAgZGVmaW5lIHN3 YXAoeCkgKHsgXApAQCAtMTcyLDYgKzIxMSwxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jv b2woYnl0ZV92ZWNfdCBiCiAgICAgdF87IFwKIH0pCiAjICAgZW5kaWYKKyMgICBpZiBWRUNfU0la RSA+PSAzMiAmJiBkZWZpbmVkKF9fQVZYNTEyRFFfXykKKyMgICAgZGVmaW5lIGJyb2FkY2FzdF9w YWlyKHgpIEIoYnJvYWRjYXN0ZjY0eDJfLCBfbWFzaywgeCwgdW5kZWYoKSwgfjApCisjICAgIGRl ZmluZSBpbnNlcnRfcGFpcih4LCB5LCBwKSBCKGluc2VydGY2NHgyXywgX21hc2ssIHgsIHksIHAs IHVuZGVmKCksIH4wKQorIyAgIGVuZGlmCisjICAgaWYgVkVDX1NJWkUgPT0gNjQKKyMgICAgZGVm aW5lIGJyb2FkY2FzdF9xdWFydGV0KHgpIEIoYnJvYWRjYXN0ZjY0eDRfLCAsIHgsIHVuZGVmKCks IH4wKQorIyAgICBkZWZpbmUgaW5zZXJ0X3F1YXJ0ZXQoeCwgeSwgcCkgQihpbnNlcnRmNjR4NF8s IF9tYXNrLCB4LCB5LCBwLCB1bmRlZigpLCB+MCkKKyMgICBlbmRpZgogIyAgIGRlZmluZSBtYXgo eCwgeSkgQlJfKG1heHBkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICAgZGVmaW5lIG1p bih4LCB5KSBCUl8obWlucGQsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKICMgICBkZWZpbmUg bWl4KHgsIHkpIEIobW92YXBkLCBfbWFzaywgeCwgeSwgMGIwMTAxMDEwMSkKQEAgLTMwMCw2ICsz NDcsMTYgQEAgc3RhdGljIGlubGluZSBib29sIF90b19ib29sKGJ5dGVfdmVjX3QgYgogICAgIHRf OyBcCiB9KQogIyBlbmRpZgorIyBpZiAoRUxFTV9DT1VOVCA9PSAxNiAmJiBFTEVNX1NJWkUgPT0g NCkgLyogdmV4dHJhY3RpMzJ4NCAqLyB8fCBcCisgICAgICAgKEVMRU1fQ09VTlQgPT0gOCAmJiBF TEVNX1NJWkUgPT0gOCAmJiBkZWZpbmVkKF9fQVZYNTEyRFFfXykpIC8qIHZleHRyYWN0aTY0eDIg Ki8KKyMgIGRlZmluZSBsb3dfcXVhcnRlcih4KSAoeyBcCisgICAgcXVhcnRlcl90IHRfOyBcCisg ICAgYXNtICggInZleHRyYWN0aSVjW3ddeCVjW25dICQwLCAlW3NdLCAlW2RdIiBcCisgICAgICAg ICAgOiBbZF0gIj1tIiAodF8pIFwKKyAgICAgICAgICA6IFtzXSAidiIgKHgpLCBbd10gImkiIChF TEVNX1NJWkUgKiA4KSwgW25dICJpIiAoRUxFTV9DT1VOVCAvIDQpICk7IFwKKyAgICB0XzsgXAor fSkKKyMgZW5kaWYKICMgaWYgSU5UX1NJWkUgPT0gNCB8fCBVSU5UX1NJWkUgPT0gNAogIyAgZGVm aW5lIGJyb2FkY2FzdCh4KSAoeyBcCiAgICAgdmVjX3QgdF87IFwKQEAgLTMxMiwxMSArMzY5LDMw IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICAgICBhc20gKCAi dnBicm9hZGNhc3RkICVrMSwgJTAiIDogIj12IiAodF8pIDogInIiICh4KSApOyBcCiAgICAgdF87 IFwKIH0pCisjICBpZmRlZiBfX0FWWDUxMkRRX18KKyMgICBkZWZpbmUgYnJvYWRjYXN0X3BhaXIo eCkgKHsgXAorICAgIHZlY190IHRfOyBcCisgICAgYXNtICggInZicm9hZGNhc3RpMzJ4MiAlMSwg JTAiIDogIj12IiAodF8pIDogIm0iICh4KSApOyBcCisgICAgdF87IFwKK30pCisjICBlbmRpZgor IyAgaWYgVkVDX1NJWkUgPT0gNjQgJiYgZGVmaW5lZChfX0FWWDUxMkRRX18pCisjICAgZGVmaW5l IGJyb2FkY2FzdF9vY3RldCh4KSAoKHZlY190KUIoYnJvYWRjYXN0aTMyeDhfLCBfbWFzaywgKHZz aV9vY3RldF90KSh4KSwgKHZzaV90KXVuZGVmKCksIH4wKSkKKyMgICBkZWZpbmUgaW5zZXJ0X29j dGV0KHgsIHksIHApICgodmVjX3QpQihpbnNlcnRpMzJ4OF8sIF9tYXNrLCAodnNpX3QpKHgpLCAo dnNpX29jdGV0X3QpKHkpLCBwLCAodnNpX3QpdW5kZWYoKSwgfjApKQorIyAgZW5kaWYKICMgIGlm IFZFQ19TSVpFID09IDE2CiAjICAgZGVmaW5lIGludGVybGVhdmVfaGkoeCwgeSkgKCh2ZWNfdClC KHB1bnBja2hkcSwgX21hc2ssICh2c2lfdCkoeCksICh2c2lfdCkoeSksICh2c2lfdCl1bmRlZigp LCB+MCkpCiAjICAgZGVmaW5lIGludGVybGVhdmVfbG8oeCwgeSkgKCh2ZWNfdClCKHB1bnBja2xk cSwgX21hc2ssICh2c2lfdCkoeCksICh2c2lfdCkoeSksICh2c2lfdCl1bmRlZigpLCB+MCkpCiAj ICAgZGVmaW5lIHN3YXAoeCkgKCh2ZWNfdClCKHBzaHVmZCwgX21hc2ssICh2c2lfdCkoeCksIDBi MDAwMTEwMTEsICh2c2lfdCl1bmRlZigpLCB+MCkpCiAjICBlbHNlCisjICAgZGVmaW5lIGJyb2Fk Y2FzdF9xdWFydGV0KHgpICgodmVjX3QpQihicm9hZGNhc3RpMzJ4NF8sIF9tYXNrLCAodnNpX3F1 YXJ0ZXRfdCkoeCksICh2c2lfdCl1bmRlZigpLCB+MCkpCisjICAgZGVmaW5lIGluc2VydF9wYWly KHgsIHksIHApIFwKKyAgICAodmVjX3QpKEIoaW5zZXJ0aTMyeDRfLCBfbWFzaywgKHZzaV90KSh4 KSwgXAorICAgICAgICAgICAgICAvKiBGaXJzdCBjYXN0IG5lZWRlZCBiZWxvdyB0byB3b3JrIGFy b3VuZCBnY2MgNy54IHF1aXJrLiAqLyBcCisgICAgICAgICAgICAgIChwKSAmIDEgPyAodnNpX3Bh aXJfdClfX2J1aWx0aW5faWEzMl9wc2h1ZmQoKHZzaV9wYWlyX3QpKHkpLCAwYjAxMDAwMTAwKSBc CisgICAgICAgICAgICAgICAgICAgICAgOiAodnNpX3BhaXJfdCkoeSksIFwKKyAgICAgICAgICAg ICAgKHApID4+IDEsICh2c2lfdCkoeCksIDMgPDwgKChwKSAqIDIpKSkKKyMgICBkZWZpbmUgaW5z ZXJ0X3F1YXJ0ZXQoeCwgeSwgcCkgKCh2ZWNfdClCKGluc2VydGkzMng0XywgX21hc2ssICh2c2lf dCkoeCksICh2c2lfcXVhcnRldF90KSh5KSwgcCwgKHZzaV90KXVuZGVmKCksIH4wKSkKICMgICBk ZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSAoKHZlY190KUIodnBlcm1pMnZhcmQsIF9tYXNrLCAo dnNpX3QpKHgpLCBpbnRlcmxlYXZlX2hpLCAodnNpX3QpKHkpLCB+MCkpCiAjICAgZGVmaW5lIGlu dGVybGVhdmVfbG8oeCwgeSkgKCh2ZWNfdClCKHZwZXJtdDJ2YXJkLCBfbWFzaywgaW50ZXJsZWF2 ZV9sbywgKHZzaV90KSh4KSwgKHZzaV90KSh5KSwgfjApKQogIyAgIGRlZmluZSBzd2FwKHgpICgo dmVjX3QpQihwc2h1ZmQsIF9tYXNrLCBcCkBAIC0zNDEsNiArNDE3LDE0IEBAIHN0YXRpYyBpbmxp bmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICAgICB0XzsgXAogfSkKICMgIGVuZGlmCisj ICBpZiBWRUNfU0laRSA+PSAzMiAmJiBkZWZpbmVkKF9fQVZYNTEyRFFfXykKKyMgICBkZWZpbmUg YnJvYWRjYXN0X3BhaXIoeCkgKCh2ZWNfdClCKGJyb2FkY2FzdGk2NHgyXywgX21hc2ssICh2ZGlf cGFpcl90KSh4KSwgKHZkaV90KXVuZGVmKCksIH4wKSkKKyMgICBkZWZpbmUgaW5zZXJ0X3BhaXIo eCwgeSwgcCkgKCh2ZWNfdClCKGluc2VydGk2NHgyXywgX21hc2ssICh2ZGlfdCkoeCksICh2ZGlf cGFpcl90KSh5KSwgcCwgKHZkaV90KXVuZGVmKCksIH4wKSkKKyMgIGVuZGlmCisjICBpZiBWRUNf U0laRSA9PSA2NAorIyAgIGRlZmluZSBicm9hZGNhc3RfcXVhcnRldCh4KSAoKHZlY190KUIoYnJv YWRjYXN0aTY0eDRfLCAsICh2ZGlfcXVhcnRldF90KSh4KSwgKHZkaV90KXVuZGVmKCksIH4wKSkK KyMgICBkZWZpbmUgaW5zZXJ0X3F1YXJ0ZXQoeCwgeSwgcCkgKCh2ZWNfdClCKGluc2VydGk2NHg0 XywgX21hc2ssICh2ZGlfdCkoeCksICh2ZGlfcXVhcnRldF90KSh5KSwgcCwgKHZkaV90KXVuZGVm KCksIH4wKSkKKyMgIGVuZGlmCiAjICBpZiBWRUNfU0laRSA9PSAxNgogIyAgIGRlZmluZSBpbnRl cmxlYXZlX2hpKHgsIHkpICgodmVjX3QpQihwdW5wY2tocWRxLCBfbWFzaywgKHZkaV90KSh4KSwg KHZkaV90KSh5KSwgKHZkaV90KXVuZGVmKCksIH4wKSkKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9s byh4LCB5KSAoKHZlY190KUIocHVucGNrbHFkcSwgX21hc2ssICh2ZGlfdCkoeCksICh2ZGlfdCko eSksICh2ZGlfdCl1bmRlZigpLCB+MCkpCkBAIC04OTIsNyArOTc2LDcgQEAgc3RhdGljIGlubGlu ZSBlaWdodGhfdCBsb3dfZWlnaHRoKHZlY190CiAgICAgZWlnaHRoX3QgeTsKICAgICB1bnNpZ25l ZCBpbnQgaTsKIAotICAgIGZvciAoIGkgPSAwOyBpIDwgRUxFTV9DT1VOVCAvIDQ7ICsraSApCisg ICAgZm9yICggaSA9IDA7IGkgPCBFTEVNX0NPVU5UIC8gODsgKytpICkKICAgICAgICAgeVtpXSA9 IHhbaV07CiAKICAgICByZXR1cm4geTsKQEAgLTkwNCw2ICs5ODgsNTAgQEAgc3RhdGljIGlubGlu ZSBlaWdodGhfdCBsb3dfZWlnaHRoKHZlY190CiAKICNlbmRpZgogCisjaWZkZWYgYnJvYWRjYXN0 X3BhaXIKKyMgaWYgRUxFTV9DT1VOVCA9PSA0CisjICBkZWZpbmUgYnJvYWRjYXN0X2hhbGYgYnJv YWRjYXN0X3BhaXIKKyMgZWxpZiBFTEVNX0NPVU5UID09IDgKKyMgIGRlZmluZSBicm9hZGNhc3Rf cXVhcnRlciBicm9hZGNhc3RfcGFpcgorIyBlbGlmIEVMRU1fQ09VTlQgPT0gMTYKKyMgIGRlZmlu ZSBicm9hZGNhc3RfZWlnaHRoIGJyb2FkY2FzdF9wYWlyCisjIGVuZGlmCisjZW5kaWYKKworI2lm ZGVmIGluc2VydF9wYWlyCisjIGlmIEVMRU1fQ09VTlQgPT0gNAorIyAgZGVmaW5lIGluc2VydF9o YWxmIGluc2VydF9wYWlyCisjIGVsaWYgRUxFTV9DT1VOVCA9PSA4CisjICBkZWZpbmUgaW5zZXJ0 X3F1YXJ0ZXIgaW5zZXJ0X3BhaXIKKyMgZWxpZiBFTEVNX0NPVU5UID09IDE2CisjICBkZWZpbmUg aW5zZXJ0X2VpZ2h0aCBpbnNlcnRfcGFpcgorIyBlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBicm9h ZGNhc3RfcXVhcnRldAorIyBpZiBFTEVNX0NPVU5UID09IDgKKyMgIGRlZmluZSBicm9hZGNhc3Rf aGFsZiBicm9hZGNhc3RfcXVhcnRldAorIyBlbGlmIEVMRU1fQ09VTlQgPT0gMTYKKyMgIGRlZmlu ZSBicm9hZGNhc3RfcXVhcnRlciBicm9hZGNhc3RfcXVhcnRldAorIyBlbmRpZgorI2VuZGlmCisK KyNpZmRlZiBpbnNlcnRfcXVhcnRldAorIyBpZiBFTEVNX0NPVU5UID09IDgKKyMgIGRlZmluZSBp bnNlcnRfaGFsZiBpbnNlcnRfcXVhcnRldAorIyBlbGlmIEVMRU1fQ09VTlQgPT0gMTYKKyMgIGRl ZmluZSBpbnNlcnRfcXVhcnRlciBpbnNlcnRfcXVhcnRldAorIyBlbmRpZgorI2VuZGlmCisKKyNp ZiBkZWZpbmVkKGJyb2FkY2FzdF9vY3RldCkgJiYgRUxFTV9DT1VOVCA9PSAxNgorIyBkZWZpbmUg YnJvYWRjYXN0X2hhbGYgYnJvYWRjYXN0X29jdGV0CisjZW5kaWYKKworI2lmIGRlZmluZWQoaW5z ZXJ0X29jdGV0KSAmJiBFTEVNX0NPVU5UID09IDE2CisjIGRlZmluZSBpbnNlcnRfaGFsZiBpbnNl cnRfb2N0ZXQKKyNlbmRpZgorCiAjaWYgZGVmaW5lZChfX0FWWDUxMkZfXykgJiYgZGVmaW5lZChG TE9BVF9TSVpFKQogIyBpbmNsdWRlICJzaW1kLWZtYS5jIgogI2VuZGlmCkBAIC0xMTk5LDYgKzEz MjcsNjAgQEAgaW50IHNpbWRfdGVzdCh2b2lkKQogICAgIGlmICggIWVxKGJyb2FkY2FzdDIoRUxF TV9DT1VOVCArIDEpLCBzcmMgKyBpbnYpICkgcmV0dXJuIF9fTElORV9fOwogI2VuZGlmCiAKKyNp ZiBkZWZpbmVkKGJyb2FkY2FzdF9oYWxmKSAmJiBkZWZpbmVkKGluc2VydF9oYWxmKQorICAgIHsK KyAgICAgICAgaGFsZl90IGF1eCA9IGxvd19oYWxmKHNyYyk7CisKKyAgICAgICAgdG91Y2goYXV4 KTsKKyAgICAgICAgeCA9IGJyb2FkY2FzdF9oYWxmKGF1eCk7CisgICAgICAgIHRvdWNoKGF1eCk7 CisgICAgICAgIHkgPSBpbnNlcnRfaGFsZihzcmMsIGF1eCwgMSk7CisgICAgICAgIGlmICggIWVx KHgsIHkpICkgcmV0dXJuIF9fTElORV9fOworICAgIH0KKyNlbmRpZgorCisjaWYgZGVmaW5lZChi cm9hZGNhc3RfcXVhcnRlcikgJiYgZGVmaW5lZChpbnNlcnRfcXVhcnRlcikKKyAgICB7CisgICAg ICAgIHF1YXJ0ZXJfdCBhdXggPSBsb3dfcXVhcnRlcihzcmMpOworCisgICAgICAgIHRvdWNoKGF1 eCk7CisgICAgICAgIHggPSBicm9hZGNhc3RfcXVhcnRlcihhdXgpOworICAgICAgICB0b3VjaChh dXgpOworICAgICAgICB5ID0gaW5zZXJ0X3F1YXJ0ZXIoc3JjLCBhdXgsIDEpOworICAgICAgICB0 b3VjaChhdXgpOworICAgICAgICB5ID0gaW5zZXJ0X3F1YXJ0ZXIoeSwgYXV4LCAyKTsKKyAgICAg ICAgdG91Y2goYXV4KTsKKyAgICAgICAgeSA9IGluc2VydF9xdWFydGVyKHksIGF1eCwgMyk7Cisg ICAgICAgIGlmICggIWVxKHgsIHkpICkgcmV0dXJuIF9fTElORV9fOworICAgIH0KKyNlbmRpZgor CisjaWYgZGVmaW5lZChicm9hZGNhc3RfZWlnaHRoKSAmJiBkZWZpbmVkKGluc2VydF9laWdodGgp ICYmIFwKKyAgICAvKiBBdCBsZWFzdCBnY2MgNy4zICJvcHRpbWl6ZXMiIGF3YXkgYWxsIGluc2Vy dF9laWdodGgoKSBjYWxscyBiZWxvdy4gKi8gXAorICAgIF9fR05VQ19fID49IDgKKyAgICB7Cisg ICAgICAgIGVpZ2h0aF90IGF1eCA9IGxvd19laWdodGgoc3JjKTsKKworICAgICAgICB0b3VjaChh dXgpOworICAgICAgICB4ID0gYnJvYWRjYXN0X2VpZ2h0aChhdXgpOworICAgICAgICB0b3VjaChh dXgpOworICAgICAgICB5ID0gaW5zZXJ0X2VpZ2h0aChzcmMsIGF1eCwgMSk7CisgICAgICAgIHRv dWNoKGF1eCk7CisgICAgICAgIHkgPSBpbnNlcnRfZWlnaHRoKHksIGF1eCwgMik7CisgICAgICAg IHRvdWNoKGF1eCk7CisgICAgICAgIHkgPSBpbnNlcnRfZWlnaHRoKHksIGF1eCwgMyk7CisgICAg ICAgIHRvdWNoKGF1eCk7CisgICAgICAgIHkgPSBpbnNlcnRfZWlnaHRoKHksIGF1eCwgNCk7Cisg ICAgICAgIHRvdWNoKGF1eCk7CisgICAgICAgIHkgPSBpbnNlcnRfZWlnaHRoKHksIGF1eCwgNSk7 CisgICAgICAgIHRvdWNoKGF1eCk7CisgICAgICAgIHkgPSBpbnNlcnRfZWlnaHRoKHksIGF1eCwg Nik7CisgICAgICAgIHRvdWNoKGF1eCk7CisgICAgICAgIHkgPSBpbnNlcnRfZWlnaHRoKHksIGF1 eCwgNyk7CisgICAgICAgIGlmICggIWVxKHgsIHkpICkgcmV0dXJuIF9fTElORV9fOworICAgIH0K KyNlbmRpZgorCiAjaWYgZGVmaW5lZChpbnRlcmxlYXZlX2xvKSAmJiBkZWZpbmVkKGludGVybGVh dmVfaGkpCiAgICAgdG91Y2goc3JjKTsKICAgICB4ID0gaW50ZXJsZWF2ZV9sbyhpbnYsIHNyYyk7 Ci0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRvci5jCisrKyBi L3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRvci5jCkBAIC0yMyw2ICsy Myw3IEBAIGFzbSAoICIucHVzaHNlY3Rpb24gLnRlc3QsIFwiYXhcIiwgQHByb2cKICNpbmNsdWRl ICJhdng1MTJidy1vcG1hc2suaCIKICNpbmNsdWRlICJhdng1MTJmLmgiCiAjaW5jbHVkZSAiYXZ4 NTEyYncuaCIKKyNpbmNsdWRlICJhdng1MTJkcS5oIgogCiAjZGVmaW5lIHZlcmJvc2UgZmFsc2Ug LyogU3dpdGNoIHRvIHRydWUgZm9yIGZhciBtb3JlIGxvZ2dpbmcuICovCiAKQEAgLTEwMCw2ICsx MDEsMTEgQEAgc3RhdGljIGJvb2wgc2ltZF9jaGVja19hdng1MTJkcSh2b2lkKQogfQogI2RlZmlu ZSBzaW1kX2NoZWNrX2F2eDUxMmRxX29wbWFzayBzaW1kX2NoZWNrX2F2eDUxMmRxCiAKK3N0YXRp YyBib29sIHNpbWRfY2hlY2tfYXZ4NTEyZHFfdmwodm9pZCkKK3sKKyAgICByZXR1cm4gY3B1X2hh c19hdng1MTJkcSAmJiBjcHVfaGFzX2F2eDUxMnZsOworfQorCiBzdGF0aWMgYm9vbCBzaW1kX2No ZWNrX2F2eDUxMmJ3KHZvaWQpCiB7CiAgICAgcmV0dXJuIGNwdV9oYXNfYXZ4NTEyYnc7CkBAIC0y NjcsOSArMjczLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogICAgIFNJTUQoWE9QIGkzMng4 LCAgICAgICAgICAgICAgIHhvcCwgICAgICAzMmk0KSwKICAgICBTSU1EKFhPUCBpNjR4NCwgICAg ICAgICAgICAgICB4b3AsICAgICAgMzJpOCksCiAgICAgU0lNRChPUE1BU0svdywgICAgIGF2eDUx MmZfb3BtYXNrLCAgICAgICAgIDIpLAotICAgIFNJTUQoT1BNQVNLL2IsICAgIGF2eDUxMmRxX29w bWFzaywgICAgICAgICAxKSwKLSAgICBTSU1EKE9QTUFTSy9kLCAgICBhdng1MTJid19vcG1hc2ss ICAgICAgICAgNCksCi0gICAgU0lNRChPUE1BU0svcSwgICAgYXZ4NTEyYndfb3BtYXNrLCAgICAg ICAgIDgpLAorICAgIFNJTUQoT1BNQVNLK0RRL2IsIGF2eDUxMmRxX29wbWFzaywgICAgICAgICAx KSwKKyAgICBTSU1EKE9QTUFTSytEUS93LCBhdng1MTJkcV9vcG1hc2ssICAgICAgICAgMiksCisg ICAgU0lNRChPUE1BU0srQlcvZCwgYXZ4NTEyYndfb3BtYXNrLCAgICAgICAgIDQpLAorICAgIFNJ TUQoT1BNQVNLK0JXL3EsIGF2eDUxMmJ3X29wbWFzaywgICAgICAgICA4KSwKICAgICBTSU1EKEFW WDUxMkYgZjMyIHNjYWxhciwgIGF2eDUxMmYsICAgICAgICBmNCksCiAgICAgU0lNRChBVlg1MTJG IGYzMngxNiwgICAgICBhdng1MTJmLCAgICAgIDY0ZjQpLAogICAgIFNJTUQoQVZYNTEyRiBmNjQg c2NhbGFyLCAgYXZ4NTEyZiwgICAgICAgIGY4KSwKQEAgLTMwMiw2ICszMDksMjQgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCB7CiAgICAgQVZYNTEyVkwoQlcrVkwgdTE2eDgsICAgIGF2eDUxMmJ3LCAg ICAgIDE2dTIpLAogICAgIEFWWDUxMlZMKEJXK1ZMIHMxNngxNiwgICBhdng1MTJidywgICAgICAz MmkyKSwKICAgICBBVlg1MTJWTChCVytWTCB1MTZ4MTYsICAgYXZ4NTEyYncsICAgICAgMzJ1Miks CisgICAgU0lNRChBVlg1MTJEUSBmMzJ4MTYsICAgIGF2eDUxMmRxLCAgICAgIDY0ZjQpLAorICAg IFNJTUQoQVZYNTEyRFEgZjY0eDgsICAgICBhdng1MTJkcSwgICAgICA2NGY4KSwKKyAgICBTSU1E KEFWWDUxMkRRIHMzMngxNiwgICAgYXZ4NTEyZHEsICAgICAgNjRpNCksCisgICAgU0lNRChBVlg1 MTJEUSB1MzJ4MTYsICAgIGF2eDUxMmRxLCAgICAgIDY0dTQpLAorICAgIFNJTUQoQVZYNTEyRFEg czY0eDgsICAgICBhdng1MTJkcSwgICAgICA2NGk4KSwKKyAgICBTSU1EKEFWWDUxMkRRIHU2NHg4 LCAgICAgYXZ4NTEyZHEsICAgICAgNjR1OCksCisgICAgQVZYNTEyVkwoRFErVkwgZjMyeDQsICAg IGF2eDUxMmRxLCAgICAgIDE2ZjQpLAorICAgIEFWWDUxMlZMKERRK1ZMIGY2NHgyLCAgICBhdng1 MTJkcSwgICAgICAxNmY4KSwKKyAgICBBVlg1MTJWTChEUStWTCBmMzJ4OCwgICAgYXZ4NTEyZHEs ICAgICAgMzJmNCksCisgICAgQVZYNTEyVkwoRFErVkwgZjY0eDQsICAgIGF2eDUxMmRxLCAgICAg IDMyZjgpLAorICAgIEFWWDUxMlZMKERRK1ZMIHMzMng0LCAgICBhdng1MTJkcSwgICAgICAxNmk0 KSwKKyAgICBBVlg1MTJWTChEUStWTCB1MzJ4NCwgICAgYXZ4NTEyZHEsICAgICAgMTZ1NCksCisg ICAgQVZYNTEyVkwoRFErVkwgczMyeDgsICAgIGF2eDUxMmRxLCAgICAgIDMyaTQpLAorICAgIEFW WDUxMlZMKERRK1ZMIHUzMng4LCAgICBhdng1MTJkcSwgICAgICAzMnU0KSwKKyAgICBBVlg1MTJW TChEUStWTCBzNjR4MiwgICAgYXZ4NTEyZHEsICAgICAgMTZpOCksCisgICAgQVZYNTEyVkwoRFEr VkwgdTY0eDIsICAgIGF2eDUxMmRxLCAgICAgIDE2dTgpLAorICAgIEFWWDUxMlZMKERRK1ZMIHM2 NHg0LCAgICBhdng1MTJkcSwgICAgICAzMmk4KSwKKyAgICBBVlg1MTJWTChEUStWTCB1NjR4NCwg ICAgYXZ4NTEyZHEsICAgICAgMzJ1OCksCiAjdW5kZWYgQVZYNTEyVkxfCiAjdW5kZWYgQVZYNTEy VkwKICN1bmRlZiBTSU1EXwoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJv amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hl bi1kZXZlbA==