From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v4 24/44] x86emul: basic AVX512F testing Date: Tue, 25 Sep 2018 07:41:16 -0600 Message-ID: <5BAA3AFC02000078001EBABA@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 us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g4nae-0007zo-Og for xen-devel@lists.xenproject.org; Tue, 25 Sep 2018 13:41:24 +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 CnY0OiBNYWtlIGVxKCkgYWxzbyB3b3JrIGZvciA0LSBhbmQgOC1ieXRlIGludGVnZXIgZWxlbWVu dCBzaXplcy4KdjM6IE5ldy4KCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9NYWtlZmls ZQorKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvTWFrZWZpbGUKQEAgLTEzLDcgKzEzLDcg QEAgYWxsOiAkKFRBUkdFVCkKIHJ1bjogJChUQVJHRVQpCiAJLi8kKFRBUkdFVCkKIAotU0lNRCA6 PSAzZG5vdyBzc2Ugc3NlMiBzc2U0IGF2eCBhdngyIHhvcAorU0lNRCA6PSAzZG5vdyBzc2Ugc3Nl MiBzc2U0IGF2eCBhdngyIHhvcCBhdng1MTJmCiBGTUEgOj0gZm1hNCBmbWEKIFNHIDo9IGF2eDIt c2cKIFRFU1RDQVNFUyA6PSBibG93ZmlzaCAkKFNJTUQpICQoRk1BKSAkKFNHKQpAQCAtNjAsNiAr NjAsOSBAQCBhdngyLXNnLWZsdHMgOj0gNCA4CiB4b3AtdmVjcyA6PSAkKGF2eC12ZWNzKQogeG9w LWludHMgOj0gMSAyIDQgOAogeG9wLWZsdHMgOj0gJChhdngtZmx0cykKK2F2eDUxMmYtdmVjcyA6 PSA2NAorYXZ4NTEyZi1pbnRzIDo9IDQgOAorYXZ4NTEyZi1mbHRzIDo9IDQgOAogCiBhdng1MTJm LW9wbWFzay12ZWNzIDo9IDIKIGF2eDUxMmRxLW9wbWFzay12ZWNzIDo9IDEKQEAgLTE0NSw3ICsx NDgsNyBAQCAkKGFkZHN1ZmZpeCAuYywkKFNHKSk6CiAKICQoYWRkc3VmZml4IC5oLCQoU0lNRCkg JChGTUEpICQoU0cpKTogc2ltZC5oCiAKLXhvcC5oOiBzaW1kLWZtYS5jCit4b3AuaCBhdng1MTJm Lmg6IHNpbWQtZm1hLmMKIAogZW5kaWYgIyAzMi1iaXQgb3ZlcnJpZGUKIAotLS0gYS90b29scy90 ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5jCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9z aW1kLmMKQEAgLTIsNyArMiw0MSBAQAogCiBFTlRSWShzaW1kX3Rlc3QpOwogCi0jaWYgVkVDX1NJ WkUgPT0gOCAmJiBkZWZpbmVkKF9fU1NFX18pCisjaWYgZGVmaW5lZChfX0FWWDUxMkZfXykKKyMg ZGVmaW5lIEFMTF9UUlVFICh+MFVMTCA+PiAoNjQgLSBFTEVNX0NPVU5UKSkKKyMgaWYgVkVDX1NJ WkUgPT0gNAorIyAgZGVmaW5lIGVxKHgsIHkpICh7IFwKKyAgICBmbG9hdCB4XyA9ICh4KVswXTsg XAorICAgIGZsb2F0IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSkpIHlfID0geyAoeSlb MF0gfTsgXAorICAgIHVuc2lnbmVkIHNob3J0IHJfOyBcCisgICAgYXNtICggInZjbXBzcyAkMCwg JTEsICUyLCAlMCIgIDogIj1rIiAocl8pIDogIm0iICh4XyksICJ2IiAoeV8pICk7IFwKKyAgICBy XyA9PSAxOyBcCit9KQorIyBlbGlmIFZFQ19TSVpFID09IDgKKyMgIGRlZmluZSBlcSh4LCB5KSAo eyBcCisgICAgZG91YmxlIHhfID0gKHgpWzBdOyBcCisgICAgZG91YmxlIF9fYXR0cmlidXRlX18o KHZlY3Rvcl9zaXplKDE2KSkpIHlfID0geyAoeSlbMF0gfTsgXAorICAgIHVuc2lnbmVkIHNob3J0 IHJfOyBcCisgICAgYXNtICggInZjbXBzZCAkMCwgJTEsICUyLCAlMCIgIDogIj1rIiAocl8pIDog Im0iICh4XyksICJ2IiAoeV8pICk7IFwKKyAgICByXyA9PSAxOyBcCit9KQorIyBlbGlmIEZMT0FU X1NJWkUgPT0gNAorLyoKKyAqIGdjYydzICh1cCB0byBhdCBsZWFzdCA4LjIpIF9fYnVpbHRpbl9p YTMyX2NtcHBzMjU2X21hc2soKSBoYXMgYW4gYW5vbWFseSBpbgorICogdGhhdCBpdHMgcmV0dXJu IHR5cGUgaXMgUUkgcmF0aGVyIHRoYW4gVVFJLCBhbmQgaGVuY2UgdGhlIHZhbHVlIHdvdWxkIGdl dAorICogc2lnbi1leHRlbmRlZCBiZWZvcmUgY29tYXByaW5nIHRvIEFMTF9UUlVFLiBUaGUgc2Ft ZSBvZGRpdHkgZG9lcyBub3QgbWF0dGVyCisgKiBmb3IgX19idWlsdGluX2lhMzJfY21wcGQyNTZf bWFzaygpLCBhcyB0aGVyZSBvbmx5IDQgYml0cyBhcmUgc2lnbmlmaWNhbnQuCisgKiBIZW5jZSB0 aGUgZXh0cmEgIiAmIEFMTF9UUlVFIi4KKyAqLworIyAgZGVmaW5lIGVxKHgsIHkpICgoQlIoY21w cHMsIF9tYXNrLCB4LCB5LCAwLCAtMSkgJiBBTExfVFJVRSkgPT0gQUxMX1RSVUUpCisjIGVsaWYg RkxPQVRfU0laRSA9PSA4CisjICBkZWZpbmUgZXEoeCwgeSkgKEJSKGNtcHBkLCBfbWFzaywgeCwg eSwgMCwgLTEpID09IEFMTF9UUlVFKQorIyBlbGlmIElOVF9TSVpFID09IDQgfHwgVUlOVF9TSVpF ID09IDQKKyMgIGRlZmluZSBlcSh4LCB5KSAoQihwY21wZXFkLCBfbWFzaywgKHZzaV90KSh4KSwg KHZzaV90KSh5KSwgLTEpID09IEFMTF9UUlVFKQorIyBlbGlmIElOVF9TSVpFID09IDggfHwgVUlO VF9TSVpFID09IDgKKyMgIGRlZmluZSBlcSh4LCB5KSAoQihwY21wZXFxLCBfbWFzaywgKHZkaV90 KSh4KSwgKHZkaV90KSh5KSwgLTEpID09IEFMTF9UUlVFKQorIyBlbmRpZgorI2VsaWYgVkVDX1NJ WkUgPT0gOCAmJiBkZWZpbmVkKF9fU1NFX18pCiAjIGRlZmluZSB0b19ib29sKGNtcCkgKF9fYnVp bHRpbl9pYTMyX3Btb3Ztc2tiKGNtcCkgPT0gMHhmZikKICNlbGlmIFZFQ19TSVpFID09IDE2CiAj IGlmIGRlZmluZWQoX19BVlhfXykgJiYgZGVmaW5lZChGTE9BVF9TSVpFKQpAQCAtOTMsNiArMTI3 LDUwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICAgICB0b3Vj aCh4KTsgXAogICAgIF9fYnVpbHRpbl9pYTMyX3BmcmNwaXQyKF9fYnVpbHRpbl9pYTMyX3BmcnNx aXQxKF9fYnVpbHRpbl9pYTMyX3BmbXVsKHRfLCB0XyksIHgpLCB0Xyk7IFwKIH0pCisjZWxpZiBk ZWZpbmVkKEZMT0FUX1NJWkUpICYmIGRlZmluZWQoX19BVlg1MTJGX18pICYmIFwKKyAgICAgIChW RUNfU0laRSA9PSA2NCB8fCBkZWZpbmVkKF9fQVZYNTEyVkxfXykpCisjIGlmIFZFQ19TSVpFID4g RkxPQVRfU0laRQorIyAgaWYgRkxPQVRfU0laRSA9PSA0CisjICAgZGVmaW5lIGJyb2FkY2FzdCh4 KSAoeyBcCisgICAgdmVjX3QgdF87IFwKKyAgICBhc20gKCAiJXtldmV4JX0gdmJyb2FkY2FzdHNz ICUxLCAlMCIgXAorICAgICAgICAgIDogIj12IiAodF8pIDogIm0iICgqKGZsb2F0WzFdKXsgeCB9 KSApOyBcCisgICAgdF87IFwKK30pCisjICAgZGVmaW5lIG1heCh4LCB5KSBCUl8obWF4cHMsIF9t YXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKKyMgICBkZWZpbmUgbWluKHgsIHkpIEJSXyhtaW5wcywg X21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQorIyAgIGRlZmluZSBtaXgoeCwgeSkgQihtb3ZhcHMs IF9tYXNrLCB4LCB5LCAoMGIwMTAxMDEwMTAxMDEwMTAxICYgQUxMX1RSVUUpKQorIyAgIGlmIFZF Q19TSVpFID09IDE2CisjICAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpIEIodW5wY2tocHMs IF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKKyMgICAgZGVmaW5lIGludGVybGVhdmVfbG8oeCwg eSkgQih1bnBja2xwcywgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQorIyAgICBkZWZpbmUgc3dh cCh4KSBCKHNodWZwcywgX21hc2ssIHgsIHgsIDBiMDAwMTEwMTEsIHVuZGVmKCksIH4wKQorIyAg IGVuZGlmCisjICBlbGlmIEZMT0FUX1NJWkUgPT0gOAorIyAgIGlmIFZFQ19TSVpFID49IDMyCisj ICAgIGRlZmluZSBicm9hZGNhc3QoeCkgKHsgXAorICAgIHZlY190IHRfOyBcCisgICAgYXNtICgg IiV7ZXZleCV9IHZicm9hZGNhc3RzZCAlMSwgJTAiIDogIj12IiAodF8pIFwKKyAgICAgICAgICA6 ICJtIiAoKihkb3VibGVbMV0peyB4IH0pICk7IFwKKyAgICB0XzsgXAorfSkKKyMgICBlbHNlCisj ICAgIGRlZmluZSBicm9hZGNhc3QoeCkgKHsgXAorICAgIHZlY190IHRfOyBcCisgICAgYXNtICgg IiV7ZXZleCV9IHZwYnJvYWRjYXN0cSAlMSwgJTAiIFwKKyAgICAgICAgICA6ICI9diIgKHRfKSA6 ICJtIiAoKihkb3VibGVbMV0peyB4IH0pICk7IFwKKyAgICB0XzsgXAorfSkKKyMgICBlbmRpZgor IyAgIGRlZmluZSBtYXgoeCwgeSkgQlJfKG1heHBkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjAp CisjICAgZGVmaW5lIG1pbih4LCB5KSBCUl8obWlucGQsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+ MCkKKyMgICBkZWZpbmUgbWl4KHgsIHkpIEIobW92YXBkLCBfbWFzaywgeCwgeSwgMGIwMTAxMDEw MSkKKyMgICBpZiBWRUNfU0laRSA9PSAxNgorIyAgICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5 KSBCKHVucGNraHBkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCisjICAgIGRlZmluZSBpbnRl cmxlYXZlX2xvKHgsIHkpIEIodW5wY2tscGQsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKKyMg ICAgZGVmaW5lIHN3YXAoeCkgQihzaHVmcGQsIF9tYXNrLCB4LCB4LCAwYjAxLCB1bmRlZigpLCB+ MCkKKyMgICBlbmRpZgorIyAgZW5kaWYKKyMgZW5kaWYKICNlbGlmIEZMT0FUX1NJWkUgPT0gNCAm JiBkZWZpbmVkKF9fU1NFX18pCiAjIGlmIFZFQ19TSVpFID09IDMyICYmIGRlZmluZWQoX19BVlhf XykKICMgIGlmIGRlZmluZWQoX19BVlgyX18pCkBAIC0xOTEsNyArMjY5LDMwIEBAIHN0YXRpYyBp bmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICMgIGRlZmluZSBzcXJ0KHgpIHNjYWxh cl8xb3AoeCwgInNxcnRzZCAlW2luXSwgJVtvdXRdIikKICMgZW5kaWYKICNlbmRpZgotI2lmIFZF Q19TSVpFID09IDE2ICYmIGRlZmluZWQoX19TU0UyX18pCisjaWYgKElOVF9TSVpFID09IDQgfHwg VUlOVF9TSVpFID09IDQgfHwgSU5UX1NJWkUgPT0gOCB8fCBVSU5UX1NJWkUgPT0gOCkgJiYgXAor ICAgICBkZWZpbmVkKF9fQVZYNTEyRl9fKSAmJiAoVkVDX1NJWkUgPT0gNjQgfHwgZGVmaW5lZChf X0FWWDUxMlZMX18pKQorIyBpZiBJTlRfU0laRSA9PSA0IHx8IFVJTlRfU0laRSA9PSA0CisjICBk ZWZpbmUgbWl4KHgsIHkpICgodmVjX3QpQihtb3ZkcWEzMl8sIF9tYXNrLCAodnNpX3QpKHgpLCAo dnNpX3QpKHkpLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMGIwMTAxMDEwMTAx MDEwMTAxICYgKCgxIDw8IEVMRU1fQ09VTlQpIC0gMSkpKSkKKyMgZWxpZiBJTlRfU0laRSA9PSA4 IHx8IFVJTlRfU0laRSA9PSA4CisjICBkZWZpbmUgbWl4KHgsIHkpICgodmVjX3QpQihtb3ZkcWE2 NF8sIF9tYXNrLCAodmRpX3QpKHgpLCAodmRpX3QpKHkpLCAwYjAxMDEwMTAxKSkKKyMgZW5kaWYK KyMgaWYgSU5UX1NJWkUgPT0gNAorIyAgZGVmaW5lIG1heCh4LCB5KSBCKHBtYXhzZCwgX21hc2ss IHgsIHksIHVuZGVmKCksIH4wKQorIyAgZGVmaW5lIG1pbih4LCB5KSBCKHBtaW5zZCwgX21hc2ss IHgsIHksIHVuZGVmKCksIH4wKQorIyAgZGVmaW5lIG11bF9mdWxsKHgsIHkpICgodmVjX3QpQihw bXVsZHEsIF9tYXNrLCB4LCB5LCAodmRpX3QpdW5kZWYoKSwgfjApKQorIyBlbGlmIFVJTlRfU0la RSA9PSA0CisjICBkZWZpbmUgbWF4KHgsIHkpICgodmVjX3QpQihwbWF4dWQsIF9tYXNrLCAodnNp X3QpKHgpLCAodnNpX3QpKHkpLCAodnNpX3QpdW5kZWYoKSwgfjApKQorIyAgZGVmaW5lIG1pbih4 LCB5KSAoKHZlY190KUIocG1pbnVkLCBfbWFzaywgKHZzaV90KSh4KSwgKHZzaV90KSh5KSwgKHZz aV90KXVuZGVmKCksIH4wKSkKKyMgIGRlZmluZSBtdWxfZnVsbCh4LCB5KSAoKHZlY190KUIocG11 bHVkcSwgX21hc2ssICh2c2lfdCkoeCksICh2c2lfdCkoeSksICh2ZGlfdCl1bmRlZigpLCB+MCkp CisjIGVsaWYgSU5UX1NJWkUgPT0gOAorIyAgZGVmaW5lIG1heCh4LCB5KSAoKHZlY190KUIocG1h eHNxLCBfbWFzaywgKHZkaV90KSh4KSwgKHZkaV90KSh5KSwgKHZkaV90KXVuZGVmKCksIH4wKSkK KyMgIGRlZmluZSBtaW4oeCwgeSkgKCh2ZWNfdClCKHBtaW5zcSwgX21hc2ssICh2ZGlfdCkoeCks ICh2ZGlfdCkoeSksICh2ZGlfdCl1bmRlZigpLCB+MCkpCisjIGVsaWYgVUlOVF9TSVpFID09IDgK KyMgIGRlZmluZSBtYXgoeCwgeSkgKCh2ZWNfdClCKHBtYXh1cSwgX21hc2ssICh2ZGlfdCkoeCks ICh2ZGlfdCkoeSksICh2ZGlfdCl1bmRlZigpLCB+MCkpCisjICBkZWZpbmUgbWluKHgsIHkpICgo dmVjX3QpQihwbWludXEsIF9tYXNrLCAodmRpX3QpKHgpLCAodmRpX3QpKHkpLCAodmRpX3QpdW5k ZWYoKSwgfjApKQorIyBlbmRpZgorI2VsaWYgVkVDX1NJWkUgPT0gMTYgJiYgZGVmaW5lZChfX1NT RTJfXykKICMgaWYgSU5UX1NJWkUgPT0gMSB8fCBVSU5UX1NJWkUgPT0gMQogIyAgZGVmaW5lIGlu dGVybGVhdmVfaGkoeCwgeSkgKCh2ZWNfdClfX2J1aWx0aW5faWEzMl9wdW5wY2toYncxMjgoKHZx aV90KSh4KSwgKHZxaV90KSh5KSkpCiAjICBkZWZpbmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSAoKHZl Y190KV9fYnVpbHRpbl9pYTMyX3B1bnBja2xidzEyOCgodnFpX3QpKHgpLCAodnFpX3QpKHkpKSkK QEAgLTU4Nyw2ICs2ODgsMTAgQEAgc3RhdGljIGlubGluZSBib29sIF90b19ib29sKGJ5dGVfdmVj X3QgYgogIyBlbmRpZgogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKF9fQVZYNTEyRl9fKSAmJiBkZWZp bmVkKEZMT0FUX1NJWkUpCisjIGluY2x1ZGUgInNpbWQtZm1hLmMiCisjZW5kaWYKKwogaW50IHNp bWRfdGVzdCh2b2lkKQogewogICAgIHVuc2lnbmVkIGludCBpLCBqOwpAQCAtMTAzNCw3ICsxMTM5 LDggQEAgaW50IHNpbWRfdGVzdCh2b2lkKQogIyBlbmRpZgogI2VuZGlmCiAKLSNpZiBkZWZpbmVk KF9fWE9QX18pICYmIFZFQ19TSVpFID09IDE2ICYmIChJTlRfU0laRSA9PSAyIHx8IElOVF9TSVpF ID09IDQpCisjaWYgKGRlZmluZWQoX19YT1BfXykgJiYgVkVDX1NJWkUgPT0gMTYgJiYgKElOVF9T SVpFID09IDIgfHwgSU5UX1NJWkUgPT0gNCkpIHx8IFwKKyAgICAoZGVmaW5lZChfX0FWWDUxMkZf XykgJiYgZGVmaW5lZChGTE9BVF9TSVpFKSkKICAgICByZXR1cm4gLWZtYV90ZXN0KCk7CiAjZW5k aWYKIAotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5oCisrKyBiL3Rvb2xzL3Rl c3RzL3g4Nl9lbXVsYXRvci9zaW1kLmgKQEAgLTcwLDkgKzcwLDExMSBAQCB0eXBlZGVmIGludCBf X2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZShWCiB0eXBlZGVmIGxvbmcgbG9uZyBfX2F0dHJpYnV0 ZV9fKCh2ZWN0b3Jfc2l6ZShWRUNfU0laRSkpKSB2ZGlfdDsKICNlbmRpZgogCisjaWYgVkVDX1NJ WkUgPT0gMTYKKyMgZGVmaW5lIEIobiwgcywgYS4uLikgICBfX2J1aWx0aW5faWEzMl8gIyMgbiAj IyAxMjggIyMgcyhhKQorIyBkZWZpbmUgQl8obiwgcywgYS4uLikgIF9fYnVpbHRpbl9pYTMyXyAj IyBuICMjICAgICAgICBzKGEpCisjZWxpZiBWRUNfU0laRSA9PSAzMgorIyBkZWZpbmUgQihuLCBz LCBhLi4uKSAgIF9fYnVpbHRpbl9pYTMyXyAjIyBuICMjIDI1NiAjIyBzKGEpCisjZWxpZiBWRUNf U0laRSA9PSA2NAorIyBkZWZpbmUgQihuLCBzLCBhLi4uKSAgIF9fYnVpbHRpbl9pYTMyXyAjIyBu ICMjIDUxMiAjIyBzKGEpCisjIGRlZmluZSBCUihuLCBzLCBhLi4uKSAgX19idWlsdGluX2lhMzJf ICMjIG4gIyMgNTEyICMjIHMoYSwgNCkKKyNlbmRpZgorI2lmbmRlZiBCXworIyBkZWZpbmUgQl8g QgorI2VuZGlmCisjaWZuZGVmIEJSCisjIGRlZmluZSBCUiBCCisjIGRlZmluZSBCUl8gQl8KKyNl bmRpZgorI2lmbmRlZiBCUl8KKyMgZGVmaW5lIEJSXyBCUgorI2VuZGlmCisKKyNpZmRlZiBfX0FW WDUxMkZfXworCisvKgorICogVGhlIG9yaWdpbmFsIHBsYW4gd2FzIHRvIGVmZmVjdCB1c2Ugb2Yg RVZFWCBlbmNvZGluZ3MgZm9yIHNjYWxhciBhcyB3ZWxsIGFzCisgKiAxMjgtIGFuZCAyNTYtYml0 IGluc24gdmFyaWFudHMgYnkgcmVzdHJpY3RpbmcgdGhlIGNvbXBpbGVyIHRvIHVzZSAob24gNjQt Yml0CisgKiBvbmx5IG9mIGNvdXJzZSkgWE1NMTYtWE1NMzEgb25seS4gQWxsIHNvcnRzIG9mIGNv bXBpbGVyIGVycm9ycyByZXN1bHQgd2hlbgorICogZG9pbmcgdGhpcyB3aXRoIGdjYyA4LjIuIFRo ZXJlZm9yZSByZXNvcnQgdG8gaW5qZWN0aW5nIHtldmV4fSBwcmVmaXhlcywKKyAqIHdoaWNoIGhh cyB0aGUgYmVuZWZpdCBvZiBhbHNvIHdvcmtpbmcgZm9yIDMyLWJpdC4gR3JhbnRlZCwgdGhlcmUg aXMgYSBsb3Qgb2YKKyAqIGVzY2FwaW5nIHRvIGdldCByaWdodCBoZXJlLgorICovCithc20gKCAi Lm1hY3JvIG92ZXJyaWRlIGluc24gICAgXG5cdCIKKyAgICAgICIubWFjcm8gJFxcaW5zbiBvOnZh cmFyZyBcblx0IgorICAgICAgIi5wdXJnZW0gXFxpbnNuICAgICAgICAgIFxuXHQiCisgICAgICAi e2V2ZXh9IFxcaW5zbiBcXChcXClvICAgXG5cdCIKKyAgICAgICIubWFjcm8gXFxpbnNuIG86dmFy YXJnICBcblx0IgorICAgICAgIiRcXGluc24gXFwoXFwoXFwpKW8gICAgIFxuXHQiCisgICAgICAi LmVuZG0gICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICIuZW5kbSAgICAgICAgICAgICAg ICAgICBcblx0IgorICAgICAgIi5tYWNybyBcXGluc24gbzp2YXJhcmcgIFxuXHQiCisgICAgICAi JFxcaW5zbiBcXChcXClvICAgICAgICAgXG5cdCIKKyAgICAgICIuZW5kbSAgICAgICAgICAgICAg ICAgICBcblx0IgorICAgICAgIi5lbmRtIiApOworCisjZGVmaW5lIE9WUihuKSBhc20gKCAib3Zl cnJpZGUgdiIgI24gKQorI2RlZmluZSBPVlJfU0ZQKG4pIE9WUihuICMjIHNkKTsgT1ZSKG4gIyMg c3MpCisKKyNpZmRlZiBfX0FWWDUxMlZMX18KKyMgaWZkZWYgX19BVlg1MTJCV19fCisjICBkZWZp bmUgT1ZSX0JXKG4pIE9WUihwICMjIG4gIyMgYik7IE9WUihwICMjIG4gIyMgdykKKyMgZWxzZQor IyAgZGVmaW5lIE9WUl9CVyhuKQorIyBlbmRpZgorIyBkZWZpbmUgT1ZSX0RRKG4pIE9WUihwICMj IG4gIyMgZCk7IE9WUihwICMjIG4gIyMgcSkKKyMgZGVmaW5lIE9WUl9WRlAobikgT1ZSKG4gIyMg cGQpOyBPVlIobiAjIyBwcykKKyNlbHNlCisjIGRlZmluZSBPVlJfQlcobikKKyMgZGVmaW5lIE9W Ul9EUShuKQorIyBkZWZpbmUgT1ZSX1ZGUChuKQorI2VuZGlmCisKKyNkZWZpbmUgT1ZSX0ZNQShu LCB3KSBPVlJfICMjIHcobiAjIyAxMzIpOyBPVlJfICMjIHcobiAjIyAyMTMpOyBcCisgICAgICAg ICAgICAgICAgICAgICAgT1ZSXyAjIyB3KG4gIyMgMjMxKQorI2RlZmluZSBPVlJfRlAobikgT1ZS X1ZGUChuKTsgT1ZSX1NGUChuKQorI2RlZmluZSBPVlJfSU5UKG4pIE9WUl9CVyhuKTsgT1ZSX0RR KG4pCisKK09WUl9TRlAoYnJvYWRjYXN0KTsKK09WUl9TRlAoY29taSk7CitPVlJfRlAoYWRkKTsK K09WUl9GUChkaXYpOworT1ZSKGV4dHJhY3Rwcyk7CitPVlJfRk1BKGZtYWRkLCBGUCk7CitPVlJf Rk1BKGZtc3ViLCBGUCk7CitPVlJfRk1BKGZubWFkZCwgRlApOworT1ZSX0ZNQShmbm1zdWIsIEZQ KTsKK09WUihpbnNlcnRwcyk7CitPVlJfRlAobWF4KTsKK09WUl9GUChtaW4pOworT1ZSKG1vdmQp OworT1ZSKG1vdnEpOworT1ZSX1NGUChtb3YpOworT1ZSX0ZQKG11bCk7CitPVlJfRlAoc3FydCk7 CitPVlJfRlAoc3ViKTsKK09WUl9TRlAodWNvbWkpOworCisjdW5kZWYgT1ZSX1ZGUAorI3VuZGVm IE9WUl9TRlAKKyN1bmRlZiBPVlJfSU5UCisjdW5kZWYgT1ZSX0ZQCisjdW5kZWYgT1ZSX0ZNQQor I3VuZGVmIE9WUl9EUQorI3VuZGVmIE9WUl9CVworI3VuZGVmIE9WUgorCisjZW5kaWYKKwogLyoK ICAqIFN1cHByZXNzIHZhbHVlIHByb3BhZ2F0aW9uIGJ5IHRoZSBjb21waWxlciwgcHJldmVudGlu ZyB1bndhbnRlZAogICogb3B0aW1pemF0aW9uLiBUaGlzIGF0IG9uY2UgbWFrZXMgdGhlIGNvbXBp bGVyIHVzZSBtZW1vcnkgb3BlcmFuZHMKICAqIG1vcmUgb2Z0ZW4sIHdoaWNoIGZvciBvdXIgcHVy cG9zZXMgaXMgdGhlIG1vcmUgaW50ZXJlc3RpbmcgY2FzZS4KICAqLwogI2RlZmluZSB0b3VjaCh2 YXIpIGFzbSB2b2xhdGlsZSAoICIiIDogIittIiAodmFyKSApCisKK3N0YXRpYyBpbmxpbmUgdmVj X3QgdW5kZWYodm9pZCkKK3sKKyAgICB2ZWNfdCB2ID0gdjsKKyAgICByZXR1cm4gdjsKK30KLS0t IGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQtZm1hLmMKKysrIGIvdG9vbHMvdGVzdHMv eDg2X2VtdWxhdG9yL3NpbWQtZm1hLmMKQEAgLTEsMTAgKzEsOSBAQAorI2lmICFkZWZpbmVkKF9f WE9QX18pICYmICFkZWZpbmVkKF9fQVZYNTEyRl9fKQogI2luY2x1ZGUgInNpbWQuaCIKLQotI2lm bmRlZiBfX1hPUF9fCiBFTlRSWShmbWFfdGVzdCk7CiAjZW5kaWYKIAotI2lmIFZFQ19TSVpFIDwg MTYKKyNpZiBWRUNfU0laRSA8IDE2ICYmICFkZWZpbmVkKHRvX2Jvb2wpCiAjIGRlZmluZSB0b19i b29sKGNtcCkgKCF+KGNtcClbMF0pCiAjZWxpZiBWRUNfU0laRSA9PSAxNgogIyBpZiBGTE9BVF9T SVpFID09IDQKQEAgLTI0LDcgKzIzLDEzIEBAIEVOVFJZKGZtYV90ZXN0KTsKICMgZGVmaW5lIGVx KHgsIHkpIHRvX2Jvb2woKHgpID09ICh5KSkKICNlbmRpZgogCi0jaWYgVkVDX1NJWkUgPT0gMTYK KyNpZiBkZWZpbmVkKF9fQVZYNTEyRl9fKSAmJiBWRUNfU0laRSA+IEZMT0FUX1NJWkUKKyMgaWYg RkxPQVRfU0laRSA9PSA0CisjICBkZWZpbmUgZm1hZGRzdWIoeCwgeSwgeikgQlIodmZtYWRkc3Vi cHMsIF9tYXNrLCB4LCB5LCB6LCB+MCkKKyMgZWxpZiBGTE9BVF9TSVpFID09IDgKKyMgIGRlZmlu ZSBmbWFkZHN1Yih4LCB5LCB6KSBCUih2Zm1hZGRzdWJwZCwgX21hc2ssIHgsIHksIHosIH4wKQor IyBlbmRpZgorI2VsaWYgVkVDX1NJWkUgPT0gMTYKICMgaWYgRkxPQVRfU0laRSA9PSA0CiAjICBk ZWZpbmUgYWRkc3ViKHgsIHkpIF9fYnVpbHRpbl9pYTMyX2FkZHN1YnBzKHgsIHkpCiAjICBpZiBk ZWZpbmVkKF9fRk1BNF9fKSB8fCBkZWZpbmVkKF9fRk1BX18pCkBAIC01MCw2ICs1NSwxMCBAQCBF TlRSWShmbWFfdGVzdCk7CiAjIGVuZGlmCiAjZW5kaWYKIAorI2lmIGRlZmluZWQoZm1hZGRzdWIp ICYmICFkZWZpbmVkKGFkZHN1YikKKyMgZGVmaW5lIGFkZHN1Yih4LCB5KSBmbWFkZHN1Yih4LCBi cm9hZGNhc3QoMSksIHkpCisjZW5kaWYKKwogaW50IGZtYV90ZXN0KHZvaWQpCiB7CiAgICAgdW5z aWduZWQgaW50IGk7Ci0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVs YXRvci5jCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRvci5j CkBAIC0yMSw2ICsyMSw3IEBAIGFzbSAoICIucHVzaHNlY3Rpb24gLnRlc3QsIFwiYXhcIiwgQHBy b2cKICNpbmNsdWRlICJhdng1MTJmLW9wbWFzay5oIgogI2luY2x1ZGUgImF2eDUxMmRxLW9wbWFz ay5oIgogI2luY2x1ZGUgImF2eDUxMmJ3LW9wbWFzay5oIgorI2luY2x1ZGUgImF2eDUxMmYuaCIK IAogI2RlZmluZSB2ZXJib3NlIGZhbHNlIC8qIFN3aXRjaCB0byB0cnVlIGZvciBmYXIgbW9yZSBs b2dnaW5nLiAqLwogCkBAIC0yNDgsNiArMjQ5LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgewog ICAgIFNJTUQoT1BNQVNLL2IsICAgIGF2eDUxMmRxX29wbWFzaywgICAgICAgICAxKSwKICAgICBT SU1EKE9QTUFTSy9kLCAgICBhdng1MTJid19vcG1hc2ssICAgICAgICAgNCksCiAgICAgU0lNRChP UE1BU0svcSwgICAgYXZ4NTEyYndfb3BtYXNrLCAgICAgICAgIDgpLAorICAgIFNJTUQoQVZYNTEy RiBmMzIgc2NhbGFyLCAgYXZ4NTEyZiwgICAgICAgIGY0KSwKKyAgICBTSU1EKEFWWDUxMkYgZjMy eDE2LCAgICAgIGF2eDUxMmYsICAgICAgNjRmNCksCisgICAgU0lNRChBVlg1MTJGIGY2NCBzY2Fs YXIsICBhdng1MTJmLCAgICAgICAgZjgpLAorICAgIFNJTUQoQVZYNTEyRiBmNjR4OCwgICAgICAg YXZ4NTEyZiwgICAgICA2NGY4KSwKKyAgICBTSU1EKEFWWDUxMkYgczMyeDE2LCAgICAgIGF2eDUx MmYsICAgICAgNjRpNCksCisgICAgU0lNRChBVlg1MTJGIHUzMngxNiwgICAgICBhdng1MTJmLCAg ICAgIDY0dTQpLAorICAgIFNJTUQoQVZYNTEyRiBzNjR4OCwgICAgICAgYXZ4NTEyZiwgICAgICA2 NGk4KSwKKyAgICBTSU1EKEFWWDUxMkYgdTY0eDgsICAgICAgIGF2eDUxMmYsICAgICAgNjR1OCks CiAjdW5kZWYgU0lNRF8KICN1bmRlZiBTSU1ECiB9OwoKCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWls bWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==