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 58AD2385842E for ; Wed, 15 Dec 2021 09:57:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 58AD2385842E 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 74C82212C4; Wed, 15 Dec 2021 09:57:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1639562261; 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=p9EzdpzoHDDw+FI3dKuSUbsoVPZ2ZXTNf2ZkTMlL0NQ=; b=LcrZqMiLhRmuOR7cQA5PIfCNwlaciipWkT9JvACG4jqAIC5183Xtqk19lpNS15cLkKuHFi mVdXvYN+K+yjzmXujMKDKibKLGgliCmQoqjvn7gnElFw4RKGu5ZJOvJHitSUMTmrQkijne TmqoK6mB1N4iOTUnlbYphrO2MEWvp8g= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1639562261; 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=p9EzdpzoHDDw+FI3dKuSUbsoVPZ2ZXTNf2ZkTMlL0NQ=; b=ovXaWOLEy4vCFtUU1vqtidwV0Q21MGIbWxHTpXtirTFif/FGx2g1AXPbbUiGSp9qoCjuDj VE0vQuMQpVulwkAw== 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 56C6D13B09; Wed, 15 Dec 2021 09:57:41 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id Blw+ExW8uWEaYQAAMHmgww (envelope-from ); Wed, 15 Dec 2021 09:57:41 +0000 Content-Type: multipart/mixed; boundary="------------wwqr0LKubqwOMiMgZGYAfh40" Message-ID: Date: Wed, 15 Dec 2021 10:57:40 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.4.0 Subject: [PATCH] i386: simplify cpu_feature handling Content-Language: en-US To: Jakub Jelinek Cc: gcc-patches@gcc.gnu.org, Stefan Kneifel References: <20211214102828.GU2646553@tucnak> <80d628c2-ea0d-c542-b0bb-399d83b7292d@suse.cz> <20211214161219.GX2646553@tucnak> From: =?UTF-8?Q?Martin_Li=c5=a1ka?= In-Reply-To: <20211214161219.GX2646553@tucnak> X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP 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, 15 Dec 2021 09:57:45 -0000 This is a multi-part message in MIME format. --------------wwqr0LKubqwOMiMgZGYAfh40 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit 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 --------------wwqr0LKubqwOMiMgZGYAfh40 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 RnJvbSA5ZmE4OWRmODFiM2U2Y2I1NmY2YWI1OWIwOTkzMTY4ZTdhMDQ4NDg5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gTGlza2EgPG1saXNrYUBzdXNlLmN6PgpE YXRlOiBXZWQsIDE1IERlYyAyMDIxIDEwOjU0OjIzICswMTAwClN1YmplY3Q6IFtQQVRDSF0g aTM4Njogc2ltcGxpZnkgY3B1X2ZlYXR1cmUgaGFuZGxpbmcKClRoZSBwYXRjaCByZW1vdmVz IHVubmVlZGVkIGxvb3BzIGZvciBjcHVfZmVhdHVyZXMyIGFuZCBDT05WRVJUX0VYUFIKdGhh dCBjYW4gYmUgc2ltcGxpZmllZCB3aXRoIE5PUF9FWFBSLgoKZ2NjL0NoYW5nZUxvZzoKCgkq IGNvbW1vbi9jb25maWcvaTM4Ni9jcHVpbmZvLmggKGhhc19jcHVfZmVhdHVyZSk6IERpcmVj dGx5Cgljb21wdXRlIGluZGV4IGluIGNwdV9mZWF0dXJlczIuCgkoc2V0X2NwdV9mZWF0dXJl KTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L2kzODYtYnVpbHRpbnMuYyAoZm9sZF9idWls dGluX2NwdSk6IEFsc28gcmVtb3ZlCglsb29wIGZvciBjcHVfZmVhdHVyZXMyIGFuZCB1c2Ug Tk9QX0VYUFJzLgotLS0KIGdjYy9jb21tb24vY29uZmlnL2kzODYvY3B1aW5mby5oIHwgNTAg KysrKysrKysrKystLS0tLS0tLS0KIGdjYy9jb25maWcvaTM4Ni9pMzg2LWJ1aWx0aW5zLmMg IHwgNzkgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdl ZCwgNjcgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2Nj L2NvbW1vbi9jb25maWcvaTM4Ni9jcHVpbmZvLmggYi9nY2MvY29tbW9uL2NvbmZpZy9pMzg2 L2NwdWluZm8uaAppbmRleCBiYmYyOWJkYjExNi4uZGQzMjE5MjAxMDggMTAwNjQ0Ci0tLSBh L2djYy9jb21tb24vY29uZmlnL2kzODYvY3B1aW5mby5oCisrKyBiL2djYy9jb21tb24vY29u ZmlnL2kzODYvY3B1aW5mby5oCkBAIC01NSw0MyArNTUsNDkgQEAgc3RydWN0IF9fcHJvY2Vz c29yX21vZGVsMgogc3RhdGljIGlubGluZSBpbnQKIGhhc19jcHVfZmVhdHVyZSAoc3RydWN0 IF9fcHJvY2Vzc29yX21vZGVsICpjcHVfbW9kZWwsCiAJCSB1bnNpZ25lZCBpbnQgKmNwdV9m ZWF0dXJlczIsCi0JCSBlbnVtIHByb2Nlc3Nvcl9mZWF0dXJlcyBmKQorCQkgZW51bSBwcm9j ZXNzb3JfZmVhdHVyZXMgZmVhdHVyZSkKIHsKLSAgdW5zaWduZWQgaW50IGk7CisgIHVuc2ln bmVkIGluZGV4LCBvZmZzZXQ7CisgIHVuc2lnbmVkIGYgPSBmZWF0dXJlOworCiAgIGlmIChm IDwgMzIpCiAgICAgewogICAgICAgLyogVGhlIGZpcnN0IDMyIGZlYXR1cmVzLiAgKi8KLSAg ICAgIHJldHVybiBjcHVfbW9kZWwtPl9fY3B1X2ZlYXR1cmVzWzBdICYgKDFVIDw8IChmICYg MzEpKTsKKyAgICAgIHJldHVybiBjcHVfbW9kZWwtPl9fY3B1X2ZlYXR1cmVzWzBdICYgKDFV IDw8IGYpOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIC8qIFRoZSByZXN0IG9mIGZl YXR1cmVzLiAgY3B1X2ZlYXR1cmVzMltpXSBjb250YWlucyBmZWF0dXJlcyBmcm9tCisJICgz MiArIGkgKiAzMikgdG8gKDMxICsgMzIgKyBpICogMzIpLCBpbmNsdXNpdmVseS4gICovCisg ICAgICBmIC09IDMyOworICAgICAgaW5kZXggPSBmIC8gMzI7CisgICAgICBvZmZzZXQgPSBm ICUgMzI7CisgICAgICByZXR1cm4gY3B1X2ZlYXR1cmVzMltpbmRleF0gJiAoMVUgPDwgb2Zm c2V0KTsKICAgICB9Ci0gIC8qIFRoZSByZXN0IG9mIGZlYXR1cmVzLiAgY3B1X2ZlYXR1cmVz MltpXSBjb250YWlucyBmZWF0dXJlcyBmcm9tCi0gICAgICgzMiArIGkgKiAzMikgdG8gKDMx ICsgMzIgKyBpICogMzIpLCBpbmNsdXNpdmVseS4gICovCi0gIGZvciAoaSA9IDA7IGkgPCBT SVpFX09GX0NQVV9GRUFUVVJFUzsgaSsrKQotICAgIGlmIChmIDwgKDMyICsgMzIgKyBpICog MzIpKQotICAgIHJldHVybiBjcHVfZmVhdHVyZXMyW2ldICYgKDFVIDw8ICgoZiAtICgzMiAr IGkgKiAzMikpICYgMzEpKTsKLSAgZ2NjX3VucmVhY2hhYmxlICgpOwogfQogCiBzdGF0aWMg aW5saW5lIHZvaWQKIHNldF9jcHVfZmVhdHVyZSAoc3RydWN0IF9fcHJvY2Vzc29yX21vZGVs ICpjcHVfbW9kZWwsCiAJCSB1bnNpZ25lZCBpbnQgKmNwdV9mZWF0dXJlczIsCi0JCSBlbnVt IHByb2Nlc3Nvcl9mZWF0dXJlcyBmKQorCQkgZW51bSBwcm9jZXNzb3JfZmVhdHVyZXMgZmVh dHVyZSkKIHsKLSAgdW5zaWduZWQgaW50IGk7CisgIHVuc2lnbmVkIGluZGV4LCBvZmZzZXQ7 CisgIHVuc2lnbmVkIGYgPSBmZWF0dXJlOworCiAgIGlmIChmIDwgMzIpCiAgICAgewogICAg ICAgLyogVGhlIGZpcnN0IDMyIGZlYXR1cmVzLiAgKi8KLSAgICAgIGNwdV9tb2RlbC0+X19j cHVfZmVhdHVyZXNbMF0gfD0gKDFVIDw8IChmICYgMzEpKTsKLSAgICAgIHJldHVybjsKKyAg ICAgIGNwdV9tb2RlbC0+X19jcHVfZmVhdHVyZXNbMF0gfD0gKDFVIDw8IGYpOworICAgIH0K KyAgZWxzZQorICAgIHsKKyAgICAgIC8qIFRoZSByZXN0IG9mIGZlYXR1cmVzLiAgY3B1X2Zl YXR1cmVzMltpXSBjb250YWlucyBmZWF0dXJlcyBmcm9tCisJICgzMiArIGkgKiAzMikgdG8g KDMxICsgMzIgKyBpICogMzIpLCBpbmNsdXNpdmVseS4gICovCisgICAgICBmIC09IDMyOwor ICAgICAgaW5kZXggPSBmIC8gMzI7CisgICAgICBvZmZzZXQgPSBmICUgMzI7CisgICAgICBj cHVfZmVhdHVyZXMyW2luZGV4XSB8PSAoMVUgPDwgb2Zmc2V0KTsKICAgICB9Ci0gIC8qIFRo ZSByZXN0IG9mIGZlYXR1cmVzLiAgY3B1X2ZlYXR1cmVzMltpXSBjb250YWlucyBmZWF0dXJl cyBmcm9tCi0gICAgICgzMiArIGkgKiAzMikgdG8gKDMxICsgMzIgKyBpICogMzIpLCBpbmNs dXNpdmVseS4gICovCi0gIGZvciAoaSA9IDA7IGkgPCBTSVpFX09GX0NQVV9GRUFUVVJFUzsg aSsrKQotICAgIGlmIChmIDwgKDMyICsgMzIgKyBpICogMzIpKQotICAgICAgewotCWNwdV9m ZWF0dXJlczJbaV0gfD0gKDFVIDw8ICgoZiAtICgzMiArIGkgKiAzMikpICYgMzEpKTsKLQly ZXR1cm47Ci0gICAgICB9Ci0gIGdjY191bnJlYWNoYWJsZSAoKTsKIH0KIAogLyogR2V0IHRo ZSBzcGVjaWZpYyB0eXBlIG9mIEFNRCBDUFUgYW5kIHJldHVybiBBTUQgQ1BVIG5hbWUuICBS ZXR1cm4KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2LWJ1aWx0aW5zLmMgYi9n Y2MvY29uZmlnL2kzODYvaTM4Ni1idWlsdGlucy5jCmluZGV4IDRiMzBjZjc1YzI2Li4zMWUw MzRlMWJjOSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYtYnVpbHRpbnMuYwor KysgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni1idWlsdGlucy5jCkBAIC0yMjc1LDcgKzIyNzUs NyBAQCBmb2xkX2J1aWx0aW5fY3B1ICh0cmVlIGZuZGVjbCwgdHJlZSAqYXJncykKICAgICAg IC8qIENoZWNrIHRoZSB2YWx1ZS4gICovCiAgICAgICBmaW5hbCA9IGJ1aWxkMiAoRVFfRVhQ UiwgdW5zaWduZWRfdHlwZV9ub2RlLCByZWYsCiAJCSAgICAgIGJ1aWxkX2ludF9jc3R1ICh1 bnNpZ25lZF90eXBlX25vZGUsIGZpZWxkX3ZhbCkpOwotICAgICAgcmV0dXJuIGJ1aWxkMSAo Q09OVkVSVF9FWFBSLCBpbnRlZ2VyX3R5cGVfbm9kZSwgZmluYWwpOworICAgICAgcmV0dXJu IGJ1aWxkMSAoTk9QX0VYUFIsIGludGVnZXJfdHlwZV9ub2RlLCBmaW5hbCk7CiAgICAgfQog ICBlbHNlIGlmIChmbl9jb2RlID09IElYODZfQlVJTFRJTl9DUFVfU1VQUE9SVFMpCiAgICAg ewpAQCAtMjMwMCw3ICsyMzAwLDggQEAgZm9sZF9idWlsdGluX2NwdSAodHJlZSBmbmRlY2ws IHRyZWUgKmFyZ3MpCiAJICByZXR1cm4gaW50ZWdlcl96ZXJvX25vZGU7CiAJfQogCi0gICAg ICBpZiAoaXNhX25hbWVzX3RhYmxlW2ldLmZlYXR1cmUgPj0gMzIpCisgICAgICB1bnNpZ25l ZCBmZWF0dXJlID0gaXNhX25hbWVzX3RhYmxlW2ldLmZlYXR1cmU7CisgICAgICBpZiAoZmVh dHVyZSA+PSBJTlRfVFlQRV9TSVpFKQogCXsKIAkgIGlmIChpeDg2X2NwdV9mZWF0dXJlczJf dmFyID09IG51bGxwdHIpCiAJICAgIHsKQEAgLTIzMTgsNDYgKzIzMTksNDQgQEAgZm9sZF9i dWlsdGluX2NwdSAodHJlZSBmbmRlY2wsIHRyZWUgKmFyZ3MpCiAJICAgICAgdmFycG9vbF9u b2RlOjphZGQgKGl4ODZfY3B1X2ZlYXR1cmVzMl92YXIpOwogCSAgICB9CiAKLQkgIGZvciAo dW5zaWduZWQgaW50IGogPSAwOyBqIDwgU0laRV9PRl9DUFVfRkVBVFVSRVM7IGorKykKLQkg ICAgaWYgKGlzYV9uYW1lc190YWJsZVtpXS5mZWF0dXJlIDwgKDMyICsgMzIgKyBqICogMzIp KQotCSAgICAgIHsKLQkJZmllbGRfdmFsID0gKDFVIDw8IChpc2FfbmFtZXNfdGFibGVbaV0u ZmVhdHVyZQotCQkJCSAgICAtICgzMiArIGogKiAzMikpKTsKLQkJdHJlZSBpbmRleCA9IHNp emVfaW50IChqKTsKLQkJYXJyYXlfZWx0ID0gYnVpbGQ0IChBUlJBWV9SRUYsIHVuc2lnbmVk X3R5cGVfbm9kZSwKLQkJCQkgICAgaXg4Nl9jcHVfZmVhdHVyZXMyX3ZhciwKLQkJCQkgICAg aW5kZXgsIE5VTExfVFJFRSwgTlVMTF9UUkVFKTsKLQkJLyogUmV0dXJuIF9fY3B1X2ZlYXR1 cmVzMltpbmRleF0gJiBmaWVsZF92YWwgICovCi0JCWZpbmFsID0gYnVpbGQyIChCSVRfQU5E X0VYUFIsIHVuc2lnbmVkX3R5cGVfbm9kZSwKLQkJCQlhcnJheV9lbHQsCi0JCQkJYnVpbGRf aW50X2NzdHUgKHVuc2lnbmVkX3R5cGVfbm9kZSwKLQkJCQkJCWZpZWxkX3ZhbCkpOwotCQly ZXR1cm4gYnVpbGQxIChDT05WRVJUX0VYUFIsIGludGVnZXJfdHlwZV9ub2RlLCBmaW5hbCk7 Ci0JICAgICAgfQorCSAgZmVhdHVyZSAtPSBJTlRfVFlQRV9TSVpFOworCSAgZmllbGRfdmFs ID0gMVUgPDwgKGZlYXR1cmUgJSBJTlRfVFlQRV9TSVpFKTsKKwkgIHRyZWUgaW5kZXggPSBz aXplX2ludCAoZmVhdHVyZSAvIElOVF9UWVBFX1NJWkUpOworCSAgYXJyYXlfZWx0ID0gYnVp bGQ0IChBUlJBWV9SRUYsIHVuc2lnbmVkX3R5cGVfbm9kZSwKKwkJCSAgICAgIGl4ODZfY3B1 X2ZlYXR1cmVzMl92YXIsCisJCQkgICAgICBpbmRleCwgTlVMTF9UUkVFLCBOVUxMX1RSRUUp OworCSAgLyogUmV0dXJuIF9fY3B1X2ZlYXR1cmVzMltpbmRleF0gJiBmaWVsZF92YWwgICov CisJICBmaW5hbCA9IGJ1aWxkMiAoQklUX0FORF9FWFBSLCB1bnNpZ25lZF90eXBlX25vZGUs CisJCQkgIGFycmF5X2VsdCwKKwkJCSAgYnVpbGRfaW50X2NzdHUgKHVuc2lnbmVkX3R5cGVf bm9kZSwKKwkJCQkJICBmaWVsZF92YWwpKTsKKwkgIHJldHVybiBidWlsZDEgKE5PUF9FWFBS LCBpbnRlZ2VyX3R5cGVfbm9kZSwgZmluYWwpOwogCX0KLQotICAgICAgZmllbGQgPSBUWVBF X0ZJRUxEUyAoaXg4Nl9jcHVfbW9kZWxfdHlwZV9ub2RlKTsKLSAgICAgIC8qIEdldCB0aGUg bGFzdCBmaWVsZCwgd2hpY2ggaXMgX19jcHVfZmVhdHVyZXMuICAqLwotICAgICAgd2hpbGUg KERFQ0xfQ0hBSU4gKGZpZWxkKSkKLSAgICAgICAgZmllbGQgPSBERUNMX0NIQUlOIChmaWVs ZCk7Ci0KLSAgICAgIC8qIEdldCB0aGUgYXBwcm9wcmlhdGUgZmllbGQ6IF9fY3B1X21vZGVs Ll9fY3B1X2ZlYXR1cmVzICAqLwotICAgICAgcmVmID0gYnVpbGQzIChDT01QT05FTlRfUkVG LCBUUkVFX1RZUEUgKGZpZWxkKSwgaXg4Nl9jcHVfbW9kZWxfdmFyLAotCQkgICAgZmllbGQs IE5VTExfVFJFRSk7Ci0KLSAgICAgIC8qIEFjY2VzcyB0aGUgMHRoIGVsZW1lbnQgb2YgX19j cHVfZmVhdHVyZXMgYXJyYXkuICAqLwotICAgICAgYXJyYXlfZWx0ID0gYnVpbGQ0IChBUlJB WV9SRUYsIHVuc2lnbmVkX3R5cGVfbm9kZSwgcmVmLAotCQkJICBpbnRlZ2VyX3plcm9fbm9k ZSwgTlVMTF9UUkVFLCBOVUxMX1RSRUUpOwotCi0gICAgICBmaWVsZF92YWwgPSAoMVUgPDwg aXNhX25hbWVzX3RhYmxlW2ldLmZlYXR1cmUpOwotICAgICAgLyogUmV0dXJuIF9fY3B1X21v ZGVsLl9fY3B1X2ZlYXR1cmVzWzBdICYgZmllbGRfdmFsICAqLwotICAgICAgZmluYWwgPSBi dWlsZDIgKEJJVF9BTkRfRVhQUiwgdW5zaWduZWRfdHlwZV9ub2RlLCBhcnJheV9lbHQsCi0J CSAgICAgIGJ1aWxkX2ludF9jc3R1ICh1bnNpZ25lZF90eXBlX25vZGUsIGZpZWxkX3ZhbCkp OwotICAgICAgaWYgKGlzYV9uYW1lc190YWJsZVtpXS5mZWF0dXJlID09IChJTlRfVFlQRV9T SVpFIC0gMSkpCi0JcmV0dXJuIGJ1aWxkMiAoTkVfRVhQUiwgaW50ZWdlcl90eXBlX25vZGUs IGZpbmFsLAotCQkgICAgICAgYnVpbGRfaW50X2NzdCAodW5zaWduZWRfdHlwZV9ub2RlLCAw KSk7CiAgICAgICBlbHNlCi0JcmV0dXJuIGJ1aWxkMSAoQ09OVkVSVF9FWFBSLCBpbnRlZ2Vy X3R5cGVfbm9kZSwgZmluYWwpOworCXsKKwkgIGZpZWxkID0gVFlQRV9GSUVMRFMgKGl4ODZf Y3B1X21vZGVsX3R5cGVfbm9kZSk7CisJICAvKiBHZXQgdGhlIGxhc3QgZmllbGQsIHdoaWNo IGlzIF9fY3B1X2ZlYXR1cmVzLiAgKi8KKwkgIHdoaWxlIChERUNMX0NIQUlOIChmaWVsZCkp CisJICAgIGZpZWxkID0gREVDTF9DSEFJTiAoZmllbGQpOworCisJICAvKiBHZXQgdGhlIGFw cHJvcHJpYXRlIGZpZWxkOiBfX2NwdV9tb2RlbC5fX2NwdV9mZWF0dXJlcyAgKi8KKwkgIHJl ZiA9IGJ1aWxkMyAoQ09NUE9ORU5UX1JFRiwgVFJFRV9UWVBFIChmaWVsZCksIGl4ODZfY3B1 X21vZGVsX3ZhciwKKwkJCWZpZWxkLCBOVUxMX1RSRUUpOworCisJICAvKiBBY2Nlc3MgdGhl IDB0aCBlbGVtZW50IG9mIF9fY3B1X2ZlYXR1cmVzIGFycmF5LiAgKi8KKwkgIGFycmF5X2Vs dCA9IGJ1aWxkNCAoQVJSQVlfUkVGLCB1bnNpZ25lZF90eXBlX25vZGUsIHJlZiwKKwkJCSAg ICAgIGludGVnZXJfemVyb19ub2RlLCBOVUxMX1RSRUUsIE5VTExfVFJFRSk7CisKKwkgIGZp ZWxkX3ZhbCA9ICgxVSA8PCBmZWF0dXJlKTsKKwkgIC8qIFJldHVybiBfX2NwdV9tb2RlbC5f X2NwdV9mZWF0dXJlc1swXSAmIGZpZWxkX3ZhbCAgKi8KKwkgIGZpbmFsID0gYnVpbGQyIChC SVRfQU5EX0VYUFIsIHVuc2lnbmVkX3R5cGVfbm9kZSwgYXJyYXlfZWx0LAorCQkJICBidWls ZF9pbnRfY3N0dSAodW5zaWduZWRfdHlwZV9ub2RlLCBmaWVsZF92YWwpKTsKKwkgIGlmIChm ZWF0dXJlID09IChJTlRfVFlQRV9TSVpFIC0gMSkpCisJICAgIHJldHVybiBidWlsZDIgKE5F X0VYUFIsIGludGVnZXJfdHlwZV9ub2RlLCBmaW5hbCwKKwkJCSAgIGJ1aWxkX2ludF9jc3Qg KHVuc2lnbmVkX3R5cGVfbm9kZSwgMCkpOworCSAgZWxzZQorCSAgICByZXR1cm4gYnVpbGQx IChOT1BfRVhQUiwgaW50ZWdlcl90eXBlX25vZGUsIGZpbmFsKTsKKwl9CiAgICAgfQogICBn Y2NfdW5yZWFjaGFibGUgKCk7CiB9Ci0tIAoyLjM0LjEKCg== --------------wwqr0LKubqwOMiMgZGYAfh40--