From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by sourceware.org (Postfix) with ESMTPS id DCC8F3835802 for ; Wed, 11 May 2022 08:50:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DCC8F3835802 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.cz Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 0641721BB4; Wed, 11 May 2022 08:50:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1652259047; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=P8ZklgB4dJmbbO65mFlhW8esV1RRNv7EAYmn1zpyeq0=; b=tqhJMnuY8raaMRcbo/OIiYkkmg3OYr7EtwjSVYEAQTKTC59SNXMNje7h8mzl3iDz/uYvJT 2uYOZj32NKR46U2v99YWpW4k1Wt2Zp0TtyuhpYvdhFXlcIGPNqjLhfvD5uW5CeLMODGNPk 4Ery13WAgLd884VPXKrPaLnH71Hza6Q= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1652259047; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=P8ZklgB4dJmbbO65mFlhW8esV1RRNv7EAYmn1zpyeq0=; b=mFTSSMHaUWuFyrmuLAIUWFCodTWiQ2qWDq9WOugtH2O6eLM88jf9tOOvezTYDADUDxZ87v a+CMSozhxZ9RARCA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id D76FF139F9; Wed, 11 May 2022 08:50:46 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id xYCjM+Z4e2ISewAAMHmgww (envelope-from ); Wed, 11 May 2022 08:50:46 +0000 Content-Type: multipart/mixed; boundary="------------DQPTVEI6uFBOi1EE70DPX3Nx" Message-ID: Date: Wed, 11 May 2022 10:50:46 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 Subject: Re: [PATCH] i386: simplify cpu_feature handling Content-Language: en-US To: Uros Bizjak Cc: Jakub Jelinek , Stefan Kneifel , "gcc-patches@gcc.gnu.org" References: <20211214102828.GU2646553@tucnak> <80d628c2-ea0d-c542-b0bb-399d83b7292d@suse.cz> <20211214161219.GX2646553@tucnak> <7d1f146e-b196-a5dd-b4b9-23d4ac68b572@suse.cz> <879ec827-1d81-dbdc-b978-a366d28eb175@suse.cz> <8126b287-c55b-0e7a-032b-5211b4cfbbc2@suse.cz> From: =?UTF-8?Q?Martin_Li=c5=a1ka?= In-Reply-To: X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 May 2022 08:50:50 -0000 This is a multi-part message in MIME format. --------------DQPTVEI6uFBOi1EE70DPX3Nx Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On 5/11/22 10:27, Uros Bizjak wrote: > On Wed, May 11, 2022 at 10:19 AM Martin Liška wrote: >> >> On 5/2/22 09:57, Martin Liška wrote: >>> On 3/31/22 09:01, Martin Liška wrote: >>>> @Jakub: May I install it once stage1 opens? >>> >>> May I please ping this? >>> >>> Thanks, >>> Martin >>> >>>> >>>> Cheers, >>>> Martin >>>> >>>> On 1/3/22 12:43, Martin Liška wrote: >>>>> PING: Jakub? >>>>> >>>>> On 12/15/21 10:57, Martin Liška wrote: >>>>>> On 12/14/21 17:12, Jakub Jelinek wrote: >>>>>>> I'd use INT_TYPE_SIZE - 1 instead of 31. Otherwise LGTM. >>>>>> >>>>>> Installed with that change, thanks. >>>>>> >>>>>> Moreover, I'm suggesting a simplification: >>>>>> >>>>>> The patch removes unneeded loops for cpu_features2 and CONVERT_EXPR >>>>>> that can be simplified with NOP_EXPR. >>>>>> >>>>>> Survives i386.exp tests, may I install the patch after testing or >>>>>> is it a stage1 material? >>>>>> >>>>>> Thanks, >>>>>> Martin >>>>> >>>> >>> >> >> CCing Uros. >> >> May I install the patch? > > Can you please attach the latest version of the patch? I only found > the version from Dec. 15. 2021, which I'm not sure is the latest, > > Thanks, > Uros. Sure, there's the rebased version of the patch. Thanks, Martin --------------DQPTVEI6uFBOi1EE70DPX3Nx Content-Type: text/x-patch; charset=UTF-8; name="0001-i386-simplify-cpu_feature-handling.patch" Content-Disposition: attachment; filename="0001-i386-simplify-cpu_feature-handling.patch" Content-Transfer-Encoding: base64 RnJvbSA3MmFhMDQ1OWY4NGJhYTg0NWZlZjdmOWY3ZjBkMDRlZGRhNDEwZDg3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gTGlza2EgPG1saXNrYUBzdXNlLmN6PgpE YXRlOiBXZWQsIDE1IERlYyAyMDIxIDEwOjU0OjIzICswMTAwClN1YmplY3Q6IFtQQVRDSF0g aTM4Njogc2ltcGxpZnkgY3B1X2ZlYXR1cmUgaGFuZGxpbmcKClRoZSBwYXRjaCByZW1vdmVz IHVubmVlZGVkIGxvb3BzIGZvciBjcHVfZmVhdHVyZXMyIGFuZCBDT05WRVJUX0VYUFIKdGhh dCBjYW4gYmUgc2ltcGxpZmllZCB3aXRoIE5PUF9FWFBSLgoKZ2NjL0NoYW5nZUxvZzoKCgkq IGNvbW1vbi9jb25maWcvaTM4Ni9jcHVpbmZvLmggKGhhc19jcHVfZmVhdHVyZSk6IERpcmVj dGx5Cgljb21wdXRlIGluZGV4IGluIGNwdV9mZWF0dXJlczIuCgkoc2V0X2NwdV9mZWF0dXJl KTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L2kzODYtYnVpbHRpbnMuY2MgKGZvbGRfYnVp bHRpbl9jcHUpOiBBbHNvIHJlbW92ZQoJbG9vcCBmb3IgY3B1X2ZlYXR1cmVzMiBhbmQgdXNl IE5PUF9FWFBScy4KLS0tCiBnY2MvY29tbW9uL2NvbmZpZy9pMzg2L2NwdWluZm8uaCB8IDUw ICsrKysrKysrKysrLS0tLS0tLS0tCiBnY2MvY29uZmlnL2kzODYvaTM4Ni1idWlsdGlucy5j YyB8IDc5ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5n ZWQsIDY3IGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dj Yy9jb21tb24vY29uZmlnL2kzODYvY3B1aW5mby5oIGIvZ2NjL2NvbW1vbi9jb25maWcvaTM4 Ni9jcHVpbmZvLmgKaW5kZXggMjM5NzU5ZGM3NjYuLjZkNjE3MWY0NTU1IDEwMDY0NAotLS0g YS9nY2MvY29tbW9uL2NvbmZpZy9pMzg2L2NwdWluZm8uaAorKysgYi9nY2MvY29tbW9uL2Nv bmZpZy9pMzg2L2NwdWluZm8uaApAQCAtNTUsNDMgKzU1LDQ5IEBAIHN0cnVjdCBfX3Byb2Nl c3Nvcl9tb2RlbDIKIHN0YXRpYyBpbmxpbmUgaW50CiBoYXNfY3B1X2ZlYXR1cmUgKHN0cnVj dCBfX3Byb2Nlc3Nvcl9tb2RlbCAqY3B1X21vZGVsLAogCQkgdW5zaWduZWQgaW50ICpjcHVf ZmVhdHVyZXMyLAotCQkgZW51bSBwcm9jZXNzb3JfZmVhdHVyZXMgZikKKwkJIGVudW0gcHJv Y2Vzc29yX2ZlYXR1cmVzIGZlYXR1cmUpCiB7Ci0gIHVuc2lnbmVkIGludCBpOworICB1bnNp Z25lZCBpbmRleCwgb2Zmc2V0OworICB1bnNpZ25lZCBmID0gZmVhdHVyZTsKKwogICBpZiAo ZiA8IDMyKQogICAgIHsKICAgICAgIC8qIFRoZSBmaXJzdCAzMiBmZWF0dXJlcy4gICovCi0g ICAgICByZXR1cm4gY3B1X21vZGVsLT5fX2NwdV9mZWF0dXJlc1swXSAmICgxVSA8PCAoZiAm IDMxKSk7CisgICAgICByZXR1cm4gY3B1X21vZGVsLT5fX2NwdV9mZWF0dXJlc1swXSAmICgx VSA8PCBmKTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICAvKiBUaGUgcmVzdCBvZiBm ZWF0dXJlcy4gIGNwdV9mZWF0dXJlczJbaV0gY29udGFpbnMgZmVhdHVyZXMgZnJvbQorCSAo MzIgKyBpICogMzIpIHRvICgzMSArIDMyICsgaSAqIDMyKSwgaW5jbHVzaXZlbHkuICAqLwor ICAgICAgZiAtPSAzMjsKKyAgICAgIGluZGV4ID0gZiAvIDMyOworICAgICAgb2Zmc2V0ID0g ZiAlIDMyOworICAgICAgcmV0dXJuIGNwdV9mZWF0dXJlczJbaW5kZXhdICYgKDFVIDw8IG9m ZnNldCk7CiAgICAgfQotICAvKiBUaGUgcmVzdCBvZiBmZWF0dXJlcy4gIGNwdV9mZWF0dXJl czJbaV0gY29udGFpbnMgZmVhdHVyZXMgZnJvbQotICAgICAoMzIgKyBpICogMzIpIHRvICgz MSArIDMyICsgaSAqIDMyKSwgaW5jbHVzaXZlbHkuICAqLwotICBmb3IgKGkgPSAwOyBpIDwg U0laRV9PRl9DUFVfRkVBVFVSRVM7IGkrKykKLSAgICBpZiAoZiA8ICgzMiArIDMyICsgaSAq IDMyKSkKLSAgICByZXR1cm4gY3B1X2ZlYXR1cmVzMltpXSAmICgxVSA8PCAoKGYgLSAoMzIg KyBpICogMzIpKSAmIDMxKSk7Ci0gIGdjY191bnJlYWNoYWJsZSAoKTsKIH0KIAogc3RhdGlj IGlubGluZSB2b2lkCiBzZXRfY3B1X2ZlYXR1cmUgKHN0cnVjdCBfX3Byb2Nlc3Nvcl9tb2Rl bCAqY3B1X21vZGVsLAogCQkgdW5zaWduZWQgaW50ICpjcHVfZmVhdHVyZXMyLAotCQkgZW51 bSBwcm9jZXNzb3JfZmVhdHVyZXMgZikKKwkJIGVudW0gcHJvY2Vzc29yX2ZlYXR1cmVzIGZl YXR1cmUpCiB7Ci0gIHVuc2lnbmVkIGludCBpOworICB1bnNpZ25lZCBpbmRleCwgb2Zmc2V0 OworICB1bnNpZ25lZCBmID0gZmVhdHVyZTsKKwogICBpZiAoZiA8IDMyKQogICAgIHsKICAg ICAgIC8qIFRoZSBmaXJzdCAzMiBmZWF0dXJlcy4gICovCi0gICAgICBjcHVfbW9kZWwtPl9f Y3B1X2ZlYXR1cmVzWzBdIHw9ICgxVSA8PCAoZiAmIDMxKSk7Ci0gICAgICByZXR1cm47Cisg ICAgICBjcHVfbW9kZWwtPl9fY3B1X2ZlYXR1cmVzWzBdIHw9ICgxVSA8PCBmKTsKKyAgICB9 CisgIGVsc2UKKyAgICB7CisgICAgICAvKiBUaGUgcmVzdCBvZiBmZWF0dXJlcy4gIGNwdV9m ZWF0dXJlczJbaV0gY29udGFpbnMgZmVhdHVyZXMgZnJvbQorCSAoMzIgKyBpICogMzIpIHRv ICgzMSArIDMyICsgaSAqIDMyKSwgaW5jbHVzaXZlbHkuICAqLworICAgICAgZiAtPSAzMjsK KyAgICAgIGluZGV4ID0gZiAvIDMyOworICAgICAgb2Zmc2V0ID0gZiAlIDMyOworICAgICAg Y3B1X2ZlYXR1cmVzMltpbmRleF0gfD0gKDFVIDw8IG9mZnNldCk7CiAgICAgfQotICAvKiBU aGUgcmVzdCBvZiBmZWF0dXJlcy4gIGNwdV9mZWF0dXJlczJbaV0gY29udGFpbnMgZmVhdHVy ZXMgZnJvbQotICAgICAoMzIgKyBpICogMzIpIHRvICgzMSArIDMyICsgaSAqIDMyKSwgaW5j bHVzaXZlbHkuICAqLwotICBmb3IgKGkgPSAwOyBpIDwgU0laRV9PRl9DUFVfRkVBVFVSRVM7 IGkrKykKLSAgICBpZiAoZiA8ICgzMiArIDMyICsgaSAqIDMyKSkKLSAgICAgIHsKLQljcHVf ZmVhdHVyZXMyW2ldIHw9ICgxVSA8PCAoKGYgLSAoMzIgKyBpICogMzIpKSAmIDMxKSk7Ci0J cmV0dXJuOwotICAgICAgfQotICBnY2NfdW5yZWFjaGFibGUgKCk7CiB9CiAKIC8qIEdldCB0 aGUgc3BlY2lmaWMgdHlwZSBvZiBBTUQgQ1BVIGFuZCByZXR1cm4gQU1EIENQVSBuYW1lLiAg UmV0dXJuCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvaTM4Ni1idWlsdGlucy5jYyBi L2djYy9jb25maWcvaTM4Ni9pMzg2LWJ1aWx0aW5zLmNjCmluZGV4IDhjNmQwZmU5NjMxLi41 OWM3ZGEyNWExNCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYtYnVpbHRpbnMu Y2MKKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYtYnVpbHRpbnMuY2MKQEAgLTIyODAsNyAr MjI4MCw3IEBAIGZvbGRfYnVpbHRpbl9jcHUgKHRyZWUgZm5kZWNsLCB0cmVlICphcmdzKQog ICAgICAgLyogQ2hlY2sgdGhlIHZhbHVlLiAgKi8KICAgICAgIGZpbmFsID0gYnVpbGQyIChF UV9FWFBSLCB1bnNpZ25lZF90eXBlX25vZGUsIHJlZiwKIAkJICAgICAgYnVpbGRfaW50X2Nz dHUgKHVuc2lnbmVkX3R5cGVfbm9kZSwgZmllbGRfdmFsKSk7Ci0gICAgICByZXR1cm4gYnVp bGQxIChDT05WRVJUX0VYUFIsIGludGVnZXJfdHlwZV9ub2RlLCBmaW5hbCk7CisgICAgICBy ZXR1cm4gYnVpbGQxIChOT1BfRVhQUiwgaW50ZWdlcl90eXBlX25vZGUsIGZpbmFsKTsKICAg ICB9CiAgIGVsc2UgaWYgKGZuX2NvZGUgPT0gSVg4Nl9CVUlMVElOX0NQVV9TVVBQT1JUUykK ICAgICB7CkBAIC0yMzA1LDcgKzIzMDUsOCBAQCBmb2xkX2J1aWx0aW5fY3B1ICh0cmVlIGZu ZGVjbCwgdHJlZSAqYXJncykKIAkgIHJldHVybiBpbnRlZ2VyX3plcm9fbm9kZTsKIAl9CiAK LSAgICAgIGlmIChpc2FfbmFtZXNfdGFibGVbaV0uZmVhdHVyZSA+PSAzMikKKyAgICAgIHVu c2lnbmVkIGZlYXR1cmUgPSBpc2FfbmFtZXNfdGFibGVbaV0uZmVhdHVyZTsKKyAgICAgIGlm IChmZWF0dXJlID49IElOVF9UWVBFX1NJWkUpCiAJewogCSAgaWYgKGl4ODZfY3B1X2ZlYXR1 cmVzMl92YXIgPT0gbnVsbHB0cikKIAkgICAgewpAQCAtMjMyMyw0NiArMjMyNCw0NCBAQCBm b2xkX2J1aWx0aW5fY3B1ICh0cmVlIGZuZGVjbCwgdHJlZSAqYXJncykKIAkgICAgICB2YXJw b29sX25vZGU6OmFkZCAoaXg4Nl9jcHVfZmVhdHVyZXMyX3Zhcik7CiAJICAgIH0KIAotCSAg Zm9yICh1bnNpZ25lZCBpbnQgaiA9IDA7IGogPCBTSVpFX09GX0NQVV9GRUFUVVJFUzsgaisr KQotCSAgICBpZiAoaXNhX25hbWVzX3RhYmxlW2ldLmZlYXR1cmUgPCAoMzIgKyAzMiArIGog KiAzMikpCi0JICAgICAgewotCQlmaWVsZF92YWwgPSAoMVUgPDwgKGlzYV9uYW1lc190YWJs ZVtpXS5mZWF0dXJlCi0JCQkJICAgIC0gKDMyICsgaiAqIDMyKSkpOwotCQl0cmVlIGluZGV4 ID0gc2l6ZV9pbnQgKGopOwotCQlhcnJheV9lbHQgPSBidWlsZDQgKEFSUkFZX1JFRiwgdW5z aWduZWRfdHlwZV9ub2RlLAotCQkJCSAgICBpeDg2X2NwdV9mZWF0dXJlczJfdmFyLAotCQkJ CSAgICBpbmRleCwgTlVMTF9UUkVFLCBOVUxMX1RSRUUpOwotCQkvKiBSZXR1cm4gX19jcHVf ZmVhdHVyZXMyW2luZGV4XSAmIGZpZWxkX3ZhbCAgKi8KLQkJZmluYWwgPSBidWlsZDIgKEJJ VF9BTkRfRVhQUiwgdW5zaWduZWRfdHlwZV9ub2RlLAotCQkJCWFycmF5X2VsdCwKLQkJCQli dWlsZF9pbnRfY3N0dSAodW5zaWduZWRfdHlwZV9ub2RlLAotCQkJCQkJZmllbGRfdmFsKSk7 Ci0JCXJldHVybiBidWlsZDEgKENPTlZFUlRfRVhQUiwgaW50ZWdlcl90eXBlX25vZGUsIGZp bmFsKTsKLQkgICAgICB9CisJICBmZWF0dXJlIC09IElOVF9UWVBFX1NJWkU7CisJICBmaWVs ZF92YWwgPSAxVSA8PCAoZmVhdHVyZSAlIElOVF9UWVBFX1NJWkUpOworCSAgdHJlZSBpbmRl eCA9IHNpemVfaW50IChmZWF0dXJlIC8gSU5UX1RZUEVfU0laRSk7CisJICBhcnJheV9lbHQg PSBidWlsZDQgKEFSUkFZX1JFRiwgdW5zaWduZWRfdHlwZV9ub2RlLAorCQkJICAgICAgaXg4 Nl9jcHVfZmVhdHVyZXMyX3ZhciwKKwkJCSAgICAgIGluZGV4LCBOVUxMX1RSRUUsIE5VTExf VFJFRSk7CisJICAvKiBSZXR1cm4gX19jcHVfZmVhdHVyZXMyW2luZGV4XSAmIGZpZWxkX3Zh bCAgKi8KKwkgIGZpbmFsID0gYnVpbGQyIChCSVRfQU5EX0VYUFIsIHVuc2lnbmVkX3R5cGVf bm9kZSwKKwkJCSAgYXJyYXlfZWx0LAorCQkJICBidWlsZF9pbnRfY3N0dSAodW5zaWduZWRf dHlwZV9ub2RlLAorCQkJCQkgIGZpZWxkX3ZhbCkpOworCSAgcmV0dXJuIGJ1aWxkMSAoTk9Q X0VYUFIsIGludGVnZXJfdHlwZV9ub2RlLCBmaW5hbCk7CiAJfQotCi0gICAgICBmaWVsZCA9 IFRZUEVfRklFTERTIChpeDg2X2NwdV9tb2RlbF90eXBlX25vZGUpOwotICAgICAgLyogR2V0 IHRoZSBsYXN0IGZpZWxkLCB3aGljaCBpcyBfX2NwdV9mZWF0dXJlcy4gICovCi0gICAgICB3 aGlsZSAoREVDTF9DSEFJTiAoZmllbGQpKQotICAgICAgICBmaWVsZCA9IERFQ0xfQ0hBSU4g KGZpZWxkKTsKLQotICAgICAgLyogR2V0IHRoZSBhcHByb3ByaWF0ZSBmaWVsZDogX19jcHVf bW9kZWwuX19jcHVfZmVhdHVyZXMgICovCi0gICAgICByZWYgPSBidWlsZDMgKENPTVBPTkVO VF9SRUYsIFRSRUVfVFlQRSAoZmllbGQpLCBpeDg2X2NwdV9tb2RlbF92YXIsCi0JCSAgICBm aWVsZCwgTlVMTF9UUkVFKTsKLQotICAgICAgLyogQWNjZXNzIHRoZSAwdGggZWxlbWVudCBv ZiBfX2NwdV9mZWF0dXJlcyBhcnJheS4gICovCi0gICAgICBhcnJheV9lbHQgPSBidWlsZDQg KEFSUkFZX1JFRiwgdW5zaWduZWRfdHlwZV9ub2RlLCByZWYsCi0JCQkgIGludGVnZXJfemVy b19ub2RlLCBOVUxMX1RSRUUsIE5VTExfVFJFRSk7Ci0KLSAgICAgIGZpZWxkX3ZhbCA9ICgx VSA8PCBpc2FfbmFtZXNfdGFibGVbaV0uZmVhdHVyZSk7Ci0gICAgICAvKiBSZXR1cm4gX19j cHVfbW9kZWwuX19jcHVfZmVhdHVyZXNbMF0gJiBmaWVsZF92YWwgICovCi0gICAgICBmaW5h bCA9IGJ1aWxkMiAoQklUX0FORF9FWFBSLCB1bnNpZ25lZF90eXBlX25vZGUsIGFycmF5X2Vs dCwKLQkJICAgICAgYnVpbGRfaW50X2NzdHUgKHVuc2lnbmVkX3R5cGVfbm9kZSwgZmllbGRf dmFsKSk7Ci0gICAgICBpZiAoaXNhX25hbWVzX3RhYmxlW2ldLmZlYXR1cmUgPT0gKElOVF9U WVBFX1NJWkUgLSAxKSkKLQlyZXR1cm4gYnVpbGQyIChORV9FWFBSLCBpbnRlZ2VyX3R5cGVf bm9kZSwgZmluYWwsCi0JCSAgICAgICBidWlsZF9pbnRfY3N0ICh1bnNpZ25lZF90eXBlX25v ZGUsIDApKTsKICAgICAgIGVsc2UKLQlyZXR1cm4gYnVpbGQxIChDT05WRVJUX0VYUFIsIGlu dGVnZXJfdHlwZV9ub2RlLCBmaW5hbCk7CisJeworCSAgZmllbGQgPSBUWVBFX0ZJRUxEUyAo aXg4Nl9jcHVfbW9kZWxfdHlwZV9ub2RlKTsKKwkgIC8qIEdldCB0aGUgbGFzdCBmaWVsZCwg d2hpY2ggaXMgX19jcHVfZmVhdHVyZXMuICAqLworCSAgd2hpbGUgKERFQ0xfQ0hBSU4gKGZp ZWxkKSkKKwkgICAgZmllbGQgPSBERUNMX0NIQUlOIChmaWVsZCk7CisKKwkgIC8qIEdldCB0 aGUgYXBwcm9wcmlhdGUgZmllbGQ6IF9fY3B1X21vZGVsLl9fY3B1X2ZlYXR1cmVzICAqLwor CSAgcmVmID0gYnVpbGQzIChDT01QT05FTlRfUkVGLCBUUkVFX1RZUEUgKGZpZWxkKSwgaXg4 Nl9jcHVfbW9kZWxfdmFyLAorCQkJZmllbGQsIE5VTExfVFJFRSk7CisKKwkgIC8qIEFjY2Vz cyB0aGUgMHRoIGVsZW1lbnQgb2YgX19jcHVfZmVhdHVyZXMgYXJyYXkuICAqLworCSAgYXJy YXlfZWx0ID0gYnVpbGQ0IChBUlJBWV9SRUYsIHVuc2lnbmVkX3R5cGVfbm9kZSwgcmVmLAor CQkJICAgICAgaW50ZWdlcl96ZXJvX25vZGUsIE5VTExfVFJFRSwgTlVMTF9UUkVFKTsKKwor CSAgZmllbGRfdmFsID0gKDFVIDw8IGZlYXR1cmUpOworCSAgLyogUmV0dXJuIF9fY3B1X21v ZGVsLl9fY3B1X2ZlYXR1cmVzWzBdICYgZmllbGRfdmFsICAqLworCSAgZmluYWwgPSBidWls ZDIgKEJJVF9BTkRfRVhQUiwgdW5zaWduZWRfdHlwZV9ub2RlLCBhcnJheV9lbHQsCisJCQkg IGJ1aWxkX2ludF9jc3R1ICh1bnNpZ25lZF90eXBlX25vZGUsIGZpZWxkX3ZhbCkpOworCSAg aWYgKGZlYXR1cmUgPT0gKElOVF9UWVBFX1NJWkUgLSAxKSkKKwkgICAgcmV0dXJuIGJ1aWxk MiAoTkVfRVhQUiwgaW50ZWdlcl90eXBlX25vZGUsIGZpbmFsLAorCQkJICAgYnVpbGRfaW50 X2NzdCAodW5zaWduZWRfdHlwZV9ub2RlLCAwKSk7CisJICBlbHNlCisJICAgIHJldHVybiBi dWlsZDEgKE5PUF9FWFBSLCBpbnRlZ2VyX3R5cGVfbm9kZSwgZmluYWwpOworCX0KICAgICB9 CiAgIGdjY191bnJlYWNoYWJsZSAoKTsKIH0KLS0gCjIuMzYuMQoK --------------DQPTVEI6uFBOi1EE70DPX3Nx--