From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v5 20/47] x86emul: basic AVX512F testing Date: Mon, 19 Nov 2018 03:24:32 -0700 Message-ID: <5BF28F6002000078001FD4C3@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BF289D802000078001FD3DF@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] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gOgjO-0000dY-Eo for xen-devel@lists.xenproject.org; Mon, 19 Nov 2018 10:24:38 +0000 In-Reply-To: <5BF289D802000078001FD3DF@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 CnY1OiBBZGQgVlNRUlQqIHRlc3RzLgp2NDogTWFrZSBlcSgpIGFsc28gd29yayBmb3IgNC0gYW5k IDgtYnl0ZSBpbnRlZ2VyIGVsZW1lbnQgc2l6ZXMuCnYzOiBOZXcuCgotLS0gYS90b29scy90ZXN0 cy94ODZfZW11bGF0b3IvTWFrZWZpbGUKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL01h a2VmaWxlCkBAIC0xNiw3ICsxNiw3IEBAIHZwYXRoICUuYyAkKFhFTl9ST09UKS94ZW4vbGliL3g4 NgogCiBDRkxBR1MgKz0gJChDRkxBR1NfeGVuaW5jbHVkZSkKIAotU0lNRCA6PSAzZG5vdyBzc2Ug c3NlMiBzc2U0IGF2eCBhdngyIHhvcAorU0lNRCA6PSAzZG5vdyBzc2Ugc3NlMiBzc2U0IGF2eCBh dngyIHhvcCBhdng1MTJmCiBGTUEgOj0gZm1hNCBmbWEKIFNHIDo9IGF2eDItc2cKIFRFU1RDQVNF UyA6PSBibG93ZmlzaCAkKFNJTUQpICQoRk1BKSAkKFNHKQpAQCAtNjMsNiArNjMsOSBAQCBhdngy LXNnLWZsdHMgOj0gNCA4CiB4b3AtdmVjcyA6PSAkKGF2eC12ZWNzKQogeG9wLWludHMgOj0gMSAy IDQgOAogeG9wLWZsdHMgOj0gJChhdngtZmx0cykKK2F2eDUxMmYtdmVjcyA6PSA2NAorYXZ4NTEy Zi1pbnRzIDo9IDQgOAorYXZ4NTEyZi1mbHRzIDo9IDQgOAogCiBhdng1MTJmLW9wbWFzay12ZWNz IDo9IDIKIGF2eDUxMmRxLW9wbWFzay12ZWNzIDo9IDEKQEAgLTE0OCw3ICsxNTEsNyBAQCAkKGFk ZHN1ZmZpeCAuYywkKFNHKSk6CiAKICQoYWRkc3VmZml4IC5oLCQoU0lNRCkgJChGTUEpICQoU0cp KTogc2ltZC5oCiAKLXhvcC5oOiBzaW1kLWZtYS5jCit4b3AuaCBhdng1MTJmLmg6IHNpbWQtZm1h LmMKIAogZW5kaWYgIyAzMi1iaXQgb3ZlcnJpZGUKIAotLS0gYS90b29scy90ZXN0cy94ODZfZW11 bGF0b3Ivc2ltZC5jCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmMKQEAgLTIs NyArMiw0MSBAQAogCiBFTlRSWShzaW1kX3Rlc3QpOwogCi0jaWYgVkVDX1NJWkUgPT0gOCAmJiBk ZWZpbmVkKF9fU1NFX18pCisjaWYgZGVmaW5lZChfX0FWWDUxMkZfXykKKyMgZGVmaW5lIEFMTF9U UlVFICh+MFVMTCA+PiAoNjQgLSBFTEVNX0NPVU5UKSkKKyMgaWYgVkVDX1NJWkUgPT0gNAorIyAg ZGVmaW5lIGVxKHgsIHkpICh7IFwKKyAgICBmbG9hdCB4XyA9ICh4KVswXTsgXAorICAgIGZsb2F0 IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSkpIHlfID0geyAoeSlbMF0gfTsgXAorICAg IHVuc2lnbmVkIHNob3J0IHJfOyBcCisgICAgYXNtICggInZjbXBzcyAkMCwgJTEsICUyLCAlMCIg IDogIj1rIiAocl8pIDogIm0iICh4XyksICJ2IiAoeV8pICk7IFwKKyAgICByXyA9PSAxOyBcCit9 KQorIyBlbGlmIFZFQ19TSVpFID09IDgKKyMgIGRlZmluZSBlcSh4LCB5KSAoeyBcCisgICAgZG91 YmxlIHhfID0gKHgpWzBdOyBcCisgICAgZG91YmxlIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXpl KDE2KSkpIHlfID0geyAoeSlbMF0gfTsgXAorICAgIHVuc2lnbmVkIHNob3J0IHJfOyBcCisgICAg YXNtICggInZjbXBzZCAkMCwgJTEsICUyLCAlMCIgIDogIj1rIiAocl8pIDogIm0iICh4XyksICJ2 IiAoeV8pICk7IFwKKyAgICByXyA9PSAxOyBcCit9KQorIyBlbGlmIEZMT0FUX1NJWkUgPT0gNAor LyoKKyAqIGdjYydzICh1cCB0byBhdCBsZWFzdCA4LjIpIF9fYnVpbHRpbl9pYTMyX2NtcHBzMjU2 X21hc2soKSBoYXMgYW4gYW5vbWFseSBpbgorICogdGhhdCBpdHMgcmV0dXJuIHR5cGUgaXMgUUkg cmF0aGVyIHRoYW4gVVFJLCBhbmQgaGVuY2UgdGhlIHZhbHVlIHdvdWxkIGdldAorICogc2lnbi1l eHRlbmRlZCBiZWZvcmUgY29tYXByaW5nIHRvIEFMTF9UUlVFLiBUaGUgc2FtZSBvZGRpdHkgZG9l cyBub3QgbWF0dGVyCisgKiBmb3IgX19idWlsdGluX2lhMzJfY21wcGQyNTZfbWFzaygpLCBhcyB0 aGVyZSBvbmx5IDQgYml0cyBhcmUgc2lnbmlmaWNhbnQuCisgKiBIZW5jZSB0aGUgZXh0cmEgIiAm IEFMTF9UUlVFIi4KKyAqLworIyAgZGVmaW5lIGVxKHgsIHkpICgoQlIoY21wcHMsIF9tYXNrLCB4 LCB5LCAwLCAtMSkgJiBBTExfVFJVRSkgPT0gQUxMX1RSVUUpCisjIGVsaWYgRkxPQVRfU0laRSA9 PSA4CisjICBkZWZpbmUgZXEoeCwgeSkgKEJSKGNtcHBkLCBfbWFzaywgeCwgeSwgMCwgLTEpID09 IEFMTF9UUlVFKQorIyBlbGlmIElOVF9TSVpFID09IDQgfHwgVUlOVF9TSVpFID09IDQKKyMgIGRl ZmluZSBlcSh4LCB5KSAoQihwY21wZXFkLCBfbWFzaywgKHZzaV90KSh4KSwgKHZzaV90KSh5KSwg LTEpID09IEFMTF9UUlVFKQorIyBlbGlmIElOVF9TSVpFID09IDggfHwgVUlOVF9TSVpFID09IDgK KyMgIGRlZmluZSBlcSh4LCB5KSAoQihwY21wZXFxLCBfbWFzaywgKHZkaV90KSh4KSwgKHZkaV90 KSh5KSwgLTEpID09IEFMTF9UUlVFKQorIyBlbmRpZgorI2VsaWYgVkVDX1NJWkUgPT0gOCAmJiBk ZWZpbmVkKF9fU1NFX18pCiAjIGRlZmluZSB0b19ib29sKGNtcCkgKF9fYnVpbHRpbl9pYTMyX3Bt b3Ztc2tiKGNtcCkgPT0gMHhmZikKICNlbGlmIFZFQ19TSVpFID09IDE2CiAjIGlmIGRlZmluZWQo X19BVlhfXykgJiYgZGVmaW5lZChGTE9BVF9TSVpFKQpAQCAtOTMsNiArMTI3LDU2IEBAIHN0YXRp YyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICAgICB0b3VjaCh4KTsgXAogICAg IF9fYnVpbHRpbl9pYTMyX3BmcmNwaXQyKF9fYnVpbHRpbl9pYTMyX3BmcnNxaXQxKF9fYnVpbHRp bl9pYTMyX3BmbXVsKHRfLCB0XyksIHgpLCB0Xyk7IFwKIH0pCisjZWxpZiBkZWZpbmVkKEZMT0FU X1NJWkUpICYmIFZFQ19TSVpFID09IEZMT0FUX1NJWkUgJiYgZGVmaW5lZChfX0FWWDUxMkZfXykK KyMgaWYgRkxPQVRfU0laRSA9PSA0CisjICBkZWZpbmUgc3FydCh4KSBzY2FsYXJfMW9wKHgsICJ2 c3FydHNzICVbaW5dLCAlW291dF0sICVbb3V0XSIpCisjIGVsaWYgRkxPQVRfU0laRSA9PSA4Cisj ICBkZWZpbmUgc3FydCh4KSBzY2FsYXJfMW9wKHgsICJ2c3FydHNkICVbaW5dLCAlW291dF0sICVb b3V0XSIpCisjIGVuZGlmCisjZWxpZiBkZWZpbmVkKEZMT0FUX1NJWkUpICYmIGRlZmluZWQoX19B Vlg1MTJGX18pICYmIFwKKyAgICAgIChWRUNfU0laRSA9PSA2NCB8fCBkZWZpbmVkKF9fQVZYNTEy VkxfXykpCisjIGlmIEZMT0FUX1NJWkUgPT0gNAorIyAgZGVmaW5lIGJyb2FkY2FzdCh4KSAoeyBc CisgICAgdmVjX3QgdF87IFwKKyAgICBhc20gKCAiJXtldmV4JX0gdmJyb2FkY2FzdHNzICUxLCAl MCIgXAorICAgICAgICAgIDogIj12IiAodF8pIDogIm0iICgqKGZsb2F0WzFdKXsgeCB9KSApOyBc CisgICAgdF87IFwKK30pCisjICBkZWZpbmUgbWF4KHgsIHkpIEJSXyhtYXhwcywgX21hc2ssIHgs IHksIHVuZGVmKCksIH4wKQorIyAgZGVmaW5lIG1pbih4LCB5KSBCUl8obWlucHMsIF9tYXNrLCB4 LCB5LCB1bmRlZigpLCB+MCkKKyMgIGRlZmluZSBtaXgoeCwgeSkgQihtb3ZhcHMsIF9tYXNrLCB4 LCB5LCAoMGIwMTAxMDEwMTAxMDEwMTAxICYgQUxMX1RSVUUpKQorIyAgZGVmaW5lIHNxcnQoeCkg QlIoc3FydHBzLCBfbWFzaywgeCwgdW5kZWYoKSwgfjApCisjICBpZiBWRUNfU0laRSA9PSAxNgor IyAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpIEIodW5wY2tocHMsIF9tYXNrLCB4LCB5LCB1 bmRlZigpLCB+MCkKKyMgICBkZWZpbmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSBCKHVucGNrbHBzLCBf bWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCisjICAgZGVmaW5lIHN3YXAoeCkgQihzaHVmcHMsIF9t YXNrLCB4LCB4LCAwYjAwMDExMDExLCB1bmRlZigpLCB+MCkKKyMgIGVuZGlmCisjIGVsaWYgRkxP QVRfU0laRSA9PSA4CisjICBpZiBWRUNfU0laRSA+PSAzMgorIyAgIGRlZmluZSBicm9hZGNhc3Qo eCkgKHsgXAorICAgIHZlY190IHRfOyBcCisgICAgYXNtICggIiV7ZXZleCV9IHZicm9hZGNhc3Rz ZCAlMSwgJTAiIDogIj12IiAodF8pIFwKKyAgICAgICAgICA6ICJtIiAoKihkb3VibGVbMV0peyB4 IH0pICk7IFwKKyAgICB0XzsgXAorfSkKKyMgIGVsc2UKKyMgICBkZWZpbmUgYnJvYWRjYXN0KHgp ICh7IFwKKyAgICB2ZWNfdCB0XzsgXAorICAgIGFzbSAoICIle2V2ZXglfSB2cGJyb2FkY2FzdHEg JTEsICUwIiBcCisgICAgICAgICAgOiAiPXYiICh0XykgOiAibSIgKCooZG91YmxlWzFdKXsgeCB9 KSApOyBcCisgICAgdF87IFwKK30pCisjICBlbmRpZgorIyAgZGVmaW5lIG1heCh4LCB5KSBCUl8o bWF4cGQsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKKyMgIGRlZmluZSBtaW4oeCwgeSkgQlJf KG1pbnBkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCisjICBkZWZpbmUgbWl4KHgsIHkpIEIo bW92YXBkLCBfbWFzaywgeCwgeSwgMGIwMTAxMDEwMSkKKyMgIGRlZmluZSBzcXJ0KHgpIEJSKHNx cnRwZCwgX21hc2ssIHgsIHVuZGVmKCksIH4wKQorIyAgaWYgVkVDX1NJWkUgPT0gMTYKKyMgICBk ZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSBCKHVucGNraHBkLCBfbWFzaywgeCwgeSwgdW5kZWYo KSwgfjApCisjICAgZGVmaW5lIGludGVybGVhdmVfbG8oeCwgeSkgQih1bnBja2xwZCwgX21hc2ss IHgsIHksIHVuZGVmKCksIH4wKQorIyAgIGRlZmluZSBzd2FwKHgpIEIoc2h1ZnBkLCBfbWFzaywg eCwgeCwgMGIwMSwgdW5kZWYoKSwgfjApCisjICBlbmRpZgorIyBlbmRpZgogI2VsaWYgRkxPQVRf U0laRSA9PSA0ICYmIGRlZmluZWQoX19TU0VfXykKICMgaWYgVkVDX1NJWkUgPT0gMzIgJiYgZGVm aW5lZChfX0FWWF9fKQogIyAgaWYgZGVmaW5lZChfX0FWWDJfXykKQEAgLTE5MSw3ICsyNzUsMzAg QEAgc3RhdGljIGlubGluZSBib29sIF90b19ib29sKGJ5dGVfdmVjX3QgYgogIyAgZGVmaW5lIHNx cnQoeCkgc2NhbGFyXzFvcCh4LCAic3FydHNkICVbaW5dLCAlW291dF0iKQogIyBlbmRpZgogI2Vu ZGlmCi0jaWYgVkVDX1NJWkUgPT0gMTYgJiYgZGVmaW5lZChfX1NTRTJfXykKKyNpZiAoSU5UX1NJ WkUgPT0gNCB8fCBVSU5UX1NJWkUgPT0gNCB8fCBJTlRfU0laRSA9PSA4IHx8IFVJTlRfU0laRSA9 PSA4KSAmJiBcCisgICAgIGRlZmluZWQoX19BVlg1MTJGX18pICYmIChWRUNfU0laRSA9PSA2NCB8 fCBkZWZpbmVkKF9fQVZYNTEyVkxfXykpCisjIGlmIElOVF9TSVpFID09IDQgfHwgVUlOVF9TSVpF ID09IDQKKyMgIGRlZmluZSBtaXgoeCwgeSkgKCh2ZWNfdClCKG1vdmRxYTMyXywgX21hc2ssICh2 c2lfdCkoeCksICh2c2lfdCkoeSksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgw YjAxMDEwMTAxMDEwMTAxMDEgJiAoKDEgPDwgRUxFTV9DT1VOVCkgLSAxKSkpKQorIyBlbGlmIElO VF9TSVpFID09IDggfHwgVUlOVF9TSVpFID09IDgKKyMgIGRlZmluZSBtaXgoeCwgeSkgKCh2ZWNf dClCKG1vdmRxYTY0XywgX21hc2ssICh2ZGlfdCkoeCksICh2ZGlfdCkoeSksIDBiMDEwMTAxMDEp KQorIyBlbmRpZgorIyBpZiBJTlRfU0laRSA9PSA0CisjICBkZWZpbmUgbWF4KHgsIHkpIEIocG1h eHNkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCisjICBkZWZpbmUgbWluKHgsIHkpIEIocG1p bnNkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCisjICBkZWZpbmUgbXVsX2Z1bGwoeCwgeSkg KCh2ZWNfdClCKHBtdWxkcSwgX21hc2ssIHgsIHksICh2ZGlfdCl1bmRlZigpLCB+MCkpCisjIGVs aWYgVUlOVF9TSVpFID09IDQKKyMgIGRlZmluZSBtYXgoeCwgeSkgKCh2ZWNfdClCKHBtYXh1ZCwg X21hc2ssICh2c2lfdCkoeCksICh2c2lfdCkoeSksICh2c2lfdCl1bmRlZigpLCB+MCkpCisjICBk ZWZpbmUgbWluKHgsIHkpICgodmVjX3QpQihwbWludWQsIF9tYXNrLCAodnNpX3QpKHgpLCAodnNp X3QpKHkpLCAodnNpX3QpdW5kZWYoKSwgfjApKQorIyAgZGVmaW5lIG11bF9mdWxsKHgsIHkpICgo dmVjX3QpQihwbXVsdWRxLCBfbWFzaywgKHZzaV90KSh4KSwgKHZzaV90KSh5KSwgKHZkaV90KXVu ZGVmKCksIH4wKSkKKyMgZWxpZiBJTlRfU0laRSA9PSA4CisjICBkZWZpbmUgbWF4KHgsIHkpICgo dmVjX3QpQihwbWF4c3EsIF9tYXNrLCAodmRpX3QpKHgpLCAodmRpX3QpKHkpLCAodmRpX3QpdW5k ZWYoKSwgfjApKQorIyAgZGVmaW5lIG1pbih4LCB5KSAoKHZlY190KUIocG1pbnNxLCBfbWFzaywg KHZkaV90KSh4KSwgKHZkaV90KSh5KSwgKHZkaV90KXVuZGVmKCksIH4wKSkKKyMgZWxpZiBVSU5U X1NJWkUgPT0gOAorIyAgZGVmaW5lIG1heCh4LCB5KSAoKHZlY190KUIocG1heHVxLCBfbWFzaywg KHZkaV90KSh4KSwgKHZkaV90KSh5KSwgKHZkaV90KXVuZGVmKCksIH4wKSkKKyMgIGRlZmluZSBt aW4oeCwgeSkgKCh2ZWNfdClCKHBtaW51cSwgX21hc2ssICh2ZGlfdCkoeCksICh2ZGlfdCkoeSks ICh2ZGlfdCl1bmRlZigpLCB+MCkpCisjIGVuZGlmCisjZWxpZiBWRUNfU0laRSA9PSAxNiAmJiBk ZWZpbmVkKF9fU1NFMl9fKQogIyBpZiBJTlRfU0laRSA9PSAxIHx8IFVJTlRfU0laRSA9PSAxCiAj ICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSAoKHZlY190KV9fYnVpbHRpbl9pYTMyX3B1bnBj a2hidzEyOCgodnFpX3QpKHgpLCAodnFpX3QpKHkpKSkKICMgIGRlZmluZSBpbnRlcmxlYXZlX2xv KHgsIHkpICgodmVjX3QpX19idWlsdGluX2lhMzJfcHVucGNrbGJ3MTI4KCh2cWlfdCkoeCksICh2 cWlfdCkoeSkpKQpAQCAtNTg3LDYgKzY5NCwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jv b2woYnl0ZV92ZWNfdCBiCiAjIGVuZGlmCiAjZW5kaWYKIAorI2lmIGRlZmluZWQoX19BVlg1MTJG X18pICYmIGRlZmluZWQoRkxPQVRfU0laRSkKKyMgaW5jbHVkZSAic2ltZC1mbWEuYyIKKyNlbmRp ZgorCiBpbnQgc2ltZF90ZXN0KHZvaWQpCiB7CiAgICAgdW5zaWduZWQgaW50IGksIGo7CkBAIC0x MDM0LDcgKzExNDUsOCBAQCBpbnQgc2ltZF90ZXN0KHZvaWQpCiAjIGVuZGlmCiAjZW5kaWYKIAot I2lmIGRlZmluZWQoX19YT1BfXykgJiYgVkVDX1NJWkUgPT0gMTYgJiYgKElOVF9TSVpFID09IDIg fHwgSU5UX1NJWkUgPT0gNCkKKyNpZiAoZGVmaW5lZChfX1hPUF9fKSAmJiBWRUNfU0laRSA9PSAx NiAmJiAoSU5UX1NJWkUgPT0gMiB8fCBJTlRfU0laRSA9PSA0KSkgfHwgXAorICAgIChkZWZpbmVk KF9fQVZYNTEyRl9fKSAmJiBkZWZpbmVkKEZMT0FUX1NJWkUpKQogICAgIHJldHVybiAtZm1hX3Rl c3QoKTsKICNlbmRpZgogCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmgKKysr IGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuaApAQCAtNzAsOSArNzAsMTExIEBAIHR5 cGVkZWYgaW50IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKFYKIHR5cGVkZWYgbG9uZyBsb25n IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKFZFQ19TSVpFKSkpIHZkaV90OwogI2VuZGlmCiAK KyNpZiBWRUNfU0laRSA9PSAxNgorIyBkZWZpbmUgQihuLCBzLCBhLi4uKSAgIF9fYnVpbHRpbl9p YTMyXyAjIyBuICMjIDEyOCAjIyBzKGEpCisjIGRlZmluZSBCXyhuLCBzLCBhLi4uKSAgX19idWls dGluX2lhMzJfICMjIG4gIyMgICAgICAgIHMoYSkKKyNlbGlmIFZFQ19TSVpFID09IDMyCisjIGRl ZmluZSBCKG4sIHMsIGEuLi4pICAgX19idWlsdGluX2lhMzJfICMjIG4gIyMgMjU2ICMjIHMoYSkK KyNlbGlmIFZFQ19TSVpFID09IDY0CisjIGRlZmluZSBCKG4sIHMsIGEuLi4pICAgX19idWlsdGlu X2lhMzJfICMjIG4gIyMgNTEyICMjIHMoYSkKKyMgZGVmaW5lIEJSKG4sIHMsIGEuLi4pICBfX2J1 aWx0aW5faWEzMl8gIyMgbiAjIyA1MTIgIyMgcyhhLCA0KQorI2VuZGlmCisjaWZuZGVmIEJfCisj IGRlZmluZSBCXyBCCisjZW5kaWYKKyNpZm5kZWYgQlIKKyMgZGVmaW5lIEJSIEIKKyMgZGVmaW5l IEJSXyBCXworI2VuZGlmCisjaWZuZGVmIEJSXworIyBkZWZpbmUgQlJfIEJSCisjZW5kaWYKKwor I2lmZGVmIF9fQVZYNTEyRl9fCisKKy8qCisgKiBUaGUgb3JpZ2luYWwgcGxhbiB3YXMgdG8gZWZm ZWN0IHVzZSBvZiBFVkVYIGVuY29kaW5ncyBmb3Igc2NhbGFyIGFzIHdlbGwgYXMKKyAqIDEyOC0g YW5kIDI1Ni1iaXQgaW5zbiB2YXJpYW50cyBieSByZXN0cmljdGluZyB0aGUgY29tcGlsZXIgdG8g dXNlIChvbiA2NC1iaXQKKyAqIG9ubHkgb2YgY291cnNlKSBYTU0xNi1YTU0zMSBvbmx5LiBBbGwg c29ydHMgb2YgY29tcGlsZXIgZXJyb3JzIHJlc3VsdCB3aGVuCisgKiBkb2luZyB0aGlzIHdpdGgg Z2NjIDguMi4gVGhlcmVmb3JlIHJlc29ydCB0byBpbmplY3Rpbmcge2V2ZXh9IHByZWZpeGVzLAor ICogd2hpY2ggaGFzIHRoZSBiZW5lZml0IG9mIGFsc28gd29ya2luZyBmb3IgMzItYml0LiBHcmFu dGVkLCB0aGVyZSBpcyBhIGxvdCBvZgorICogZXNjYXBpbmcgdG8gZ2V0IHJpZ2h0IGhlcmUuCisg Ki8KK2FzbSAoICIubWFjcm8gb3ZlcnJpZGUgaW5zbiAgICBcblx0IgorICAgICAgIi5tYWNybyAk XFxpbnNuIG86dmFyYXJnIFxuXHQiCisgICAgICAiLnB1cmdlbSBcXGluc24gICAgICAgICAgXG5c dCIKKyAgICAgICJ7ZXZleH0gXFxpbnNuIFxcKFxcKW8gICBcblx0IgorICAgICAgIi5tYWNybyBc XGluc24gbzp2YXJhcmcgIFxuXHQiCisgICAgICAiJFxcaW5zbiBcXChcXChcXCkpbyAgICAgXG5c dCIKKyAgICAgICIuZW5kbSAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICAgIi5lbmRtICAg ICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAiLm1hY3JvIFxcaW5zbiBvOnZhcmFyZyAgXG5c dCIKKyAgICAgICIkXFxpbnNuIFxcKFxcKW8gICAgICAgICBcblx0IgorICAgICAgIi5lbmRtICAg ICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAiLmVuZG0iICk7CisKKyNkZWZpbmUgT1ZSKG4p IGFzbSAoICJvdmVycmlkZSB2IiAjbiApCisjZGVmaW5lIE9WUl9TRlAobikgT1ZSKG4gIyMgc2Qp OyBPVlIobiAjIyBzcykKKworI2lmZGVmIF9fQVZYNTEyVkxfXworIyBpZmRlZiBfX0FWWDUxMkJX X18KKyMgIGRlZmluZSBPVlJfQlcobikgT1ZSKHAgIyMgbiAjIyBiKTsgT1ZSKHAgIyMgbiAjIyB3 KQorIyBlbHNlCisjICBkZWZpbmUgT1ZSX0JXKG4pCisjIGVuZGlmCisjIGRlZmluZSBPVlJfRFEo bikgT1ZSKHAgIyMgbiAjIyBkKTsgT1ZSKHAgIyMgbiAjIyBxKQorIyBkZWZpbmUgT1ZSX1ZGUChu KSBPVlIobiAjIyBwZCk7IE9WUihuICMjIHBzKQorI2Vsc2UKKyMgZGVmaW5lIE9WUl9CVyhuKQor IyBkZWZpbmUgT1ZSX0RRKG4pCisjIGRlZmluZSBPVlJfVkZQKG4pCisjZW5kaWYKKworI2RlZmlu ZSBPVlJfRk1BKG4sIHcpIE9WUl8gIyMgdyhuICMjIDEzMik7IE9WUl8gIyMgdyhuICMjIDIxMyk7 IFwKKyAgICAgICAgICAgICAgICAgICAgICBPVlJfICMjIHcobiAjIyAyMzEpCisjZGVmaW5lIE9W Ul9GUChuKSBPVlJfVkZQKG4pOyBPVlJfU0ZQKG4pCisjZGVmaW5lIE9WUl9JTlQobikgT1ZSX0JX KG4pOyBPVlJfRFEobikKKworT1ZSX1NGUChicm9hZGNhc3QpOworT1ZSX1NGUChjb21pKTsKK09W Ul9GUChhZGQpOworT1ZSX0ZQKGRpdik7CitPVlIoZXh0cmFjdHBzKTsKK09WUl9GTUEoZm1hZGQs IEZQKTsKK09WUl9GTUEoZm1zdWIsIEZQKTsKK09WUl9GTUEoZm5tYWRkLCBGUCk7CitPVlJfRk1B KGZubXN1YiwgRlApOworT1ZSKGluc2VydHBzKTsKK09WUl9GUChtYXgpOworT1ZSX0ZQKG1pbik7 CitPVlIobW92ZCk7CitPVlIobW92cSk7CitPVlJfU0ZQKG1vdik7CitPVlJfRlAobXVsKTsKK09W Ul9GUChzcXJ0KTsKK09WUl9GUChzdWIpOworT1ZSX1NGUCh1Y29taSk7CisKKyN1bmRlZiBPVlJf VkZQCisjdW5kZWYgT1ZSX1NGUAorI3VuZGVmIE9WUl9JTlQKKyN1bmRlZiBPVlJfRlAKKyN1bmRl ZiBPVlJfRk1BCisjdW5kZWYgT1ZSX0RRCisjdW5kZWYgT1ZSX0JXCisjdW5kZWYgT1ZSCisKKyNl bmRpZgorCiAvKgogICogU3VwcHJlc3MgdmFsdWUgcHJvcGFnYXRpb24gYnkgdGhlIGNvbXBpbGVy LCBwcmV2ZW50aW5nIHVud2FudGVkCiAgKiBvcHRpbWl6YXRpb24uIFRoaXMgYXQgb25jZSBtYWtl cyB0aGUgY29tcGlsZXIgdXNlIG1lbW9yeSBvcGVyYW5kcwogICogbW9yZSBvZnRlbiwgd2hpY2gg Zm9yIG91ciBwdXJwb3NlcyBpcyB0aGUgbW9yZSBpbnRlcmVzdGluZyBjYXNlLgogICovCiAjZGVm aW5lIHRvdWNoKHZhcikgYXNtIHZvbGF0aWxlICggIiIgOiAiK20iICh2YXIpICkKKworc3RhdGlj IGlubGluZSB2ZWNfdCB1bmRlZih2b2lkKQoreworICAgIHZlY190IHYgPSB2OworICAgIHJldHVy biB2OworfQotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC1mbWEuYworKysgYi90 b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC1mbWEuYwpAQCAtMSwxMCArMSw5IEBACisjaWYg IWRlZmluZWQoX19YT1BfXykgJiYgIWRlZmluZWQoX19BVlg1MTJGX18pCiAjaW5jbHVkZSAic2lt ZC5oIgotCi0jaWZuZGVmIF9fWE9QX18KIEVOVFJZKGZtYV90ZXN0KTsKICNlbmRpZgogCi0jaWYg VkVDX1NJWkUgPCAxNgorI2lmIFZFQ19TSVpFIDwgMTYgJiYgIWRlZmluZWQodG9fYm9vbCkKICMg ZGVmaW5lIHRvX2Jvb2woY21wKSAoIX4oY21wKVswXSkKICNlbGlmIFZFQ19TSVpFID09IDE2CiAj IGlmIEZMT0FUX1NJWkUgPT0gNApAQCAtMjQsNyArMjMsMTMgQEAgRU5UUlkoZm1hX3Rlc3QpOwog IyBkZWZpbmUgZXEoeCwgeSkgdG9fYm9vbCgoeCkgPT0gKHkpKQogI2VuZGlmCiAKLSNpZiBWRUNf U0laRSA9PSAxNgorI2lmIGRlZmluZWQoX19BVlg1MTJGX18pICYmIFZFQ19TSVpFID4gRkxPQVRf U0laRQorIyBpZiBGTE9BVF9TSVpFID09IDQKKyMgIGRlZmluZSBmbWFkZHN1Yih4LCB5LCB6KSBC Uih2Zm1hZGRzdWJwcywgX21hc2ssIHgsIHksIHosIH4wKQorIyBlbGlmIEZMT0FUX1NJWkUgPT0g OAorIyAgZGVmaW5lIGZtYWRkc3ViKHgsIHksIHopIEJSKHZmbWFkZHN1YnBkLCBfbWFzaywgeCwg eSwgeiwgfjApCisjIGVuZGlmCisjZWxpZiBWRUNfU0laRSA9PSAxNgogIyBpZiBGTE9BVF9TSVpF ID09IDQKICMgIGRlZmluZSBhZGRzdWIoeCwgeSkgX19idWlsdGluX2lhMzJfYWRkc3VicHMoeCwg eSkKICMgIGlmIGRlZmluZWQoX19GTUE0X18pIHx8IGRlZmluZWQoX19GTUFfXykKQEAgLTUwLDYg KzU1LDEwIEBAIEVOVFJZKGZtYV90ZXN0KTsKICMgZW5kaWYKICNlbmRpZgogCisjaWYgZGVmaW5l ZChmbWFkZHN1YikgJiYgIWRlZmluZWQoYWRkc3ViKQorIyBkZWZpbmUgYWRkc3ViKHgsIHkpIGZt YWRkc3ViKHgsIGJyb2FkY2FzdCgxKSwgeSkKKyNlbmRpZgorCiBpbnQgZm1hX3Rlc3Qodm9pZCkK IHsKICAgICB1bnNpZ25lZCBpbnQgaTsKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rl c3RfeDg2X2VtdWxhdG9yLmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2 X2VtdWxhdG9yLmMKQEAgLTIxLDYgKzIxLDcgQEAgYXNtICggIi5wdXNoc2VjdGlvbiAudGVzdCwg XCJheFwiLCBAcHJvZwogI2luY2x1ZGUgImF2eDUxMmYtb3BtYXNrLmgiCiAjaW5jbHVkZSAiYXZ4 NTEyZHEtb3BtYXNrLmgiCiAjaW5jbHVkZSAiYXZ4NTEyYnctb3BtYXNrLmgiCisjaW5jbHVkZSAi YXZ4NTEyZi5oIgogCiAjZGVmaW5lIHZlcmJvc2UgZmFsc2UgLyogU3dpdGNoIHRvIHRydWUgZm9y IGZhciBtb3JlIGxvZ2dpbmcuICovCiAKQEAgLTI0OCw2ICsyNDksMTQgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCB7CiAgICAgU0lNRChPUE1BU0svYiwgICAgYXZ4NTEyZHFfb3BtYXNrLCAgICAgICAg IDEpLAogICAgIFNJTUQoT1BNQVNLL2QsICAgIGF2eDUxMmJ3X29wbWFzaywgICAgICAgICA0KSwK ICAgICBTSU1EKE9QTUFTSy9xLCAgICBhdng1MTJid19vcG1hc2ssICAgICAgICAgOCksCisgICAg U0lNRChBVlg1MTJGIGYzMiBzY2FsYXIsICBhdng1MTJmLCAgICAgICAgZjQpLAorICAgIFNJTUQo QVZYNTEyRiBmMzJ4MTYsICAgICAgYXZ4NTEyZiwgICAgICA2NGY0KSwKKyAgICBTSU1EKEFWWDUx MkYgZjY0IHNjYWxhciwgIGF2eDUxMmYsICAgICAgICBmOCksCisgICAgU0lNRChBVlg1MTJGIGY2 NHg4LCAgICAgICBhdng1MTJmLCAgICAgIDY0ZjgpLAorICAgIFNJTUQoQVZYNTEyRiBzMzJ4MTYs ICAgICAgYXZ4NTEyZiwgICAgICA2NGk0KSwKKyAgICBTSU1EKEFWWDUxMkYgdTMyeDE2LCAgICAg IGF2eDUxMmYsICAgICAgNjR1NCksCisgICAgU0lNRChBVlg1MTJGIHM2NHg4LCAgICAgICBhdng1 MTJmLCAgICAgIDY0aTgpLAorICAgIFNJTUQoQVZYNTEyRiB1NjR4OCwgICAgICAgYXZ4NTEyZiwg ICAgICA2NHU4KSwKICN1bmRlZiBTSU1EXwogI3VuZGVmIFNJTUQKIH07CgoKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl Y3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs