From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v3 23/34] x86emul: basic AVX512F testing Date: Tue, 18 Sep 2018 06:07:44 -0600 Message-ID: <5BA0EA9002000078001E95F5@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BA0E58F02000078001E94CE@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 1g2EnH-0000rI-44 for xen-devel@lists.xenproject.org; Tue, 18 Sep 2018 12:07:51 +0000 In-Reply-To: <5BA0E58F02000078001E94CE@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 CnYzOiBOZXcuCgotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvTWFrZWZpbGUKKysrIGIv dG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL01ha2VmaWxlCkBAIC0xMSw3ICsxMSw3IEBAIGFsbDog JChUQVJHRVQpCiBydW46ICQoVEFSR0VUKQogCS4vJChUQVJHRVQpCiAKLVNJTUQgOj0gM2Rub3cg c3NlIHNzZTIgc3NlNCBhdnggYXZ4MiB4b3AKK1NJTUQgOj0gM2Rub3cgc3NlIHNzZTIgc3NlNCBh dnggYXZ4MiB4b3AgYXZ4NTEyZgogRk1BIDo9IGZtYTQgZm1hCiBTRyA6PSBhdngyLXNnCiBURVNU Q0FTRVMgOj0gYmxvd2Zpc2ggJChTSU1EKSAkKEZNQSkgJChTRykKQEAgLTUyLDYgKzUyLDkgQEAg YXZ4Mi1zZy1mbHRzIDo9IDQgOAogeG9wLXZlY3MgOj0gJChhdngtdmVjcykKIHhvcC1pbnRzIDo9 IDEgMiA0IDgKIHhvcC1mbHRzIDo9ICQoYXZ4LWZsdHMpCithdng1MTJmLXZlY3MgOj0gNjQKK2F2 eDUxMmYtaW50cyA6PSA0IDgKK2F2eDUxMmYtZmx0cyA6PSA0IDgKIAogYXZ4NTEyZi1vcG1hc2st dmVjcyA6PSAyCiBhdng1MTJkcS1vcG1hc2stdmVjcyA6PSAxCkBAIC0xMzcsNyArMTQwLDcgQEAg JChhZGRzdWZmaXggLmMsJChTRykpOgogCiAkKGFkZHN1ZmZpeCAuaCwkKFNJTUQpICQoRk1BKSAk KFNHKSk6IHNpbWQuaAogCi14b3AuaDogc2ltZC1mbWEuYworeG9wLmggYXZ4NTEyZi5oOiBzaW1k LWZtYS5jCiAKICQoVEFSR0VUKTogeDg2LWVtdWxhdGUubyB0ZXN0X3g4Nl9lbXVsYXRvci5vIGV2 ZXgtZGlzcDgubyB3cmFwcGVycy5vCiAJJChIT1NUQ0MpICQoSE9TVENGTEFHUykgLW8gJEAgJF4K LS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuYworKysgYi90b29scy90ZXN0cy94 ODZfZW11bGF0b3Ivc2ltZC5jCkBAIC0yLDcgKzIsNDEgQEAKIAogRU5UUlkoc2ltZF90ZXN0KTsK IAotI2lmIFZFQ19TSVpFID09IDggJiYgZGVmaW5lZChfX1NTRV9fKQorI2lmIGRlZmluZWQoX19B Vlg1MTJGX18pCisjIGRlZmluZSBBTExfVFJVRSAofjBVTEwgPj4gKDY0IC0gRUxFTV9DT1VOVCkp CisjIGlmIFZFQ19TSVpFID09IDQKKyMgIGRlZmluZSBlcSh4LCB5KSAoeyBcCisgICAgZmxvYXQg eF8gPSAoeClbMF07IFwKKyAgICBmbG9hdCBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgxNikp KSB5XyA9IHsgKHkpWzBdIH07IFwKKyAgICB1bnNpZ25lZCBzaG9ydCByXzsgXAorICAgIGFzbSAo ICJ2Y21wc3MgJDAsICUxLCAlMiwgJTAiICA6ICI9ayIgKHJfKSA6ICJtIiAoeF8pLCAidiIgKHlf KSApOyBcCisgICAgcl8gPT0gMTsgXAorfSkKKyMgZWxpZiBWRUNfU0laRSA9PSA4CisjICBkZWZp bmUgZXEoeCwgeSkgKHsgXAorICAgIGRvdWJsZSB4XyA9ICh4KVswXTsgXAorICAgIGRvdWJsZSBf X2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgxNikpKSB5XyA9IHsgKHkpWzBdIH07IFwKKyAgICB1 bnNpZ25lZCBzaG9ydCByXzsgXAorICAgIGFzbSAoICJ2Y21wc2QgJDAsICUxLCAlMiwgJTAiICA6 ICI9ayIgKHJfKSA6ICJtIiAoeF8pLCAidiIgKHlfKSApOyBcCisgICAgcl8gPT0gMTsgXAorfSkK KyMgZWxpZiBGTE9BVF9TSVpFID09IDQKKy8qCisgKiBnY2MncyAodXAgdG8gYXQgbGVhc3QgOC4y KSBfX2J1aWx0aW5faWEzMl9jbXBwczI1Nl9tYXNrKCkgaGFzIGFuIGFub21hbHkgaW4KKyAqIHRo YXQgaXRzIHJldHVybiB0eXBlIGlzIFFJIHJhdGhlciB0aGFuIFVRSSwgYW5kIGhlbmNlIHRoZSB2 YWx1ZSB3b3VsZCBnZXQKKyAqIHNpZ24tZXh0ZW5kZWQgYmVmb3JlIGNvbWFwcmluZyB0byBBTExf VFJVRS4gVGhlIHNhbWUgb2RkaXR5IGRvZXMgbm90IG1hdHRlcgorICogZm9yIF9fYnVpbHRpbl9p YTMyX2NtcHBkMjU2X21hc2soKSwgYXMgdGhlcmUgb25seSA0IGJpdHMgYXJlIHNpZ25pZmljYW50 LgorICogSGVuY2UgdGhlIGV4dHJhICIgJiBBTExfVFJVRSIuCisgKi8KKyMgIGRlZmluZSBlcSh4 LCB5KSAoKEJSKGNtcHBzLCBfbWFzaywgeCwgeSwgMCwgLTEpICYgQUxMX1RSVUUpID09IEFMTF9U UlVFKQorIyBlbGlmIEZMT0FUX1NJWkUgPT0gOAorIyAgZGVmaW5lIGVxKHgsIHkpIChCUihjbXBw ZCwgX21hc2ssIHgsIHksIDAsIC0xKSA9PSBBTExfVFJVRSkKKyMgZWxpZiBJTlRfU0laRSA9PSA0 CisjICBkZWZpbmUgZXEoeCwgeSkgKEIocGNtcGVxZCwgX21hc2ssIHgsIHksIC0xKSA9PSBBTExf VFJVRSkKKyMgZWxpZiBJTlRfU0laRSA9PSA4CisjICBkZWZpbmUgZXEoeCwgeSkgKEIocGNtcGVx cSwgX21hc2ssICh2ZGlfdCkoeCksICh2ZGlfdCkoeSksIC0xKSA9PSBBTExfVFJVRSkKKyMgZW5k aWYKKyNlbGlmIFZFQ19TSVpFID09IDggJiYgZGVmaW5lZChfX1NTRV9fKQogIyBkZWZpbmUgdG9f Ym9vbChjbXApIChfX2J1aWx0aW5faWEzMl9wbW92bXNrYihjbXApID09IDB4ZmYpCiAjZWxpZiBW RUNfU0laRSA9PSAxNgogIyBpZiBkZWZpbmVkKF9fQVZYX18pICYmIGRlZmluZWQoRkxPQVRfU0la RSkKQEAgLTkzLDYgKzEyNyw1MCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92 ZWNfdCBiCiAgICAgdG91Y2goeCk7IFwKICAgICBfX2J1aWx0aW5faWEzMl9wZnJjcGl0MihfX2J1 aWx0aW5faWEzMl9wZnJzcWl0MShfX2J1aWx0aW5faWEzMl9wZm11bCh0XywgdF8pLCB4KSwgdF8p OyBcCiB9KQorI2VsaWYgZGVmaW5lZChGTE9BVF9TSVpFKSAmJiBkZWZpbmVkKF9fQVZYNTEyRl9f KSAmJiBcCisgICAgICAoVkVDX1NJWkUgPT0gNjQgfHwgZGVmaW5lZChfX0FWWDUxMlZMX18pKQor IyBpZiBWRUNfU0laRSA+IEZMT0FUX1NJWkUKKyMgIGlmIEZMT0FUX1NJWkUgPT0gNAorIyAgIGRl ZmluZSBicm9hZGNhc3QoeCkgKHsgXAorICAgIHZlY190IHRfOyBcCisgICAgYXNtICggIiV7ZXZl eCV9IHZicm9hZGNhc3RzcyAlMSwgJTAiIFwKKyAgICAgICAgICA6ICI9diIgKHRfKSA6ICJtIiAo KihmbG9hdFsxXSl7IHggfSkgKTsgXAorICAgIHRfOyBcCit9KQorIyAgIGRlZmluZSBtYXgoeCwg eSkgQlJfKG1heHBzLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCisjICAgZGVmaW5lIG1pbih4 LCB5KSBCUl8obWlucHMsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKKyMgICBkZWZpbmUgbWl4 KHgsIHkpIEIobW92YXBzLCBfbWFzaywgeCwgeSwgKDBiMDEwMTAxMDEwMTAxMDEwMSAmIEFMTF9U UlVFKSkKKyMgICBpZiBWRUNfU0laRSA9PSAxNgorIyAgICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4 LCB5KSBCKHVucGNraHBzLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCisjICAgIGRlZmluZSBp bnRlcmxlYXZlX2xvKHgsIHkpIEIodW5wY2tscHMsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkK KyMgICAgZGVmaW5lIHN3YXAoeCkgQihzaHVmcHMsIF9tYXNrLCB4LCB4LCAwYjAwMDExMDExLCB1 bmRlZigpLCB+MCkKKyMgICBlbmRpZgorIyAgZWxpZiBGTE9BVF9TSVpFID09IDgKKyMgICBpZiBW RUNfU0laRSA+PSAzMgorIyAgICBkZWZpbmUgYnJvYWRjYXN0KHgpICh7IFwKKyAgICB2ZWNfdCB0 XzsgXAorICAgIGFzbSAoICIle2V2ZXglfSB2YnJvYWRjYXN0c2QgJTEsICUwIiA6ICI9diIgKHRf KSBcCisgICAgICAgICAgOiAibSIgKCooZG91YmxlWzFdKXsgeCB9KSApOyBcCisgICAgdF87IFwK K30pCisjICAgZWxzZQorIyAgICBkZWZpbmUgYnJvYWRjYXN0KHgpICh7IFwKKyAgICB2ZWNfdCB0 XzsgXAorICAgIGFzbSAoICIle2V2ZXglfSB2cGJyb2FkY2FzdHEgJTEsICUwIiBcCisgICAgICAg ICAgOiAiPXYiICh0XykgOiAibSIgKCooZG91YmxlWzFdKXsgeCB9KSApOyBcCisgICAgdF87IFwK K30pCisjICAgZW5kaWYKKyMgICBkZWZpbmUgbWF4KHgsIHkpIEJSXyhtYXhwZCwgX21hc2ssIHgs IHksIHVuZGVmKCksIH4wKQorIyAgIGRlZmluZSBtaW4oeCwgeSkgQlJfKG1pbnBkLCBfbWFzaywg eCwgeSwgdW5kZWYoKSwgfjApCisjICAgZGVmaW5lIG1peCh4LCB5KSBCKG1vdmFwZCwgX21hc2ss IHgsIHksIDBiMDEwMTAxMDEpCisjICAgaWYgVkVDX1NJWkUgPT0gMTYKKyMgICAgZGVmaW5lIGlu dGVybGVhdmVfaGkoeCwgeSkgQih1bnBja2hwZCwgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQor IyAgICBkZWZpbmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSBCKHVucGNrbHBkLCBfbWFzaywgeCwgeSwg dW5kZWYoKSwgfjApCisjICAgIGRlZmluZSBzd2FwKHgpIEIoc2h1ZnBkLCBfbWFzaywgeCwgeCwg MGIwMSwgdW5kZWYoKSwgfjApCisjICAgZW5kaWYKKyMgIGVuZGlmCisjIGVuZGlmCiAjZWxpZiBG TE9BVF9TSVpFID09IDQgJiYgZGVmaW5lZChfX1NTRV9fKQogIyBpZiBWRUNfU0laRSA9PSAzMiAm JiBkZWZpbmVkKF9fQVZYX18pCiAjICBpZiBkZWZpbmVkKF9fQVZYMl9fKQpAQCAtMTkxLDcgKzI2 OSwzMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAjICBkZWZp bmUgc3FydCh4KSBzY2FsYXJfMW9wKHgsICJzcXJ0c2QgJVtpbl0sICVbb3V0XSIpCiAjIGVuZGlm CiAjZW5kaWYKLSNpZiBWRUNfU0laRSA9PSAxNiAmJiBkZWZpbmVkKF9fU1NFMl9fKQorI2lmIChJ TlRfU0laRSA9PSA0IHx8IFVJTlRfU0laRSA9PSA0IHx8IElOVF9TSVpFID09IDggfHwgVUlOVF9T SVpFID09IDgpICYmIFwKKyAgICAgZGVmaW5lZChfX0FWWDUxMkZfXykgJiYgKFZFQ19TSVpFID09 IDY0IHx8IGRlZmluZWQoX19BVlg1MTJWTF9fKSkKKyMgaWYgSU5UX1NJWkUgPT0gNCB8fCBVSU5U X1NJWkUgPT0gNAorIyAgZGVmaW5lIG1peCh4LCB5KSAoKHZlY190KUIobW92ZHFhMzJfLCBfbWFz aywgKHZzaV90KSh4KSwgKHZzaV90KSh5KSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKDBiMDEwMTAxMDEwMTAxMDEwMSAmICgoMSA8PCBFTEVNX0NPVU5UKSAtIDEpKSkpCisjIGVs aWYgSU5UX1NJWkUgPT0gOCB8fCBVSU5UX1NJWkUgPT0gOAorIyAgZGVmaW5lIG1peCh4LCB5KSAo KHZlY190KUIobW92ZHFhNjRfLCBfbWFzaywgKHZkaV90KSh4KSwgKHZkaV90KSh5KSwgMGIwMTAx MDEwMSkpCisjIGVuZGlmCisjIGlmIElOVF9TSVpFID09IDQKKyMgIGRlZmluZSBtYXgoeCwgeSkg QihwbWF4c2QsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKKyMgIGRlZmluZSBtaW4oeCwgeSkg QihwbWluc2QsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKKyMgIGRlZmluZSBtdWxfZnVsbCh4 LCB5KSAoKHZlY190KUIocG11bGRxLCBfbWFzaywgeCwgeSwgKHZkaV90KXVuZGVmKCksIH4wKSkK KyMgZWxpZiBVSU5UX1NJWkUgPT0gNAorIyAgZGVmaW5lIG1heCh4LCB5KSAoKHZlY190KUIocG1h eHVkLCBfbWFzaywgKHZzaV90KSh4KSwgKHZzaV90KSh5KSwgKHZzaV90KXVuZGVmKCksIH4wKSkK KyMgIGRlZmluZSBtaW4oeCwgeSkgKCh2ZWNfdClCKHBtaW51ZCwgX21hc2ssICh2c2lfdCkoeCks ICh2c2lfdCkoeSksICh2c2lfdCl1bmRlZigpLCB+MCkpCisjICBkZWZpbmUgbXVsX2Z1bGwoeCwg eSkgKCh2ZWNfdClCKHBtdWx1ZHEsIF9tYXNrLCAodnNpX3QpKHgpLCAodnNpX3QpKHkpLCAodmRp X3QpdW5kZWYoKSwgfjApKQorIyBlbGlmIElOVF9TSVpFID09IDgKKyMgIGRlZmluZSBtYXgoeCwg eSkgKCh2ZWNfdClCKHBtYXhzcSwgX21hc2ssICh2ZGlfdCkoeCksICh2ZGlfdCkoeSksICh2ZGlf dCl1bmRlZigpLCB+MCkpCisjICBkZWZpbmUgbWluKHgsIHkpICgodmVjX3QpQihwbWluc3EsIF9t YXNrLCAodmRpX3QpKHgpLCAodmRpX3QpKHkpLCAodmRpX3QpdW5kZWYoKSwgfjApKQorIyBlbGlm IFVJTlRfU0laRSA9PSA4CisjICBkZWZpbmUgbWF4KHgsIHkpICgodmVjX3QpQihwbWF4dXEsIF9t YXNrLCAodmRpX3QpKHgpLCAodmRpX3QpKHkpLCAodmRpX3QpdW5kZWYoKSwgfjApKQorIyAgZGVm aW5lIG1pbih4LCB5KSAoKHZlY190KUIocG1pbnVxLCBfbWFzaywgKHZkaV90KSh4KSwgKHZkaV90 KSh5KSwgKHZkaV90KXVuZGVmKCksIH4wKSkKKyMgZW5kaWYKKyNlbGlmIFZFQ19TSVpFID09IDE2 ICYmIGRlZmluZWQoX19TU0UyX18pCiAjIGlmIElOVF9TSVpFID09IDEgfHwgVUlOVF9TSVpFID09 IDEKICMgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpICgodmVjX3QpX19idWlsdGluX2lhMzJf cHVucGNraGJ3MTI4KCh2cWlfdCkoeCksICh2cWlfdCkoeSkpKQogIyAgZGVmaW5lIGludGVybGVh dmVfbG8oeCwgeSkgKCh2ZWNfdClfX2J1aWx0aW5faWEzMl9wdW5wY2tsYncxMjgoKHZxaV90KSh4 KSwgKHZxaV90KSh5KSkpCkBAIC01ODcsNiArNjg4LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBf dG9fYm9vbChieXRlX3ZlY190IGIKICMgZW5kaWYKICNlbmRpZgogCisjaWYgZGVmaW5lZChfX0FW WDUxMkZfXykgJiYgZGVmaW5lZChGTE9BVF9TSVpFKQorIyBpbmNsdWRlICJzaW1kLWZtYS5jIgor I2VuZGlmCisKIGludCBzaW1kX3Rlc3Qodm9pZCkKIHsKICAgICB1bnNpZ25lZCBpbnQgaSwgajsK QEAgLTEwMzQsNyArMTEzOSw4IEBAIGludCBzaW1kX3Rlc3Qodm9pZCkKICMgZW5kaWYKICNlbmRp ZgogCi0jaWYgZGVmaW5lZChfX1hPUF9fKSAmJiBWRUNfU0laRSA9PSAxNiAmJiAoSU5UX1NJWkUg PT0gMiB8fCBJTlRfU0laRSA9PSA0KQorI2lmIChkZWZpbmVkKF9fWE9QX18pICYmIFZFQ19TSVpF ID09IDE2ICYmIChJTlRfU0laRSA9PSAyIHx8IElOVF9TSVpFID09IDQpKSB8fCBcCisgICAgKGRl ZmluZWQoX19BVlg1MTJGX18pICYmIGRlZmluZWQoRkxPQVRfU0laRSkpCiAgICAgcmV0dXJuIC1m bWFfdGVzdCgpOwogI2VuZGlmCiAKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQu aAorKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5oCkBAIC03MCw5ICs3MCwxMTEg QEAgdHlwZWRlZiBpbnQgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoVgogdHlwZWRlZiBsb25n IGxvbmcgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoVkVDX1NJWkUpKSkgdmRpX3Q7CiAjZW5k aWYKIAorI2lmIFZFQ19TSVpFID09IDE2CisjIGRlZmluZSBCKG4sIHMsIGEuLi4pICAgX19idWls dGluX2lhMzJfICMjIG4gIyMgMTI4ICMjIHMoYSkKKyMgZGVmaW5lIEJfKG4sIHMsIGEuLi4pICBf X2J1aWx0aW5faWEzMl8gIyMgbiAjIyAgICAgICAgcyhhKQorI2VsaWYgVkVDX1NJWkUgPT0gMzIK KyMgZGVmaW5lIEIobiwgcywgYS4uLikgICBfX2J1aWx0aW5faWEzMl8gIyMgbiAjIyAyNTYgIyMg cyhhKQorI2VsaWYgVkVDX1NJWkUgPT0gNjQKKyMgZGVmaW5lIEIobiwgcywgYS4uLikgICBfX2J1 aWx0aW5faWEzMl8gIyMgbiAjIyA1MTIgIyMgcyhhKQorIyBkZWZpbmUgQlIobiwgcywgYS4uLikg IF9fYnVpbHRpbl9pYTMyXyAjIyBuICMjIDUxMiAjIyBzKGEsIDQpCisjZW5kaWYKKyNpZm5kZWYg Ql8KKyMgZGVmaW5lIEJfIEIKKyNlbmRpZgorI2lmbmRlZiBCUgorIyBkZWZpbmUgQlIgQgorIyBk ZWZpbmUgQlJfIEJfCisjZW5kaWYKKyNpZm5kZWYgQlJfCisjIGRlZmluZSBCUl8gQlIKKyNlbmRp ZgorCisjaWZkZWYgX19BVlg1MTJGX18KKworLyoKKyAqIFRoZSBvcmlnaW5hbCBwbGFuIHdhcyB0 byBlZmZlY3QgdXNlIG9mIEVWRVggZW5jb2RpbmdzIGZvciBzY2FsYXIgYXMgd2VsbCBhcworICog MTI4LSBhbmQgMjU2LWJpdCBpbnNuIHZhcmlhbnRzIGJ5IHJlc3RyaWN0aW5nIHRoZSBjb21waWxl ciB0byB1c2UgKG9uIDY0LWJpdAorICogb25seSBvZiBjb3Vyc2UpIFhNTTE2LVhNTTMxIG9ubHku IEFsbCBzb3J0cyBvZiBjb21waWxlciBlcnJvcnMgcmVzdWx0IHdoZW4KKyAqIGRvaW5nIHRoaXMg d2l0aCBnY2MgOC4yLiBUaGVyZWZvcmUgcmVzb3J0IHRvIGluamVjdGluZyB7ZXZleH0gcHJlZml4 ZXMsCisgKiB3aGljaCBoYXMgdGhlIGJlbmVmaXQgb2YgYWxzbyB3b3JraW5nIGZvciAzMi1iaXQu IEdyYW50ZWQsIHRoZXJlIGlzIGEgbG90IG9mCisgKiBlc2NhcGluZyB0byBnZXQgcmlnaHQgaGVy ZS4KKyAqLworYXNtICggIi5tYWNybyBvdmVycmlkZSBpbnNuICAgIFxuXHQiCisgICAgICAiLm1h Y3JvICRcXGluc24gbzp2YXJhcmcgXG5cdCIKKyAgICAgICIucHVyZ2VtIFxcaW5zbiAgICAgICAg ICBcblx0IgorICAgICAgIntldmV4fSBcXGluc24gXFwoXFwpbyAgIFxuXHQiCisgICAgICAiLm1h Y3JvIFxcaW5zbiBvOnZhcmFyZyAgXG5cdCIKKyAgICAgICIkXFxpbnNuIFxcKFxcKFxcKSlvICAg ICBcblx0IgorICAgICAgIi5lbmRtICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgICAiLmVu ZG0gICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICIubWFjcm8gXFxpbnNuIG86dmFyYXJn ICBcblx0IgorICAgICAgIiRcXGluc24gXFwoXFwpbyAgICAgICAgIFxuXHQiCisgICAgICAiLmVu ZG0gICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAgICIuZW5kbSIgKTsKKworI2RlZmluZSBP VlIobikgYXNtICggIm92ZXJyaWRlIHYiICNuICkKKyNkZWZpbmUgT1ZSX1NGUChuKSBPVlIobiAj IyBzZCk7IE9WUihuICMjIHNzKQorCisjaWZkZWYgX19BVlg1MTJWTF9fCisjIGlmZGVmIF9fQVZY NTEyQldfXworIyAgZGVmaW5lIE9WUl9CVyhuKSBPVlIocCAjIyBuICMjIGIpOyBPVlIocCAjIyBu ICMjIHcpCisjIGVsc2UKKyMgIGRlZmluZSBPVlJfQlcobikKKyMgZW5kaWYKKyMgZGVmaW5lIE9W Ul9EUShuKSBPVlIocCAjIyBuICMjIGQpOyBPVlIocCAjIyBuICMjIHEpCisjIGRlZmluZSBPVlJf VkZQKG4pIE9WUihuICMjIHBkKTsgT1ZSKG4gIyMgcHMpCisjZWxzZQorIyBkZWZpbmUgT1ZSX0JX KG4pCisjIGRlZmluZSBPVlJfRFEobikKKyMgZGVmaW5lIE9WUl9WRlAobikKKyNlbmRpZgorCisj ZGVmaW5lIE9WUl9GTUEobiwgdykgT1ZSXyAjIyB3KG4gIyMgMTMyKTsgT1ZSXyAjIyB3KG4gIyMg MjEzKTsgXAorICAgICAgICAgICAgICAgICAgICAgIE9WUl8gIyMgdyhuICMjIDIzMSkKKyNkZWZp bmUgT1ZSX0ZQKG4pIE9WUl9WRlAobik7IE9WUl9TRlAobikKKyNkZWZpbmUgT1ZSX0lOVChuKSBP VlJfQlcobik7IE9WUl9EUShuKQorCitPVlJfU0ZQKGJyb2FkY2FzdCk7CitPVlJfU0ZQKGNvbWkp OworT1ZSX0ZQKGFkZCk7CitPVlJfRlAoZGl2KTsKK09WUihleHRyYWN0cHMpOworT1ZSX0ZNQShm bWFkZCwgRlApOworT1ZSX0ZNQShmbXN1YiwgRlApOworT1ZSX0ZNQShmbm1hZGQsIEZQKTsKK09W Ul9GTUEoZm5tc3ViLCBGUCk7CitPVlIoaW5zZXJ0cHMpOworT1ZSX0ZQKG1heCk7CitPVlJfRlAo bWluKTsKK09WUihtb3ZkKTsKK09WUihtb3ZxKTsKK09WUl9TRlAobW92KTsKK09WUl9GUChtdWwp OworT1ZSX0ZQKHNxcnQpOworT1ZSX0ZQKHN1Yik7CitPVlJfU0ZQKHVjb21pKTsKKworI3VuZGVm IE9WUl9WRlAKKyN1bmRlZiBPVlJfU0ZQCisjdW5kZWYgT1ZSX0lOVAorI3VuZGVmIE9WUl9GUAor I3VuZGVmIE9WUl9GTUEKKyN1bmRlZiBPVlJfRFEKKyN1bmRlZiBPVlJfQlcKKyN1bmRlZiBPVlIK KworI2VuZGlmCisKIC8qCiAgKiBTdXBwcmVzcyB2YWx1ZSBwcm9wYWdhdGlvbiBieSB0aGUgY29t cGlsZXIsIHByZXZlbnRpbmcgdW53YW50ZWQKICAqIG9wdGltaXphdGlvbi4gVGhpcyBhdCBvbmNl IG1ha2VzIHRoZSBjb21waWxlciB1c2UgbWVtb3J5IG9wZXJhbmRzCiAgKiBtb3JlIG9mdGVuLCB3 aGljaCBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoZSBtb3JlIGludGVyZXN0aW5nIGNhc2UuCiAgKi8K ICNkZWZpbmUgdG91Y2godmFyKSBhc20gdm9sYXRpbGUgKCAiIiA6ICIrbSIgKHZhcikgKQorCitz dGF0aWMgaW5saW5lIHZlY190IHVuZGVmKHZvaWQpCit7CisgICAgdmVjX3QgdiA9IHY7CisgICAg cmV0dXJuIHY7Cit9Ci0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLWZtYS5jCisr KyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLWZtYS5jCkBAIC0xLDEwICsxLDkgQEAK KyNpZiAhZGVmaW5lZChfX1hPUF9fKSAmJiAhZGVmaW5lZChfX0FWWDUxMkZfXykKICNpbmNsdWRl ICJzaW1kLmgiCi0KLSNpZm5kZWYgX19YT1BfXwogRU5UUlkoZm1hX3Rlc3QpOwogI2VuZGlmCiAK LSNpZiBWRUNfU0laRSA8IDE2CisjaWYgVkVDX1NJWkUgPCAxNiAmJiAhZGVmaW5lZCh0b19ib29s KQogIyBkZWZpbmUgdG9fYm9vbChjbXApICghfihjbXApWzBdKQogI2VsaWYgVkVDX1NJWkUgPT0g MTYKICMgaWYgRkxPQVRfU0laRSA9PSA0CkBAIC0yNCw3ICsyMywxMyBAQCBFTlRSWShmbWFfdGVz dCk7CiAjIGRlZmluZSBlcSh4LCB5KSB0b19ib29sKCh4KSA9PSAoeSkpCiAjZW5kaWYKIAotI2lm IFZFQ19TSVpFID09IDE2CisjaWYgZGVmaW5lZChfX0FWWDUxMkZfXykgJiYgVkVDX1NJWkUgPiBG TE9BVF9TSVpFCisjIGlmIEZMT0FUX1NJWkUgPT0gNAorIyAgZGVmaW5lIGZtYWRkc3ViKHgsIHks IHopIEJSKHZmbWFkZHN1YnBzLCBfbWFzaywgeCwgeSwgeiwgfjApCisjIGVsaWYgRkxPQVRfU0la RSA9PSA4CisjICBkZWZpbmUgZm1hZGRzdWIoeCwgeSwgeikgQlIodmZtYWRkc3VicGQsIF9tYXNr LCB4LCB5LCB6LCB+MCkKKyMgZW5kaWYKKyNlbGlmIFZFQ19TSVpFID09IDE2CiAjIGlmIEZMT0FU X1NJWkUgPT0gNAogIyAgZGVmaW5lIGFkZHN1Yih4LCB5KSBfX2J1aWx0aW5faWEzMl9hZGRzdWJw cyh4LCB5KQogIyAgaWYgZGVmaW5lZChfX0ZNQTRfXykgfHwgZGVmaW5lZChfX0ZNQV9fKQpAQCAt NTAsNiArNTUsMTAgQEAgRU5UUlkoZm1hX3Rlc3QpOwogIyBlbmRpZgogI2VuZGlmCiAKKyNpZiBk ZWZpbmVkKGZtYWRkc3ViKSAmJiAhZGVmaW5lZChhZGRzdWIpCisjIGRlZmluZSBhZGRzdWIoeCwg eSkgZm1hZGRzdWIoeCwgYnJvYWRjYXN0KDEpLCB5KQorI2VuZGlmCisKIGludCBmbWFfdGVzdCh2 b2lkKQogewogICAgIHVuc2lnbmVkIGludCBpOwotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0 b3IvdGVzdF94ODZfZW11bGF0b3IuYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVz dF94ODZfZW11bGF0b3IuYwpAQCAtMjEsNiArMjEsNyBAQCBhc20gKCAiLnB1c2hzZWN0aW9uIC50 ZXN0LCBcImF4XCIsIEBwcm9nCiAjaW5jbHVkZSAiYXZ4NTEyZi1vcG1hc2suaCIKICNpbmNsdWRl ICJhdng1MTJkcS1vcG1hc2suaCIKICNpbmNsdWRlICJhdng1MTJidy1vcG1hc2suaCIKKyNpbmNs dWRlICJhdng1MTJmLmgiCiAKICNkZWZpbmUgdmVyYm9zZSBmYWxzZSAvKiBTd2l0Y2ggdG8gdHJ1 ZSBmb3IgZmFyIG1vcmUgbG9nZ2luZy4gKi8KIApAQCAtMjQ4LDYgKzI0OSwxNCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHsKICAgICBTSU1EKE9QTUFTSy9iLCAgICBhdng1MTJkcV9vcG1hc2ssICAg ICAgICAgMSksCiAgICAgU0lNRChPUE1BU0svZCwgICAgYXZ4NTEyYndfb3BtYXNrLCAgICAgICAg IDQpLAogICAgIFNJTUQoT1BNQVNLL3EsICAgIGF2eDUxMmJ3X29wbWFzaywgICAgICAgICA4KSwK KyAgICBTSU1EKEFWWDUxMkYgZjMyIHNjYWxhciwgIGF2eDUxMmYsICAgICAgICBmNCksCisgICAg U0lNRChBVlg1MTJGIGYzMngxNiwgICAgICBhdng1MTJmLCAgICAgIDY0ZjQpLAorICAgIFNJTUQo QVZYNTEyRiBmNjQgc2NhbGFyLCAgYXZ4NTEyZiwgICAgICAgIGY4KSwKKyAgICBTSU1EKEFWWDUx MkYgZjY0eDgsICAgICAgIGF2eDUxMmYsICAgICAgNjRmOCksCisgICAgU0lNRChBVlg1MTJGIHMz MngxNiwgICAgICBhdng1MTJmLCAgICAgIDY0aTQpLAorICAgIFNJTUQoQVZYNTEyRiB1MzJ4MTYs ICAgICAgYXZ4NTEyZiwgICAgICA2NHU0KSwKKyAgICBTSU1EKEFWWDUxMkYgczY0eDgsICAgICAg IGF2eDUxMmYsICAgICAgNjRpOCksCisgICAgU0lNRChBVlg1MTJGIHU2NHg4LCAgICAgICBhdng1 MTJmLCAgICAgIDY0dTgpLAogI3VuZGVmIFNJTURfCiAjdW5kZWYgU0lNRAogfTsKCgoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=