From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20260 invoked by alias); 9 Dec 2015 02:18:48 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 20206 invoked by uid 89); 9 Dec 2015 02:18:43 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 X-HELO: DUB004-OMC4S27.hotmail.com Received: from dub004-omc4s27.hotmail.com (HELO DUB004-OMC4S27.hotmail.com) (157.55.2.102) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA256 encrypted) ESMTPS; Wed, 09 Dec 2015 02:18:41 +0000 Received: from emea01-db3-obe.outbound.protection.outlook.com ([157.55.2.73]) by DUB004-OMC4S27.hotmail.com over TLS secured channel with Microsoft SMTPSVC(7.5.7601.23008); Tue, 8 Dec 2015 18:18:38 -0800 Received: from VI1PR07MB0911.eurprd07.prod.outlook.com (10.161.109.11) by VI1PR07MB0912.eurprd07.prod.outlook.com (10.161.109.12) with Microsoft SMTP Server (TLS) id 15.1.337.19; Wed, 9 Dec 2015 02:18:38 +0000 Received: from VI1PR07MB0911.eurprd07.prod.outlook.com ([10.161.109.11]) by VI1PR07MB0911.eurprd07.prod.outlook.com ([10.161.109.11]) with mapi id 15.01.0337.015; Wed, 9 Dec 2015 02:18:37 +0000 From: Bernd Edlinger To: "gcc-patches@gcc.gnu.org" CC: Richard Biener , Jeff Law Subject: [PATCH] Make basic asm implicitly clobber memory, pr24414 Date: Wed, 09 Dec 2015 02:18:00 -0000 Message-ID: authentication-results: suse.de; dkim=none (message not signed) header.d=none;suse.de; dmarc=none action=none header.from=hotmail.de; x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [roIpv+iE5xhWzj8FVi4QGDylUcKEvQG/] x-microsoft-exchange-diagnostics: 1;VI1PR07MB0912;23:pG/emZqmaMdgXxW27Jk7fwHVBF9Prd+wjCBcq1lqBpthgVPEp/VBTdpTvBdFwgWGsEweL4BEwc0EPUV0yiu9H5bWODXHQT+E3ozqj8hfQVw9iv3vZUwvfgDW7/l08u7klx6r8KzpNL9jEzlJxR9HuSiZEuZeY5Gx7rAn501hntYGVNGo8N8kgQpndCgjV5kshKRRtQV8Zi75+ayvkBA/Iw==;5:5JqimmX7h7e2LVWNTt4dN8R76zkfofmlPPXS3vpMbUy44vlMDEUiDxDZZgEsXFHD2n5CKBJCfas4+zo5o280DudZvIs8/iWJ2Q0ivMqPA985a5BVkpwiqdsUPm9j2sDlNHvdekkdnY6YGs2W43BPow==;24:7XdRwlTjcoEXsWXgEFIS/T9Kzj92pY07Hq2Q1+wU3Ar47t6ro/CflSeB9FN+YNB/ovHR63zznM6iRNiDYwezsB01l6uAjlMS0Lnvnk8bj+E= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR07MB0912; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(432015012)(81415001)(82015046);SRVR:VI1PR07MB0912;BCL:0;PCL:0;RULEID:;SRVR:VI1PR07MB0912; x-forefront-prvs: 0785459C39 x-forefront-antispam-report: SFV:NSPM;SFS:(7070004)(98900002);DIR:OUT;SFP:1901;SCL:1;SRVR:VI1PR07MB0912;H:VI1PR07MB0911.eurprd07.prod.outlook.com;FPR:;SPF:None;LANG:en; spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: multipart/mixed; boundary="_003_VI1PR07MB09116C40BE502A341AE0CB9EE4E80VI1PR07MB0911eurp_" MIME-Version: 1.0 X-OriginatorOrg: sct-15-1-318-9-msonline-outlook-efc2f.templateTenant X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Dec 2015 02:18:37.6327 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB0912 X-SW-Source: 2015-12/txt/msg00938.txt.bz2 --_003_VI1PR07MB09116C40BE502A341AE0CB9EE4E80VI1PR07MB0911eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-length: 1335 Hi, from the recent discussion on gcc@gcc.gnu.org I became aware that the so ca= lled "basic asm" which is an asm without colon, has no way to specify the clobber list. Tha= t makes it rather useless, because everyone would expect it to be able to use at least global= memory. Furthermore there is a target hook that allows extended asm to implicitly c= lobber the "cc" register on certain targets. This hook should also be called for basic asm, because= nobody would expect to have to preserve that on a basic asm. But I would say it is naturally clea= r that if the basic asm would clobber any general purpose register the previous value must be pushe= d by the assembler code and restored at the end. Furthermore there is a documented use for asm(""): The empty assembler stri= ng is used to make a function volatile, thus calls can not be optimized away. But I think it is not nece= ssary to make this clobber anything, nor should it be an instruction scheduling barrier, as it used to be in the= past. The attached patch implements this by introducing a new parallel block for = asm_input with clobbers. I believe it is quite safe, and will not break any existing code. It was boot-strapped and regression-tested on x86_64-pc-linux-gnu. Is it OK for trunk? ... or should I wait for the next stage1? Thanks Bernd.= --_003_VI1PR07MB09116C40BE502A341AE0CB9EE4E80VI1PR07MB0911eurp_ Content-Type: text/plain; name="changelog-basic-asm.txt" Content-Description: changelog-basic-asm.txt Content-Disposition: attachment; filename="changelog-basic-asm.txt"; size=860; creation-date="Wed, 09 Dec 2015 01:46:25 GMT"; modification-date="Wed, 09 Dec 2015 01:46:25 GMT" Content-Transfer-Encoding: base64 Content-length: 1168 Z2NjOgoyMDE1LTEyLTA5ICBCZXJuZCBFZGxpbmdlciAgPGJlcm5kLmVkbGlu Z2VyQGhvdG1haWwuZGU+CgoJUFIgYy8yNDQxNAoJKiBjZmdleHBhbmQuYyAo ZXhwYW5kX2FzbV9sb2MpOiBSZW1vdmUgaGFuZGxpbmcgZm9yIEFERFJfRVhQ Ui4KCUltcGxpY2l0bHkgY2xvYmJlciBtZW1vcnkgZm9yIGJhc2ljIGFzbSB3 aXRoIG5vbi1lbXB0eSBhc3NlbWJsZXIKCXN0cmluZy4gIFVzZSB0YXJnZXRt Lm1kX2FzbV9hZGp1c3QgYWxzbyBoZXJlLgoJKiBnaW1wbGUuYyAoZ2ltcGxl X2FzbV9jbG9iYmVyc19tZW1vcnlfcCk6IEhhbmRsZSBiYXNpYyBhc20gd2l0 aAoJbm9uLWVtcHR5IGFzc2VtYmxlciBzdHJpbmcuCgkqIGZpbmFsLmMgKGZp bmFsX3NjYW5faW5zbik6IEhhbmRsZSBiYXNpYyBhc20gaW4gUEFSQUxMRUwg YmxvY2suCgkqIHJlY29nLmMgKGFzbV9ub3BlcmFuZHMpOiBIYW5kbGUgYmFz aWMgYXNtIGluIFBBUkFMTEVMIGJsb2NrLgoJKGRlY29kZV9hc21fb3BlcmFu ZHMpOiBIYW5kbGUgYmFzaWMgYXNtIGluIFBBUkFMTEVMIGJsb2NrLgoJKGV4 dHJhY3RfaW5zbik6IEhhbmRsZSBiYXNpYyBhc20gaW4gUEFSQUxMRUwgYmxv Y2suCgkqIHNjaGVkLWRlcHMuYyAoc2NoZWRfYW5hbHl6ZV8yKTogTWFrZSBu byBiYXJyaWVyIGZvciBiYXNpYyBhc20gd2l0aAoJZW1wdHkgYXNzZW1ibGVy IHN0cmluZy4KCSogZG9jL2V4dGVuZC50ZXhpOiBNZW50aW9uIG5ldyBiZWhh dmlvciBvZiBiYXNpYyBhc20uCgp0ZXN0c3VpdGU6CjIwMTUtMTItMDkgIEJl cm5kIEVkbGluZ2VyICA8YmVybmQuZWRsaW5nZXJAaG90bWFpbC5kZT4KCglQ UiBjLzI0NDE0CgkqIGdjYy50YXJnZXQvaTM4Ni9wcjI0NDE0LmM6IE5ldyB0 ZXN0Lgo= --_003_VI1PR07MB09116C40BE502A341AE0CB9EE4E80VI1PR07MB0911eurp_ Content-Type: text/x-patch; name="patch-basic-asm.diff" Content-Description: patch-basic-asm.diff Content-Disposition: attachment; filename="patch-basic-asm.diff"; size=6980; creation-date="Wed, 09 Dec 2015 01:46:47 GMT"; modification-date="Wed, 09 Dec 2015 01:46:47 GMT" Content-Transfer-Encoding: base64 Content-length: 9464 SW5kZXg6IGdjYy9jZmdleHBhbmQuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBnY2MvY2ZnZXhwYW5kLmMJKHJldmlzaW9uIDIzMTQxMikKKysrIGdj Yy9jZmdleHBhbmQuYwkod29ya2luZyBjb3B5KQpAQCAtMjY1NSw5ICsyNjU1 LDYgQEAgZXhwYW5kX2FzbV9sb2MgKHRyZWUgc3RyaW5nLCBpbnQgdm9sLCBs b2NhdGlvbl90IGwKIHsKICAgcnR4IGJvZHk7CiAKLSAgaWYgKFRSRUVfQ09E RSAoc3RyaW5nKSA9PSBBRERSX0VYUFIpCi0gICAgc3RyaW5nID0gVFJFRV9P UEVSQU5EIChzdHJpbmcsIDApOwotCiAgIGJvZHkgPSBnZW5fcnR4X0FTTV9J TlBVVF9sb2MgKFZPSURtb2RlLAogCQkJCWdnY19zdHJkdXAgKFRSRUVfU1RS SU5HX1BPSU5URVIgKHN0cmluZykpLAogCQkJCWxvY3VzKTsKQEAgLTI2NjQs NiArMjY2MSwzNCBAQCBleHBhbmRfYXNtX2xvYyAodHJlZSBzdHJpbmcsIGlu dCB2b2wsIGxvY2F0aW9uX3QgbAogCiAgIE1FTV9WT0xBVElMRV9QIChib2R5 KSA9IHZvbDsKIAorICAvKiBOb24tZW1wdHkgYmFzaWMgQVNNIGltcGxpY2l0 bHkgY2xvYmJlcnMgbWVtb3J5LiAgKi8KKyAgaWYgKFRSRUVfU1RSSU5HX0xF TkdUSCAoc3RyaW5nKSAhPSAwKQorICAgIHsKKyAgICAgIHJ0eCBhc21fb3As IGNsb2I7CisgICAgICB1bnNpZ25lZCBpLCBuY2xvYmJlcnM7CisgICAgICBh dXRvX3ZlYzxydHg+IGlucHV0X3J2ZWMsIG91dHB1dF9ydmVjOworICAgICAg YXV0b192ZWM8Y29uc3QgY2hhciAqPiBjb25zdHJhaW50czsKKyAgICAgIGF1 dG9fdmVjPHJ0eD4gY2xvYmJlcl9ydmVjOworICAgICAgSEFSRF9SRUdfU0VU IGNsb2JiZXJlZF9yZWdzOworICAgICAgQ0xFQVJfSEFSRF9SRUdfU0VUIChj bG9iYmVyZWRfcmVncyk7CisKKyAgICAgIGNsb2IgPSBnZW5fcnR4X01FTSAo QkxLbW9kZSwgZ2VuX3J0eF9TQ1JBVENIIChWT0lEbW9kZSkpOworICAgICAg Y2xvYmJlcl9ydmVjLnNhZmVfcHVzaCAoY2xvYik7CisKKyAgICAgIGlmICh0 YXJnZXRtLm1kX2FzbV9hZGp1c3QpCisJdGFyZ2V0bS5tZF9hc21fYWRqdXN0 IChvdXRwdXRfcnZlYywgaW5wdXRfcnZlYywKKwkJCSAgICAgICBjb25zdHJh aW50cywgY2xvYmJlcl9ydmVjLAorCQkJICAgICAgIGNsb2JiZXJlZF9yZWdz KTsKKworICAgICAgYXNtX29wID0gYm9keTsKKyAgICAgIG5jbG9iYmVycyA9 IGNsb2JiZXJfcnZlYy5sZW5ndGggKCk7CisgICAgICBib2R5ID0gZ2VuX3J0 eF9QQVJBTExFTCAoVk9JRG1vZGUsIHJ0dmVjX2FsbG9jICgxICsgbmNsb2Ji ZXJzKSk7CisKKyAgICAgIFhWRUNFWFAgKGJvZHksIDAsIDApID0gYXNtX29w OworICAgICAgZm9yIChpID0gMDsgaSA8IG5jbG9iYmVyczsgaSsrKQorCVhW RUNFWFAgKGJvZHksIDAsIGkgKyAxKSA9IGdlbl9ydHhfQ0xPQkJFUiAoVk9J RG1vZGUsIGNsb2JiZXJfcnZlY1tpXSk7CisgICAgfQorCiAgIGVtaXRfaW5z biAoYm9keSk7CiB9CiAKSW5kZXg6IGdjYy9kb2MvZXh0ZW5kLnRleGkKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL2RvYy9leHRlbmQudGV4aQko cmV2aXNpb24gMjMxNDEyKQorKysgZ2NjL2RvYy9leHRlbmQudGV4aQkod29y a2luZyBjb3B5KQpAQCAtNzQ0Miw2ICs3NDQyLDEwIEBAIGFsbCBiYXNpYyBA Y29kZXthc219IGJsb2NrcyB1c2UgdGhlIGFzc2VtYmxlciBkaWFsCiBCYXNp YyBAY29kZXthc219IHByb3ZpZGVzIG5vCiBtZWNoYW5pc20gdG8gcHJvdmlk ZSBkaWZmZXJlbnQgYXNzZW1ibGVyIHN0cmluZ3MgZm9yIGRpZmZlcmVudCBk aWFsZWN0cy4KIAorRm9yIGJhc2ljIEBjb2Rle2FzbX0gd2l0aCBub24tZW1w dHkgYXNzZW1ibGVyIHN0cmluZyBHQ0MgYXNzdW1lcwordGhlIGFzc2VtYmxl ciBibG9jayBkb2VzIG5vdCBjaGFuZ2UgYW55IGdlbmVyYWwgcHVycG9zZSBy ZWdpc3RlcnMsCitidXQgaXQgbWF5IHJlYWQgb3Igd3JpdGUgYW55IGdsb2Jh bGx5IGFjY2Vzc2libGUgdmFyaWFibGUuCisKIEhlcmUgaXMgYW4gZXhhbXBs ZSBvZiBiYXNpYyBAY29kZXthc219IGZvciBpMzg2OgogCiBAZXhhbXBsZQpJ bmRleDogZ2NjL2ZpbmFsLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g Z2NjL2ZpbmFsLmMJKHJldmlzaW9uIDIzMTQxMikKKysrIGdjYy9maW5hbC5j CSh3b3JraW5nIGNvcHkpCkBAIC0yNTY1LDYgKzI1NjUsMTAgQEAgZmluYWxf c2Nhbl9pbnNuIChydHhfaW5zbiAqaW5zbiwgRklMRSAqZmlsZSwgaW50IG8K IAkgICgqZGVidWdfaG9va3MtPnNvdXJjZV9saW5lKSAobGFzdF9saW5lbnVt LCBsYXN0X2ZpbGVuYW1lLAogCQkJCSAgICAgICBsYXN0X2Rpc2NyaW1pbmF0 b3IsIGlzX3N0bXQpOwogCisJaWYgKEdFVF9DT0RFIChib2R5KSA9PSBQQVJB TExFTAorCSAgICAmJiBHRVRfQ09ERSAoWFZFQ0VYUCAoYm9keSwgMCwgMCkp ID09IEFTTV9JTlBVVCkKKwkgIGJvZHkgPSBYVkVDRVhQIChib2R5LCAwLCAw KTsKKwogCWlmIChHRVRfQ09ERSAoYm9keSkgPT0gQVNNX0lOUFVUKQogCSAg ewogCSAgICBjb25zdCBjaGFyICpzdHJpbmcgPSBYU1RSIChib2R5LCAwKTsK SW5kZXg6IGdjYy9naW1wbGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBnY2MvZ2ltcGxlLmMJKHJldmlzaW9uIDIzMTQxMikKKysrIGdjYy9naW1w bGUuYwkod29ya2luZyBjb3B5KQpAQCAtMjU2Nyw2ICsyNTY3LDEwIEBAIGdp bXBsZV9hc21fY2xvYmJlcnNfbWVtb3J5X3AgKGNvbnN0IGdhc20gKnN0bXQp CiAJcmV0dXJuIHRydWU7CiAgICAgfQogCisgIC8qIE5vbi1lbXB0eSBiYXNp YyBBU00gaW1wbGljaXRseSBjbG9iYmVycyBtZW1vcnkuICAqLworICBpZiAo Z2ltcGxlX2FzbV9pbnB1dF9wIChzdG10KSAmJiBzdHJsZW4gKGdpbXBsZV9h c21fc3RyaW5nIChzdG10KSkgIT0gMCkKKyAgICByZXR1cm4gdHJ1ZTsKKwog ICByZXR1cm4gZmFsc2U7CiB9CiAKSW5kZXg6IGdjYy9yZWNvZy5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIGdjYy9yZWNvZy5jCShyZXZpc2lvbiAy MzE0MTIpCisrKyBnY2MvcmVjb2cuYwkod29ya2luZyBjb3B5KQpAQCAtMTQ3 MCw2ICsxNDcwLDggQEAgZXh0cmFjdF9hc21fb3BlcmFuZHMgKHJ0eCBib2R5 KQogCiAvKiBJZiBCT0RZIGlzIGFuIGluc24gYm9keSB0aGF0IHVzZXMgQVNN X09QRVJBTkRTLAogICAgcmV0dXJuIHRoZSBudW1iZXIgb2Ygb3BlcmFuZHMg KGJvdGggaW5wdXQgYW5kIG91dHB1dCkgaW4gdGhlIGluc24uCisgICBJZiBC T0RZIGlzIGFuIGluc24gYm9keSB0aGF0IHVzZXMgQVNNX0lOUFVUIHdpdGgg Q0xPQkJFUlMgaW4gUEFSQUxMRUwsCisgICByZXR1cm4gMC4KICAgIE90aGVy d2lzZSByZXR1cm4gLTEuICAqLwogCiBpbnQKQEAgLTE0NzYsMTYgKzE0Nzgs MjYgQEAgaW50CiBhc21fbm9wZXJhbmRzIChjb25zdF9ydHggYm9keSkKIHsK ICAgcnR4IGFzbV9vcCA9IGV4dHJhY3RfYXNtX29wZXJhbmRzIChDT05TVF9D QVNUX1JUWCAoYm9keSkpOwotICBpbnQgbl9zZXRzID0gMDsKKyAgaW50IGks IG5fc2V0cyA9IDA7CiAKICAgaWYgKGFzbV9vcCA9PSBOVUxMKQotICAgIHJl dHVybiAtMTsKKyAgICB7CisgICAgICBpZiAoR0VUX0NPREUgKGJvZHkpID09 IFBBUkFMTEVMICYmIFhWRUNMRU4gKGJvZHksIDApID49IDIKKwkgICYmIEdF VF9DT0RFIChYVkVDRVhQIChib2R5LCAwLCAwKSkgPT0gQVNNX0lOUFVUKQor CXsKKwkgIC8qIGJvZHkgaXMgWyhhc21faW5wdXQgLi4uKSAoY2xvYmJlciAo cmVnIC4uLikpLi4uXS4gICovCisJICBmb3IgKGkgPSBYVkVDTEVOIChib2R5 LCAwKSAtIDE7IGkgPiAwOyBpLS0pCisJICAgIGlmIChHRVRfQ09ERSAoWFZF Q0VYUCAoYm9keSwgMCwgaSkpICE9IENMT0JCRVIpCisJICAgICAgcmV0dXJu IC0xOworCSAgcmV0dXJuIDA7CisJfQorICAgICAgcmV0dXJuIC0xOworICAg IH0KIAogICBpZiAoR0VUX0NPREUgKGJvZHkpID09IFNFVCkKICAgICBuX3Nl dHMgPSAxOwogICBlbHNlIGlmIChHRVRfQ09ERSAoYm9keSkgPT0gUEFSQUxM RUwpCiAgICAgewotICAgICAgaW50IGk7CiAgICAgICBpZiAoR0VUX0NPREUg KFhWRUNFWFAgKGJvZHksIDAsIDApKSA9PSBTRVQpCiAJewogCSAgLyogTXVs dGlwbGUgb3V0cHV0IG9wZXJhbmRzLCBvciAxIG91dHB1dCBwbHVzIHNvbWUg Y2xvYmJlcnM6CkBAIC0xNTQwLDkgKzE1NTIsMTIgQEAgYXNtX25vcGVyYW5k cyAoY29uc3RfcnR4IGJvZHkpCiAgICB0aGUgbG9jYXRpb25zIG9mIHRoZSBv cGVyYW5kcyB3aXRoaW4gdGhlIGluc24gaW50byB0aGUgdmVjdG9yIE9QRVJB TkRfTE9DUywKICAgIGFuZCB0aGUgY29uc3RyYWludHMgZm9yIHRoZSBvcGVy YW5kcyBpbnRvIENPTlNUUkFJTlRTLgogICAgV3JpdGUgdGhlIG1vZGVzIG9m IHRoZSBvcGVyYW5kcyBpbnRvIE1PREVTLgorICAgV3JpdGUgdGhlIGxvY2F0 aW9uIGluZm8gaW50byBMT0MuCiAgICBSZXR1cm4gdGhlIGFzc2VtYmxlci10 ZW1wbGF0ZS4KKyAgIElmIEJPRFkgaXMgYW4gaW5zbiBib2R5IHRoYXQgdXNl cyBBU01fSU5QVVQgd2l0aCBDTE9CQkVSUyBpbiBQQVJBTExFTCwKKyAgIHJl dHVybiB0aGUgYmFzaWMgYXNzZW1ibHkgc3RyaW5nLgogCi0gICBJZiBNT0RF UywgT1BFUkFORF9MT0NTLCBDT05TVFJBSU5UUyBvciBPUEVSQU5EUyBpcyAw LAorICAgSWYgTE9DLCBNT0RFUywgT1BFUkFORF9MT0NTLCBDT05TVFJBSU5U UyBvciBPUEVSQU5EUyBpcyAwLAogICAgd2UgZG9uJ3Qgc3RvcmUgdGhhdCBp bmZvLiAgKi8KIAogY29uc3QgY2hhciAqCkBAIC0xNjAzLDYgKzE2MTgsMTIg QEAgZGVjb2RlX2FzbV9vcGVyYW5kcyAocnR4IGJvZHksIHJ0eCAqb3BlcmFu ZHMsIHJ0eAogCSAgICAgIH0KIAkgICAgbmJhc2UgPSBpOwogCSAgfQorCWVs c2UgaWYgKEdFVF9DT0RFIChhc21vcCkgPT0gQVNNX0lOUFVUKQorCSAgewor CSAgICBpZiAobG9jKQorCSAgICAgICpsb2MgPSBBU01fSU5QVVRfU09VUkNF X0xPQ0FUSU9OIChhc21vcCk7CisJICAgIHJldHVybiBYU1RSIChhc21vcCwg MCk7CisJICB9CiAJYnJlYWs7CiAgICAgICB9CiAKQEAgLTIyNDQsNyArMjI2 NSw4IEBAIGV4dHJhY3RfaW5zbiAocnR4X2luc24gKmluc24pCiAgICAgY2Fz ZSBQQVJBTExFTDoKICAgICAgIGlmICgoR0VUX0NPREUgKFhWRUNFWFAgKGJv ZHksIDAsIDApKSA9PSBTRVQKIAkgICAmJiBHRVRfQ09ERSAoU0VUX1NSQyAo WFZFQ0VYUCAoYm9keSwgMCwgMCkpKSA9PSBBU01fT1BFUkFORFMpCi0JICB8 fCBHRVRfQ09ERSAoWFZFQ0VYUCAoYm9keSwgMCwgMCkpID09IEFTTV9PUEVS QU5EUykKKwkgIHx8IEdFVF9DT0RFIChYVkVDRVhQIChib2R5LCAwLCAwKSkg PT0gQVNNX09QRVJBTkRTCisJICB8fCBHRVRfQ09ERSAoWFZFQ0VYUCAoYm9k eSwgMCwgMCkpID09IEFTTV9JTlBVVCkKIAlnb3RvIGFzbV9pbnNuOwogICAg ICAgZWxzZQogCWdvdG8gbm9ybWFsX2luc247CkluZGV4OiBnY2Mvc2NoZWQt ZGVwcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy9zY2hlZC1k ZXBzLmMJKHJldmlzaW9uIDIzMTQxMikKKysrIGdjYy9zY2hlZC1kZXBzLmMJ KHdvcmtpbmcgY29weSkKQEAgLTI3NDgsMTEgKzI3NDgsMTQgQEAgc2NoZWRf YW5hbHl6ZV8yIChzdHJ1Y3QgZGVwc19kZXNjICpkZXBzLCBydHggeCwgcnQK IAkvKiBUcmFkaXRpb25hbCBhbmQgdm9sYXRpbGUgYXNtIGluc3RydWN0aW9u cyBtdXN0IGJlIGNvbnNpZGVyZWQgdG8gdXNlCiAJICAgYW5kIGNsb2JiZXIg YWxsIGhhcmQgcmVnaXN0ZXJzLCBhbGwgcHNldWRvLXJlZ2lzdGVycyBhbmQg YWxsIG9mCiAJICAgbWVtb3J5LiAgU28gbXVzdCBUUkFQX0lGIGFuZCBVTlNQ RUNfVk9MQVRJTEUgb3BlcmF0aW9ucy4KKwkgICBCdXQgYmFzaWMgYXNtIGlu c3RydWN0aW9ucyB3aXRoIGVtcHR5IGFzc2VtYmx5IHN0cmluZyBkb24ndAor CSAgIGhhdmUgdG8gYmUgYmFycmllcnMuCiAKIAkgICBDb25zaWRlciBmb3Ig aW5zdGFuY2UgYSB2b2xhdGlsZSBhc20gdGhhdCBjaGFuZ2VzIHRoZSBmcHUg cm91bmRpbmcKIAkgICBtb2RlLiAgQW4gaW5zbiBzaG91bGQgbm90IGJlIG1v dmVkIGFjcm9zcyB0aGlzIGV2ZW4gaWYgaXQgb25seSB1c2VzCiAJICAgcHNl dWRvLXJlZ3MgYmVjYXVzZSBpdCBtaWdodCBnaXZlIGFuIGluY29ycmVjdGx5 IHJvdW5kZWQgcmVzdWx0LiAgKi8KIAlpZiAoKGNvZGUgIT0gQVNNX09QRVJB TkRTIHx8IE1FTV9WT0xBVElMRV9QICh4KSkKKwkgICAgJiYgIShjb2RlID09 IEFTTV9JTlBVVCAmJiBzdHJsZW4gKFhTVFIgKHgsIDApKSA9PSAwKQogCSAg ICAmJiAhREVCVUdfSU5TTl9QIChpbnNuKSkKIAkgIHJlZ19wZW5kaW5nX2Jh cnJpZXIgPSBUUlVFX0JBUlJJRVI7CiAKSW5kZXg6IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9pMzg2L3ByMjQ0MTQuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjI0NDE0 LmMJKHJldmlzaW9uIDApCisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv aTM4Ni9wcjI0NDE0LmMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBA QAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICItTzIi IH0gKi8KK2ludCB0ZXN0OworCitpbnQKK21haW4gKCkKK3sKKyAgaW50IHgg PSB0ZXN0OworICBhc20gKCJtb3ZsICQxLHRlc3QiKTsKKyAgaWYgKHggKyB0 ZXN0ICE9IDEpCisgICAgX19idWlsdGluX3RyYXAgKCk7CisgIHJldHVybiAw OworfQo= --_003_VI1PR07MB09116C40BE502A341AE0CB9EE4E80VI1PR07MB0911eurp_--