From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v7 05/49] x86emul: basic AVX512F testing Date: Wed, 19 Dec 2018 07:37:54 -0700 Message-ID: <5C1A57C202000078002078AA@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5C1A52ED0200007800207865@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 1gZcz1-00024a-Sf for xen-devel@lists.xenproject.org; Wed, 19 Dec 2018 14:37:59 +0000 In-Reply-To: <5C1A52ED0200007800207865@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 CnY2OiBGaXggZm9ybWF0dGluZyBpbiBzaW1kLmguCnY1OiBBZGQgVlNRUlQqIHRlc3RzLgp2NDog TWFrZSBlcSgpIGFsc28gd29yayBmb3IgNC0gYW5kIDgtYnl0ZSBpbnRlZ2VyIGVsZW1lbnQgc2l6 ZXMuCnYzOiBOZXcuCgotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvTWFrZWZpbGUKKysr IGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL01ha2VmaWxlCkBAIC0xOSw3ICsxOSw3IEBAIHZw YXRoICUuYyAkKFhFTl9ST09UKS94ZW4vbGliL3g4NgogCiBDRkxBR1MgKz0gJChDRkxBR1NfeGVu aW5jbHVkZSkKIAotU0lNRCA6PSAzZG5vdyBzc2Ugc3NlMiBzc2U0IGF2eCBhdngyIHhvcAorU0lN RCA6PSAzZG5vdyBzc2Ugc3NlMiBzc2U0IGF2eCBhdngyIHhvcCBhdng1MTJmCiBGTUEgOj0gZm1h NCBmbWEKIFNHIDo9IGF2eDItc2cKIFRFU1RDQVNFUyA6PSBibG93ZmlzaCAkKFNJTUQpICQoRk1B KSAkKFNHKQpAQCAtNjYsNiArNjYsOSBAQCBhdngyLXNnLWZsdHMgOj0gNCA4CiB4b3AtdmVjcyA6 PSAkKGF2eC12ZWNzKQogeG9wLWludHMgOj0gMSAyIDQgOAogeG9wLWZsdHMgOj0gJChhdngtZmx0 cykKK2F2eDUxMmYtdmVjcyA6PSA2NAorYXZ4NTEyZi1pbnRzIDo9IDQgOAorYXZ4NTEyZi1mbHRz IDo9IDQgOAogCiBhdng1MTJmLW9wbWFzay12ZWNzIDo9IDIKIGF2eDUxMmRxLW9wbWFzay12ZWNz IDo9IDEKQEAgLTE3Myw3ICsxNzYsNyBAQCAkKGFkZHN1ZmZpeCAuYywkKFNHKSk6CiAKICQoYWRk c3VmZml4IC5oLCQoU0lNRCkgJChGTUEpICQoU0cpKTogc2ltZC5oCiAKLXhvcC5oOiBzaW1kLWZt YS5jCit4b3AuaCBhdng1MTJmLmg6IHNpbWQtZm1hLmMKIAogZW5kaWYgIyAzMi1iaXQgb3ZlcnJp ZGUKIAotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5jCisrKyBiL3Rvb2xzL3Rl c3RzL3g4Nl9lbXVsYXRvci9zaW1kLmMKQEAgLTIsNyArMiw0MSBAQAogCiBFTlRSWShzaW1kX3Rl c3QpOwogCi0jaWYgVkVDX1NJWkUgPT0gOCAmJiBkZWZpbmVkKF9fU1NFX18pCisjaWYgZGVmaW5l ZChfX0FWWDUxMkZfXykKKyMgZGVmaW5lIEFMTF9UUlVFICh+MFVMTCA+PiAoNjQgLSBFTEVNX0NP VU5UKSkKKyMgaWYgVkVDX1NJWkUgPT0gNAorIyAgZGVmaW5lIGVxKHgsIHkpICh7IFwKKyAgICBm bG9hdCB4XyA9ICh4KVswXTsgXAorICAgIGZsb2F0IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXpl KDE2KSkpIHlfID0geyAoeSlbMF0gfTsgXAorICAgIHVuc2lnbmVkIHNob3J0IHJfOyBcCisgICAg YXNtICggInZjbXBzcyAkMCwgJTEsICUyLCAlMCIgIDogIj1rIiAocl8pIDogIm0iICh4XyksICJ2 IiAoeV8pICk7IFwKKyAgICByXyA9PSAxOyBcCit9KQorIyBlbGlmIFZFQ19TSVpFID09IDgKKyMg IGRlZmluZSBlcSh4LCB5KSAoeyBcCisgICAgZG91YmxlIHhfID0gKHgpWzBdOyBcCisgICAgZG91 YmxlIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSkpIHlfID0geyAoeSlbMF0gfTsgXAor ICAgIHVuc2lnbmVkIHNob3J0IHJfOyBcCisgICAgYXNtICggInZjbXBzZCAkMCwgJTEsICUyLCAl MCIgIDogIj1rIiAocl8pIDogIm0iICh4XyksICJ2IiAoeV8pICk7IFwKKyAgICByXyA9PSAxOyBc Cit9KQorIyBlbGlmIEZMT0FUX1NJWkUgPT0gNAorLyoKKyAqIGdjYydzICh1cCB0byBhdCBsZWFz dCA4LjIpIF9fYnVpbHRpbl9pYTMyX2NtcHBzMjU2X21hc2soKSBoYXMgYW4gYW5vbWFseSBpbgor ICogdGhhdCBpdHMgcmV0dXJuIHR5cGUgaXMgUUkgcmF0aGVyIHRoYW4gVVFJLCBhbmQgaGVuY2Ug dGhlIHZhbHVlIHdvdWxkIGdldAorICogc2lnbi1leHRlbmRlZCBiZWZvcmUgY29tYXByaW5nIHRv IEFMTF9UUlVFLiBUaGUgc2FtZSBvZGRpdHkgZG9lcyBub3QgbWF0dGVyCisgKiBmb3IgX19idWls dGluX2lhMzJfY21wcGQyNTZfbWFzaygpLCBhcyB0aGVyZSBvbmx5IDQgYml0cyBhcmUgc2lnbmlm aWNhbnQuCisgKiBIZW5jZSB0aGUgZXh0cmEgIiAmIEFMTF9UUlVFIi4KKyAqLworIyAgZGVmaW5l IGVxKHgsIHkpICgoQlIoY21wcHMsIF9tYXNrLCB4LCB5LCAwLCAtMSkgJiBBTExfVFJVRSkgPT0g QUxMX1RSVUUpCisjIGVsaWYgRkxPQVRfU0laRSA9PSA4CisjICBkZWZpbmUgZXEoeCwgeSkgKEJS KGNtcHBkLCBfbWFzaywgeCwgeSwgMCwgLTEpID09IEFMTF9UUlVFKQorIyBlbGlmIElOVF9TSVpF ID09IDQgfHwgVUlOVF9TSVpFID09IDQKKyMgIGRlZmluZSBlcSh4LCB5KSAoQihwY21wZXFkLCBf bWFzaywgKHZzaV90KSh4KSwgKHZzaV90KSh5KSwgLTEpID09IEFMTF9UUlVFKQorIyBlbGlmIElO VF9TSVpFID09IDggfHwgVUlOVF9TSVpFID09IDgKKyMgIGRlZmluZSBlcSh4LCB5KSAoQihwY21w ZXFxLCBfbWFzaywgKHZkaV90KSh4KSwgKHZkaV90KSh5KSwgLTEpID09IEFMTF9UUlVFKQorIyBl bmRpZgorI2VsaWYgVkVDX1NJWkUgPT0gOCAmJiBkZWZpbmVkKF9fU1NFX18pCiAjIGRlZmluZSB0 b19ib29sKGNtcCkgKF9fYnVpbHRpbl9pYTMyX3Btb3Ztc2tiKGNtcCkgPT0gMHhmZikKICNlbGlm IFZFQ19TSVpFID09IDE2CiAjIGlmIGRlZmluZWQoX19BVlhfXykgJiYgZGVmaW5lZChGTE9BVF9T SVpFKQpAQCAtOTMsNiArMTI3LDU2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRl X3ZlY190IGIKICAgICB0b3VjaCh4KTsgXAogICAgIF9fYnVpbHRpbl9pYTMyX3BmcmNwaXQyKF9f YnVpbHRpbl9pYTMyX3BmcnNxaXQxKF9fYnVpbHRpbl9pYTMyX3BmbXVsKHRfLCB0XyksIHgpLCB0 Xyk7IFwKIH0pCisjZWxpZiBkZWZpbmVkKEZMT0FUX1NJWkUpICYmIFZFQ19TSVpFID09IEZMT0FU X1NJWkUgJiYgZGVmaW5lZChfX0FWWDUxMkZfXykKKyMgaWYgRkxPQVRfU0laRSA9PSA0CisjICBk ZWZpbmUgc3FydCh4KSBzY2FsYXJfMW9wKHgsICJ2c3FydHNzICVbaW5dLCAlW291dF0sICVbb3V0 XSIpCisjIGVsaWYgRkxPQVRfU0laRSA9PSA4CisjICBkZWZpbmUgc3FydCh4KSBzY2FsYXJfMW9w KHgsICJ2c3FydHNkICVbaW5dLCAlW291dF0sICVbb3V0XSIpCisjIGVuZGlmCisjZWxpZiBkZWZp bmVkKEZMT0FUX1NJWkUpICYmIGRlZmluZWQoX19BVlg1MTJGX18pICYmIFwKKyAgICAgIChWRUNf U0laRSA9PSA2NCB8fCBkZWZpbmVkKF9fQVZYNTEyVkxfXykpCisjIGlmIEZMT0FUX1NJWkUgPT0g NAorIyAgZGVmaW5lIGJyb2FkY2FzdCh4KSAoeyBcCisgICAgdmVjX3QgdF87IFwKKyAgICBhc20g KCAiJXtldmV4JX0gdmJyb2FkY2FzdHNzICUxLCAlMCIgXAorICAgICAgICAgIDogIj12IiAodF8p IDogIm0iICgqKGZsb2F0WzFdKXsgeCB9KSApOyBcCisgICAgdF87IFwKK30pCisjICBkZWZpbmUg bWF4KHgsIHkpIEJSXyhtYXhwcywgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQorIyAgZGVmaW5l IG1pbih4LCB5KSBCUl8obWlucHMsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKKyMgIGRlZmlu ZSBtaXgoeCwgeSkgQihtb3ZhcHMsIF9tYXNrLCB4LCB5LCAoMGIwMTAxMDEwMTAxMDEwMTAxICYg QUxMX1RSVUUpKQorIyAgZGVmaW5lIHNxcnQoeCkgQlIoc3FydHBzLCBfbWFzaywgeCwgdW5kZWYo KSwgfjApCisjICBpZiBWRUNfU0laRSA9PSAxNgorIyAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgs IHkpIEIodW5wY2tocHMsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKKyMgICBkZWZpbmUgaW50 ZXJsZWF2ZV9sbyh4LCB5KSBCKHVucGNrbHBzLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCisj ICAgZGVmaW5lIHN3YXAoeCkgQihzaHVmcHMsIF9tYXNrLCB4LCB4LCAwYjAwMDExMDExLCB1bmRl ZigpLCB+MCkKKyMgIGVuZGlmCisjIGVsaWYgRkxPQVRfU0laRSA9PSA4CisjICBpZiBWRUNfU0la RSA+PSAzMgorIyAgIGRlZmluZSBicm9hZGNhc3QoeCkgKHsgXAorICAgIHZlY190IHRfOyBcCisg ICAgYXNtICggIiV7ZXZleCV9IHZicm9hZGNhc3RzZCAlMSwgJTAiIDogIj12IiAodF8pIFwKKyAg ICAgICAgICA6ICJtIiAoKihkb3VibGVbMV0peyB4IH0pICk7IFwKKyAgICB0XzsgXAorfSkKKyMg IGVsc2UKKyMgICBkZWZpbmUgYnJvYWRjYXN0KHgpICh7IFwKKyAgICB2ZWNfdCB0XzsgXAorICAg IGFzbSAoICIle2V2ZXglfSB2cGJyb2FkY2FzdHEgJTEsICUwIiBcCisgICAgICAgICAgOiAiPXYi ICh0XykgOiAibSIgKCooZG91YmxlWzFdKXsgeCB9KSApOyBcCisgICAgdF87IFwKK30pCisjICBl bmRpZgorIyAgZGVmaW5lIG1heCh4LCB5KSBCUl8obWF4cGQsIF9tYXNrLCB4LCB5LCB1bmRlZigp LCB+MCkKKyMgIGRlZmluZSBtaW4oeCwgeSkgQlJfKG1pbnBkLCBfbWFzaywgeCwgeSwgdW5kZWYo KSwgfjApCisjICBkZWZpbmUgbWl4KHgsIHkpIEIobW92YXBkLCBfbWFzaywgeCwgeSwgMGIwMTAx MDEwMSkKKyMgIGRlZmluZSBzcXJ0KHgpIEJSKHNxcnRwZCwgX21hc2ssIHgsIHVuZGVmKCksIH4w KQorIyAgaWYgVkVDX1NJWkUgPT0gMTYKKyMgICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSBC KHVucGNraHBkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCisjICAgZGVmaW5lIGludGVybGVh dmVfbG8oeCwgeSkgQih1bnBja2xwZCwgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQorIyAgIGRl ZmluZSBzd2FwKHgpIEIoc2h1ZnBkLCBfbWFzaywgeCwgeCwgMGIwMSwgdW5kZWYoKSwgfjApCisj ICBlbmRpZgorIyBlbmRpZgogI2VsaWYgRkxPQVRfU0laRSA9PSA0ICYmIGRlZmluZWQoX19TU0Vf XykKICMgaWYgVkVDX1NJWkUgPT0gMzIgJiYgZGVmaW5lZChfX0FWWF9fKQogIyAgaWYgZGVmaW5l ZChfX0FWWDJfXykKQEAgLTE5MSw3ICsyNzUsMzAgQEAgc3RhdGljIGlubGluZSBib29sIF90b19i b29sKGJ5dGVfdmVjX3QgYgogIyAgZGVmaW5lIHNxcnQoeCkgc2NhbGFyXzFvcCh4LCAic3FydHNk ICVbaW5dLCAlW291dF0iKQogIyBlbmRpZgogI2VuZGlmCi0jaWYgVkVDX1NJWkUgPT0gMTYgJiYg ZGVmaW5lZChfX1NTRTJfXykKKyNpZiAoSU5UX1NJWkUgPT0gNCB8fCBVSU5UX1NJWkUgPT0gNCB8 fCBJTlRfU0laRSA9PSA4IHx8IFVJTlRfU0laRSA9PSA4KSAmJiBcCisgICAgIGRlZmluZWQoX19B Vlg1MTJGX18pICYmIChWRUNfU0laRSA9PSA2NCB8fCBkZWZpbmVkKF9fQVZYNTEyVkxfXykpCisj IGlmIElOVF9TSVpFID09IDQgfHwgVUlOVF9TSVpFID09IDQKKyMgIGRlZmluZSBtaXgoeCwgeSkg KCh2ZWNfdClCKG1vdmRxYTMyXywgX21hc2ssICh2c2lfdCkoeCksICh2c2lfdCkoeSksIFwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwYjAxMDEwMTAxMDEwMTAxMDEgJiAoKDEgPDwg RUxFTV9DT1VOVCkgLSAxKSkpKQorIyBlbGlmIElOVF9TSVpFID09IDggfHwgVUlOVF9TSVpFID09 IDgKKyMgIGRlZmluZSBtaXgoeCwgeSkgKCh2ZWNfdClCKG1vdmRxYTY0XywgX21hc2ssICh2ZGlf dCkoeCksICh2ZGlfdCkoeSksIDBiMDEwMTAxMDEpKQorIyBlbmRpZgorIyBpZiBJTlRfU0laRSA9 PSA0CisjICBkZWZpbmUgbWF4KHgsIHkpIEIocG1heHNkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwg fjApCisjICBkZWZpbmUgbWluKHgsIHkpIEIocG1pbnNkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwg fjApCisjICBkZWZpbmUgbXVsX2Z1bGwoeCwgeSkgKCh2ZWNfdClCKHBtdWxkcSwgX21hc2ssIHgs IHksICh2ZGlfdCl1bmRlZigpLCB+MCkpCisjIGVsaWYgVUlOVF9TSVpFID09IDQKKyMgIGRlZmlu ZSBtYXgoeCwgeSkgKCh2ZWNfdClCKHBtYXh1ZCwgX21hc2ssICh2c2lfdCkoeCksICh2c2lfdCko eSksICh2c2lfdCl1bmRlZigpLCB+MCkpCisjICBkZWZpbmUgbWluKHgsIHkpICgodmVjX3QpQihw bWludWQsIF9tYXNrLCAodnNpX3QpKHgpLCAodnNpX3QpKHkpLCAodnNpX3QpdW5kZWYoKSwgfjAp KQorIyAgZGVmaW5lIG11bF9mdWxsKHgsIHkpICgodmVjX3QpQihwbXVsdWRxLCBfbWFzaywgKHZz aV90KSh4KSwgKHZzaV90KSh5KSwgKHZkaV90KXVuZGVmKCksIH4wKSkKKyMgZWxpZiBJTlRfU0la RSA9PSA4CisjICBkZWZpbmUgbWF4KHgsIHkpICgodmVjX3QpQihwbWF4c3EsIF9tYXNrLCAodmRp X3QpKHgpLCAodmRpX3QpKHkpLCAodmRpX3QpdW5kZWYoKSwgfjApKQorIyAgZGVmaW5lIG1pbih4 LCB5KSAoKHZlY190KUIocG1pbnNxLCBfbWFzaywgKHZkaV90KSh4KSwgKHZkaV90KSh5KSwgKHZk aV90KXVuZGVmKCksIH4wKSkKKyMgZWxpZiBVSU5UX1NJWkUgPT0gOAorIyAgZGVmaW5lIG1heCh4 LCB5KSAoKHZlY190KUIocG1heHVxLCBfbWFzaywgKHZkaV90KSh4KSwgKHZkaV90KSh5KSwgKHZk aV90KXVuZGVmKCksIH4wKSkKKyMgIGRlZmluZSBtaW4oeCwgeSkgKCh2ZWNfdClCKHBtaW51cSwg X21hc2ssICh2ZGlfdCkoeCksICh2ZGlfdCkoeSksICh2ZGlfdCl1bmRlZigpLCB+MCkpCisjIGVu ZGlmCisjZWxpZiBWRUNfU0laRSA9PSAxNiAmJiBkZWZpbmVkKF9fU1NFMl9fKQogIyBpZiBJTlRf U0laRSA9PSAxIHx8IFVJTlRfU0laRSA9PSAxCiAjICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5 KSAoKHZlY190KV9fYnVpbHRpbl9pYTMyX3B1bnBja2hidzEyOCgodnFpX3QpKHgpLCAodnFpX3Qp KHkpKSkKICMgIGRlZmluZSBpbnRlcmxlYXZlX2xvKHgsIHkpICgodmVjX3QpX19idWlsdGluX2lh MzJfcHVucGNrbGJ3MTI4KCh2cWlfdCkoeCksICh2cWlfdCkoeSkpKQpAQCAtNTg3LDYgKzY5NCwx MCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAjIGVuZGlmCiAj ZW5kaWYKIAorI2lmIGRlZmluZWQoX19BVlg1MTJGX18pICYmIGRlZmluZWQoRkxPQVRfU0laRSkK KyMgaW5jbHVkZSAic2ltZC1mbWEuYyIKKyNlbmRpZgorCiBpbnQgc2ltZF90ZXN0KHZvaWQpCiB7 CiAgICAgdW5zaWduZWQgaW50IGksIGo7CkBAIC0xMDM0LDcgKzExNDUsOCBAQCBpbnQgc2ltZF90 ZXN0KHZvaWQpCiAjIGVuZGlmCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoX19YT1BfXykgJiYgVkVD X1NJWkUgPT0gMTYgJiYgKElOVF9TSVpFID09IDIgfHwgSU5UX1NJWkUgPT0gNCkKKyNpZiAoZGVm aW5lZChfX1hPUF9fKSAmJiBWRUNfU0laRSA9PSAxNiAmJiAoSU5UX1NJWkUgPT0gMiB8fCBJTlRf U0laRSA9PSA0KSkgfHwgXAorICAgIChkZWZpbmVkKF9fQVZYNTEyRl9fKSAmJiBkZWZpbmVkKEZM T0FUX1NJWkUpKQogICAgIHJldHVybiAtZm1hX3Rlc3QoKTsKICNlbmRpZgogCi0tLSBhL3Rvb2xz L3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmgKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9y L3NpbWQuaApAQCAtNzAsOSArNzAsMTExIEBAIHR5cGVkZWYgaW50IF9fYXR0cmlidXRlX18oKHZl Y3Rvcl9zaXplKFYKIHR5cGVkZWYgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXpl KFZFQ19TSVpFKSkpIHZkaV90OwogI2VuZGlmCiAKKyNpZiBWRUNfU0laRSA9PSAxNgorIyBkZWZp bmUgQihuLCBzLCBhLi4uKSAgIF9fYnVpbHRpbl9pYTMyXyAjIyBuICMjIDEyOCAjIyBzKGEpCisj IGRlZmluZSBCXyhuLCBzLCBhLi4uKSAgX19idWlsdGluX2lhMzJfICMjIG4gIyMgICAgICAgIHMo YSkKKyNlbGlmIFZFQ19TSVpFID09IDMyCisjIGRlZmluZSBCKG4sIHMsIGEuLi4pICAgX19idWls dGluX2lhMzJfICMjIG4gIyMgMjU2ICMjIHMoYSkKKyNlbGlmIFZFQ19TSVpFID09IDY0CisjIGRl ZmluZSBCKG4sIHMsIGEuLi4pICAgX19idWlsdGluX2lhMzJfICMjIG4gIyMgNTEyICMjIHMoYSkK KyMgZGVmaW5lIEJSKG4sIHMsIGEuLi4pICBfX2J1aWx0aW5faWEzMl8gIyMgbiAjIyA1MTIgIyMg cyhhLCA0KQorI2VuZGlmCisjaWZuZGVmIEJfCisjIGRlZmluZSBCXyBCCisjZW5kaWYKKyNpZm5k ZWYgQlIKKyMgZGVmaW5lIEJSIEIKKyMgZGVmaW5lIEJSXyBCXworI2VuZGlmCisjaWZuZGVmIEJS XworIyBkZWZpbmUgQlJfIEJSCisjZW5kaWYKKworI2lmZGVmIF9fQVZYNTEyRl9fCisKKy8qCisg KiBUaGUgb3JpZ2luYWwgcGxhbiB3YXMgdG8gZWZmZWN0IHVzZSBvZiBFVkVYIGVuY29kaW5ncyBm b3Igc2NhbGFyIGFzIHdlbGwgYXMKKyAqIDEyOC0gYW5kIDI1Ni1iaXQgaW5zbiB2YXJpYW50cyBi eSByZXN0cmljdGluZyB0aGUgY29tcGlsZXIgdG8gdXNlIChvbiA2NC1iaXQKKyAqIG9ubHkgb2Yg Y291cnNlKSBYTU0xNi1YTU0zMSBvbmx5LiBBbGwgc29ydHMgb2YgY29tcGlsZXIgZXJyb3JzIHJl c3VsdCB3aGVuCisgKiBkb2luZyB0aGlzIHdpdGggZ2NjIDguMi4gVGhlcmVmb3JlIHJlc29ydCB0 byBpbmplY3Rpbmcge2V2ZXh9IHByZWZpeGVzLAorICogd2hpY2ggaGFzIHRoZSBiZW5lZml0IG9m IGFsc28gd29ya2luZyBmb3IgMzItYml0LiBHcmFudGVkLCB0aGVyZSBpcyBhIGxvdCBvZgorICog ZXNjYXBpbmcgdG8gZ2V0IHJpZ2h0IGhlcmUuCisgKi8KK2FzbSAoICIubWFjcm8gb3ZlcnJpZGUg aW5zbiAgICBcblx0IgorICAgICAgIi5tYWNybyAkXFxpbnNuIG86dmFyYXJnIFxuXHQiCisgICAg ICAiLnB1cmdlbSBcXGluc24gICAgICAgICAgXG5cdCIKKyAgICAgICJ7ZXZleH0gXFxpbnNuIFxc KFxcKW8gICBcblx0IgorICAgICAgIi5tYWNybyBcXGluc24gbzp2YXJhcmcgIFxuXHQiCisgICAg ICAiJFxcaW5zbiBcXChcXChcXCkpbyAgICAgXG5cdCIKKyAgICAgICIuZW5kbSAgICAgICAgICAg ICAgICAgICBcblx0IgorICAgICAgIi5lbmRtICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAg ICAiLm1hY3JvIFxcaW5zbiBvOnZhcmFyZyAgXG5cdCIKKyAgICAgICIkXFxpbnNuIFxcKFxcKW8g ICAgICAgICBcblx0IgorICAgICAgIi5lbmRtICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAg ICAiLmVuZG0iICk7CisKKyMgZGVmaW5lIE9WUihuKSBhc20gKCAib3ZlcnJpZGUgdiIgI24gKQor IyBkZWZpbmUgT1ZSX1NGUChuKSBPVlIobiAjIyBzZCk7IE9WUihuICMjIHNzKQorCisjIGlmZGVm IF9fQVZYNTEyVkxfXworIyAgaWZkZWYgX19BVlg1MTJCV19fCisjICAgZGVmaW5lIE9WUl9CVyhu KSBPVlIocCAjIyBuICMjIGIpOyBPVlIocCAjIyBuICMjIHcpCisjICBlbHNlCisjICAgZGVmaW5l IE9WUl9CVyhuKQorIyAgZW5kaWYKKyMgIGRlZmluZSBPVlJfRFEobikgT1ZSKHAgIyMgbiAjIyBk KTsgT1ZSKHAgIyMgbiAjIyBxKQorIyAgZGVmaW5lIE9WUl9WRlAobikgT1ZSKG4gIyMgcGQpOyBP VlIobiAjIyBwcykKKyMgZWxzZQorIyAgZGVmaW5lIE9WUl9CVyhuKQorIyAgZGVmaW5lIE9WUl9E UShuKQorIyAgZGVmaW5lIE9WUl9WRlAobikKKyMgZW5kaWYKKworIyBkZWZpbmUgT1ZSX0ZNQShu LCB3KSBPVlJfICMjIHcobiAjIyAxMzIpOyBPVlJfICMjIHcobiAjIyAyMTMpOyBcCisgICAgICAg ICAgICAgICAgICAgICAgIE9WUl8gIyMgdyhuICMjIDIzMSkKKyMgZGVmaW5lIE9WUl9GUChuKSBP VlJfVkZQKG4pOyBPVlJfU0ZQKG4pCisjIGRlZmluZSBPVlJfSU5UKG4pIE9WUl9CVyhuKTsgT1ZS X0RRKG4pCisKK09WUl9TRlAoYnJvYWRjYXN0KTsKK09WUl9TRlAoY29taSk7CitPVlJfRlAoYWRk KTsKK09WUl9GUChkaXYpOworT1ZSKGV4dHJhY3Rwcyk7CitPVlJfRk1BKGZtYWRkLCBGUCk7CitP VlJfRk1BKGZtc3ViLCBGUCk7CitPVlJfRk1BKGZubWFkZCwgRlApOworT1ZSX0ZNQShmbm1zdWIs IEZQKTsKK09WUihpbnNlcnRwcyk7CitPVlJfRlAobWF4KTsKK09WUl9GUChtaW4pOworT1ZSKG1v dmQpOworT1ZSKG1vdnEpOworT1ZSX1NGUChtb3YpOworT1ZSX0ZQKG11bCk7CitPVlJfRlAoc3Fy dCk7CitPVlJfRlAoc3ViKTsKK09WUl9TRlAodWNvbWkpOworCisjIHVuZGVmIE9WUl9WRlAKKyMg dW5kZWYgT1ZSX1NGUAorIyB1bmRlZiBPVlJfSU5UCisjIHVuZGVmIE9WUl9GUAorIyB1bmRlZiBP VlJfRk1BCisjIHVuZGVmIE9WUl9EUQorIyB1bmRlZiBPVlJfQlcKKyMgdW5kZWYgT1ZSCisKKyNl bmRpZiAvKiBfX0FWWDUxMkZfXyAqLworCiAvKgogICogU3VwcHJlc3MgdmFsdWUgcHJvcGFnYXRp b24gYnkgdGhlIGNvbXBpbGVyLCBwcmV2ZW50aW5nIHVud2FudGVkCiAgKiBvcHRpbWl6YXRpb24u IFRoaXMgYXQgb25jZSBtYWtlcyB0aGUgY29tcGlsZXIgdXNlIG1lbW9yeSBvcGVyYW5kcwogICog bW9yZSBvZnRlbiwgd2hpY2ggZm9yIG91ciBwdXJwb3NlcyBpcyB0aGUgbW9yZSBpbnRlcmVzdGlu ZyBjYXNlLgogICovCiAjZGVmaW5lIHRvdWNoKHZhcikgYXNtIHZvbGF0aWxlICggIiIgOiAiK20i ICh2YXIpICkKKworc3RhdGljIGlubGluZSB2ZWNfdCB1bmRlZih2b2lkKQoreworICAgIHZlY190 IHYgPSB2OworICAgIHJldHVybiB2OworfQotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3Iv c2ltZC1mbWEuYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC1mbWEuYwpAQCAt MSwxMCArMSw5IEBACisjaWYgIWRlZmluZWQoX19YT1BfXykgJiYgIWRlZmluZWQoX19BVlg1MTJG X18pCiAjaW5jbHVkZSAic2ltZC5oIgotCi0jaWZuZGVmIF9fWE9QX18KIEVOVFJZKGZtYV90ZXN0 KTsKICNlbmRpZgogCi0jaWYgVkVDX1NJWkUgPCAxNgorI2lmIFZFQ19TSVpFIDwgMTYgJiYgIWRl ZmluZWQodG9fYm9vbCkKICMgZGVmaW5lIHRvX2Jvb2woY21wKSAoIX4oY21wKVswXSkKICNlbGlm IFZFQ19TSVpFID09IDE2CiAjIGlmIEZMT0FUX1NJWkUgPT0gNApAQCAtMjQsNyArMjMsMTMgQEAg RU5UUlkoZm1hX3Rlc3QpOwogIyBkZWZpbmUgZXEoeCwgeSkgdG9fYm9vbCgoeCkgPT0gKHkpKQog I2VuZGlmCiAKLSNpZiBWRUNfU0laRSA9PSAxNgorI2lmIGRlZmluZWQoX19BVlg1MTJGX18pICYm IFZFQ19TSVpFID4gRkxPQVRfU0laRQorIyBpZiBGTE9BVF9TSVpFID09IDQKKyMgIGRlZmluZSBm bWFkZHN1Yih4LCB5LCB6KSBCUih2Zm1hZGRzdWJwcywgX21hc2ssIHgsIHksIHosIH4wKQorIyBl bGlmIEZMT0FUX1NJWkUgPT0gOAorIyAgZGVmaW5lIGZtYWRkc3ViKHgsIHksIHopIEJSKHZmbWFk ZHN1YnBkLCBfbWFzaywgeCwgeSwgeiwgfjApCisjIGVuZGlmCisjZWxpZiBWRUNfU0laRSA9PSAx NgogIyBpZiBGTE9BVF9TSVpFID09IDQKICMgIGRlZmluZSBhZGRzdWIoeCwgeSkgX19idWlsdGlu X2lhMzJfYWRkc3VicHMoeCwgeSkKICMgIGlmIGRlZmluZWQoX19GTUE0X18pIHx8IGRlZmluZWQo X19GTUFfXykKQEAgLTUwLDYgKzU1LDEwIEBAIEVOVFJZKGZtYV90ZXN0KTsKICMgZW5kaWYKICNl bmRpZgogCisjaWYgZGVmaW5lZChmbWFkZHN1YikgJiYgIWRlZmluZWQoYWRkc3ViKQorIyBkZWZp bmUgYWRkc3ViKHgsIHkpIGZtYWRkc3ViKHgsIGJyb2FkY2FzdCgxKSwgeSkKKyNlbmRpZgorCiBp bnQgZm1hX3Rlc3Qodm9pZCkKIHsKICAgICB1bnNpZ25lZCBpbnQgaTsKLS0tIGEvdG9vbHMvdGVz dHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKKysrIGIvdG9vbHMvdGVzdHMveDg2 X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKQEAgLTIxLDYgKzIxLDcgQEAgYXNtICggIi5w dXNoc2VjdGlvbiAudGVzdCwgXCJheFwiLCBAcHJvZwogI2luY2x1ZGUgImF2eDUxMmYtb3BtYXNr LmgiCiAjaW5jbHVkZSAiYXZ4NTEyZHEtb3BtYXNrLmgiCiAjaW5jbHVkZSAiYXZ4NTEyYnctb3Bt YXNrLmgiCisjaW5jbHVkZSAiYXZ4NTEyZi5oIgogCiAjZGVmaW5lIHZlcmJvc2UgZmFsc2UgLyog U3dpdGNoIHRvIHRydWUgZm9yIGZhciBtb3JlIGxvZ2dpbmcuICovCiAKQEAgLTI0OCw2ICsyNDks MTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAgU0lNRChPUE1BU0svYiwgICAgYXZ4NTEy ZHFfb3BtYXNrLCAgICAgICAgIDEpLAogICAgIFNJTUQoT1BNQVNLL2QsICAgIGF2eDUxMmJ3X29w bWFzaywgICAgICAgICA0KSwKICAgICBTSU1EKE9QTUFTSy9xLCAgICBhdng1MTJid19vcG1hc2ss ICAgICAgICAgOCksCisgICAgU0lNRChBVlg1MTJGIGYzMiBzY2FsYXIsICBhdng1MTJmLCAgICAg ICAgZjQpLAorICAgIFNJTUQoQVZYNTEyRiBmMzJ4MTYsICAgICAgYXZ4NTEyZiwgICAgICA2NGY0 KSwKKyAgICBTSU1EKEFWWDUxMkYgZjY0IHNjYWxhciwgIGF2eDUxMmYsICAgICAgICBmOCksCisg ICAgU0lNRChBVlg1MTJGIGY2NHg4LCAgICAgICBhdng1MTJmLCAgICAgIDY0ZjgpLAorICAgIFNJ TUQoQVZYNTEyRiBzMzJ4MTYsICAgICAgYXZ4NTEyZiwgICAgICA2NGk0KSwKKyAgICBTSU1EKEFW WDUxMkYgdTMyeDE2LCAgICAgIGF2eDUxMmYsICAgICAgNjR1NCksCisgICAgU0lNRChBVlg1MTJG IHM2NHg4LCAgICAgICBhdng1MTJmLCAgICAgIDY0aTgpLAorICAgIFNJTUQoQVZYNTEyRiB1NjR4 OCwgICAgICAgYXZ4NTEyZiwgICAgICA2NHU4KSwKICN1bmRlZiBTSU1EXwogI3VuZGVmIFNJTUQK IH07CgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs