From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CC1AEC07E9C for ; Mon, 5 Jul 2021 23:44:02 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 63C8A6199F for ; Mon, 5 Jul 2021 23:44:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 63C8A6199F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=quicinc.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:54256 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m0YFt-00067S-Fh for qemu-devel@archiver.kernel.org; Mon, 05 Jul 2021 19:44:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35470) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m0Y71-0003Nk-F9 for qemu-devel@nongnu.org; Mon, 05 Jul 2021 19:34:51 -0400 Received: from alexa-out-sd-02.qualcomm.com ([199.106.114.39]:40183) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1m0Y6x-0004ez-T9 for qemu-devel@nongnu.org; Mon, 05 Jul 2021 19:34:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1625528087; x=1657064087; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=/y7FgE+4hANEVIAb3/Zu0xEpg50MnCodRitYzxWxuto=; b=Lh6NarjXLRjqB+mZZj5yb/MphF8QQ+2MTYov5Fgd7C8xdiU61MJ2ICdx L2ZGaDoykoYwSmPa6Ns9bHw5jfGGGCc5x9uvAs/g/Rhj7mCpfMC1s7CFj jF0CpcXGVTyk2NnbsiRpAwoAeQ8Bk3biZ2EDgQVmumZlYAJRBHAB5YQzu 4=; Received: from unknown (HELO ironmsg-SD-alpha.qualcomm.com) ([10.53.140.30]) by alexa-out-sd-02.qualcomm.com with ESMTP; 05 Jul 2021 16:34:39 -0700 X-QCInternal: smtphost Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg-SD-alpha.qualcomm.com with ESMTP; 05 Jul 2021 16:34:38 -0700 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id D3B45B42; Mon, 5 Jul 2021 18:34:37 -0500 (CDT) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [PATCH 02/20] Hexagon HVX (target/hexagon) add Hexagon Vector eXtensions (HVX) to core Date: Mon, 5 Jul 2021 18:34:16 -0500 Message-Id: <1625528074-19440-3-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1625528074-19440-1-git-send-email-tsimpson@quicinc.com> References: <1625528074-19440-1-git-send-email-tsimpson@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=199.106.114.39; envelope-from=tsimpson@qualcomm.com; helo=alexa-out-sd-02.qualcomm.com X-Spam_score_int: -40 X-Spam_score: -4.1 X-Spam_bar: ---- X-Spam_report: (-4.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ale@rev.ng, peter.maydell@linaro.org, bcain@quicinc.com, richard.henderson@linaro.org, tsimpson@quicinc.com, philmd@redhat.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" SFZYIGlzIGEgc2V0IG9mIHdpZGUgdmVjdG9yIGluc3RydWN0aW9ucy4gIE1hY2hpbmUgc3RhdGUg aW5jbHVkZXMKICAgIHZlY3RvciByZWdpc3RlcnMgKFZSZWdzKQogICAgdmVjdG9yIHByZWRpY2F0 ZSByZWdpc3RlcnMgKFFSZWdzKQogICAgdGVtcG9yYXJ5IHJlZ2lzdGVycyBmb3IgaW50ZXJtZWRp YXRlIHZhbHVlcwogICAgc3RvcmUgYnVmZmVyIChtYXNrZWQgc3RvcmVzIGFuZCBzY2F0dGVyL2dh dGhlcikKClNpZ25lZC1vZmYtYnk6IFRheWxvciBTaW1wc29uIDx0c2ltcHNvbkBxdWljaW5jLmNv bT4KLS0tCiB0YXJnZXQvaGV4YWdvbi9jcHUuaCAgICAgICAgICAgIHwgMzUgKysrKysrKysrKysr KysrKy0KIHRhcmdldC9oZXhhZ29uL2hleF9hcmNoX3R5cGVzLmggfCAgNSArKysKIHRhcmdldC9o ZXhhZ29uL2luc24uaCAgICAgICAgICAgfCAgMyArKwogdGFyZ2V0L2hleGFnb24vaW50ZXJuYWwu aCAgICAgICB8ICAzICsrCiB0YXJnZXQvaGV4YWdvbi9tbXZlYy9tbXZlYy5oICAgIHwgODMgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRhcmdldC9oZXhhZ29uL2Nw dS5jICAgICAgICAgICAgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQog NiBmaWxlcyBjaGFuZ2VkLCAxOTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCB0YXJnZXQvaGV4YWdvbi9tbXZlYy9tbXZlYy5oCgpkaWZmIC0tZ2l0IGEv dGFyZ2V0L2hleGFnb24vY3B1LmggYi90YXJnZXQvaGV4YWdvbi9jcHUuaAppbmRleCAyODU1ZGQz Li4wYjM3N2MzIDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9jcHUuaAorKysgYi90YXJnZXQv aGV4YWdvbi9jcHUuaApAQCAtMjYsNiArMjYsNyBAQCB0eXBlZGVmIHN0cnVjdCBDUFVIZXhhZ29u U3RhdGUgQ1BVSGV4YWdvblN0YXRlOwogI2luY2x1ZGUgInFlbXUtY29tbW9uLmgiCiAjaW5jbHVk ZSAiZXhlYy9jcHUtZGVmcy5oIgogI2luY2x1ZGUgImhleF9yZWdzLmgiCisjaW5jbHVkZSAibW12 ZWMvbW12ZWMuaCIKIAogI2RlZmluZSBOVU1fUFJFR1MgNAogI2RlZmluZSBUT1RBTF9QRVJfVEhS RUFEX1JFR1MgNjQKQEAgLTM0LDYgKzM1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ1BVSGV4YWdvblN0 YXRlIENQVUhleGFnb25TdGF0ZTsKICNkZWZpbmUgU1RPUkVTX01BWCAyCiAjZGVmaW5lIFJFR19X UklURVNfTUFYIDMyCiAjZGVmaW5lIFBSRURfV1JJVEVTX01BWCA1ICAgICAgICAgICAgICAgICAg IC8qIDQgaW5zbnMgKyBlbmRsb29wICovCisjZGVmaW5lIFZTVE9SRVNfTUFYIDIKIAogI2RlZmlu ZSBUWVBFX0hFWEFHT05fQ1BVICJoZXhhZ29uLWNwdSIKIApAQCAtNTIsNiArNTQsMTMgQEAgdHlw ZWRlZiBzdHJ1Y3QgewogICAgIHVpbnQ2NF90IGRhdGE2NDsKIH0gTWVtTG9nOwogCit0eXBlZGVm IHN0cnVjdCB7CisgICAgdGFyZ2V0X3Vsb25nIHZhOworICAgIGludCBzaXplOworICAgIE1NVmVj dG9yIG1hc2sgUUVNVV9BTElHTkVEKDE2KTsKKyAgICBNTVZlY3RvciBkYXRhIFFFTVVfQUxJR05F RCgxNik7Cit9IFZTdG9yZUxvZzsKKwogI2RlZmluZSBFWEVDX1NUQVRVU19PSyAgICAgICAgICAw eDAwMDAKICNkZWZpbmUgRVhFQ19TVEFUVVNfU1RPUCAgICAgICAgMHgwMDAyCiAjZGVmaW5lIEVY RUNfU1RBVFVTX1JFUExBWSAgICAgIDB4MDAxMApAQCAtOTgsNyArMTA3LDMxIEBAIHN0cnVjdCBD UFVIZXhhZ29uU3RhdGUgewogICAgIHVpbnQ2NF90ICAgICBsbHNjX3ZhbF9pNjQ7CiAKICAgICB0 YXJnZXRfdWxvbmcgaXNfZ2F0aGVyX3N0b3JlX2luc247Ci0gICAgdGFyZ2V0X3Vsb25nIGdhdGhl cl9pc3N1ZWQ7CisgICAgYm9vbCBnYXRoZXJfaXNzdWVkOworCisgICAgTU1WZWN0b3IgVlJlZ3Nb TlVNX1ZSRUdTXSBRRU1VX0FMSUdORUQoMTYpOworICAgIE1NVmVjdG9yIGZ1dHVyZV9WUmVnc1tO VU1fVlJFR1NdIFFFTVVfQUxJR05FRCgxNik7CisgICAgTU1WZWN0b3IgdG1wX1ZSZWdzW05VTV9W UkVHU10gUUVNVV9BTElHTkVEKDE2KTsKKworICAgIFZSZWdNYXNrIFZSZWdzX3VwZGF0ZWRfdG1w OworICAgIFZSZWdNYXNrIFZSZWdzX3VwZGF0ZWQ7CisgICAgVlJlZ01hc2sgVlJlZ3Nfc2VsZWN0 OworCisgICAgTU1RUmVnIFFSZWdzW05VTV9RUkVHU10gUUVNVV9BTElHTkVEKDE2KTsKKyAgICBN TVFSZWcgZnV0dXJlX1FSZWdzW05VTV9RUkVHU10gUUVNVV9BTElHTkVEKDE2KTsKKyAgICBRUmVn TWFzayBRUmVnc191cGRhdGVkOworCisgICAgLyogVGVtcG9yYXJpZXMgdXNlZCB3aXRoaW4gaW5z dHJ1Y3Rpb25zICovCisgICAgTU1WZWN0b3IgemVyb192ZWN0b3IgUUVNVV9BTElHTkVEKDE2KTsK KyAgICBNTVZlY3RvclBhaXIgVmRkViBRRU1VX0FMSUdORUQoMTYpLAorICAgICAgICAgICAgICAg ICBWdXVWIFFFTVVfQUxJR05FRCgxNiksCisgICAgICAgICAgICAgICAgIFZ2dlYgUUVNVV9BTElH TkVEKDE2KSwKKyAgICAgICAgICAgICAgICAgVnh4ViBRRU1VX0FMSUdORUQoMTYpOworCisgICAg VlN0b3JlTG9nIHZzdG9yZVtWU1RPUkVTX01BWF07CisgICAgdGFyZ2V0X3Vsb25nIHZzdG9yZV9w ZW5kaW5nW1ZTVE9SRVNfTUFYXTsKKyAgICBib29sIHZ0Y21fcGVuZGluZzsKKyAgICBWVENNU3Rv cmVMb2cgdnRjbV9sb2c7CiB9OwogCiAjZGVmaW5lIEhFWEFHT05fQ1BVX0NMQVNTKGtsYXNzKSBc CmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9oZXhfYXJjaF90eXBlcy5oIGIvdGFyZ2V0L2hl eGFnb24vaGV4X2FyY2hfdHlwZXMuaAppbmRleCBkNzIxZTFmLi43OGFkNjA3IDEwMDY0NAotLS0g YS90YXJnZXQvaGV4YWdvbi9oZXhfYXJjaF90eXBlcy5oCisrKyBiL3RhcmdldC9oZXhhZ29uL2hl eF9hcmNoX3R5cGVzLmgKQEAgLTE5LDYgKzE5LDcgQEAKICNkZWZpbmUgSEVYQUdPTl9BUkNIX1RZ UEVTX0gKIAogI2luY2x1ZGUgInFlbXUvb3NkZXAuaCIKKyNpbmNsdWRlICJtbXZlYy9tbXZlYy5o IgogI2luY2x1ZGUgInFlbXUvaW50MTI4LmgiCiAKIC8qCkBAIC0zNSw0ICszNiw4IEBAIHR5cGVk ZWYgdWludDY0X3QgICAgc2l6ZTh1X3Q7CiB0eXBlZGVmIGludDY0X3QgICAgIHNpemU4c190Owog dHlwZWRlZiBJbnQxMjggICAgICBzaXplMTZzX3Q7CiAKK3R5cGVkZWYgTU1WZWN0b3IgICAgICAg ICAgbW12ZWN0b3JfdDsKK3R5cGVkZWYgTU1WZWN0b3JQYWlyICAgICAgbW12ZWN0b3JfcGFpcl90 OwordHlwZWRlZiBNTVFSZWcgICAgICAgICAgICBtbXFyZXRfdDsKKwogI2VuZGlmCmRpZmYgLS1n aXQgYS90YXJnZXQvaGV4YWdvbi9pbnNuLmggYi90YXJnZXQvaGV4YWdvbi9pbnNuLmgKaW5kZXgg MmUzNDU5MS4uMzg3MmY5MCAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vaW5zbi5oCisrKyBi L3RhcmdldC9oZXhhZ29uL2luc24uaApAQCAtNjcsNiArNjcsOSBAQCBzdHJ1Y3QgUGFja2V0IHsK ICAgICBib29sIHBrdF9oYXNfc3RvcmVfczA7CiAgICAgYm9vbCBwa3RfaGFzX3N0b3JlX3MxOwog CisgICAgYm9vbCBwa3RfaGFzX2h2eDsKKyAgICBib29sIHBrdF9oYXNfdmhpc3Q7CisKICAgICBJ bnNuIGluc25bSU5TVFJVQ1RJT05TX01BWF07CiB9OwogCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4 YWdvbi9pbnRlcm5hbC5oIGIvdGFyZ2V0L2hleGFnb24vaW50ZXJuYWwuaAppbmRleCA2YjIwYWZm Li44MmFjMzA0IDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9pbnRlcm5hbC5oCisrKyBiL3Rh cmdldC9oZXhhZ29uL2ludGVybmFsLmgKQEAgLTMxLDYgKzMxLDkgQEAKIAogaW50IGhleGFnb25f Z2RiX3JlYWRfcmVnaXN0ZXIoQ1BVU3RhdGUgKmNwdSwgR0J5dGVBcnJheSAqYnVmLCBpbnQgcmVn KTsKIGludCBoZXhhZ29uX2dkYl93cml0ZV9yZWdpc3RlcihDUFVTdGF0ZSAqY3B1LCB1aW50OF90 ICpidWYsIGludCByZWcpOworCit2b2lkIGhleGFnb25fZGVidWdfdnJlZyhDUFVIZXhhZ29uU3Rh dGUgKmVudiwgaW50IHJlZ251bSk7Cit2b2lkIGhleGFnb25fZGVidWdfcXJlZyhDUFVIZXhhZ29u U3RhdGUgKmVudiwgaW50IHJlZ251bSk7CiB2b2lkIGhleGFnb25fZGVidWcoQ1BVSGV4YWdvblN0 YXRlICplbnYpOwogCiBleHRlcm4gY29uc3QgY2hhciAqIGNvbnN0IGhleGFnb25fcmVnbmFtZXNb VE9UQUxfUEVSX1RIUkVBRF9SRUdTXTsKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL21tdmVj L21tdmVjLmggYi90YXJnZXQvaGV4YWdvbi9tbXZlYy9tbXZlYy5oCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjA2MWNjY2UKLS0tIC9kZXYvbnVsbAorKysgYi90YXJnZXQvaGV4 YWdvbi9tbXZlYy9tbXZlYy5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiAgQ29weXJpZ2h0KGMp IDIwMTktMjAyMSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJl c2VydmVkLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg b3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8K KworI2lmbmRlZiBIRVhBR09OX01NVkVDX0gKKyNkZWZpbmUgSEVYQUdPTl9NTVZFQ19ICisKKyNk ZWZpbmUgTUFYX1ZFQ19TSVpFX0xPR0JZVEVTIDcKKyNkZWZpbmUgTUFYX1ZFQ19TSVpFX0JZVEVT ICAoMSA8PCBNQVhfVkVDX1NJWkVfTE9HQllURVMpCisKKyNkZWZpbmUgTlVNX1ZSRUdTICAgICAg ICAgICAzMgorI2RlZmluZSBOVU1fUVJFR1MgICAgICAgICAgIDQKKwordHlwZWRlZiB1aW50MzJf dCBWUmVnTWFzazsgLyogYXQgbGVhc3QgTlVNX1ZSRUdTIGJpdHMgKi8KK3R5cGVkZWYgdWludDMy X3QgUVJlZ01hc2s7IC8qIGF0IGxlYXN0IE5VTV9RUkVHUyBiaXRzICovCisKKyNkZWZpbmUgVkVD VE9SX1NJWkVfQllURSAgICAoZlZFQ1NJWkUoKSkKKwordHlwZWRlZiB1bmlvbiB7CisgICAgdWlu dDY0X3QgdWRbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gOF07CisgICAgaW50NjRfdCAgIGRbTUFYX1ZF Q19TSVpFX0JZVEVTIC8gOF07CisgICAgdWludDMyX3QgdXdbTUFYX1ZFQ19TSVpFX0JZVEVTIC8g NF07CisgICAgaW50MzJfdCAgIHdbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gNF07CisgICAgdWludDE2 X3QgdWhbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMl07CisgICAgaW50MTZfdCAgIGhbTUFYX1ZFQ19T SVpFX0JZVEVTIC8gMl07CisgICAgdWludDhfdCAgdWJbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMV07 CisgICAgaW50OF90ICAgIGJbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMV07Cit9IE1NVmVjdG9yOwor Cit0eXBlZGVmIHVuaW9uIHsKKyAgICB1aW50NjRfdCB1ZFsyICogTUFYX1ZFQ19TSVpFX0JZVEVT IC8gOF07CisgICAgaW50NjRfdCAgIGRbMiAqIE1BWF9WRUNfU0laRV9CWVRFUyAvIDhdOworICAg IHVpbnQzMl90IHV3WzIgKiBNQVhfVkVDX1NJWkVfQllURVMgLyA0XTsKKyAgICBpbnQzMl90ICAg d1syICogTUFYX1ZFQ19TSVpFX0JZVEVTIC8gNF07CisgICAgdWludDE2X3QgdWhbMiAqIE1BWF9W RUNfU0laRV9CWVRFUyAvIDJdOworICAgIGludDE2X3QgICBoWzIgKiBNQVhfVkVDX1NJWkVfQllU RVMgLyAyXTsKKyAgICB1aW50OF90ICB1YlsyICogTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMV07Cisg ICAgaW50OF90ICAgIGJbMiAqIE1BWF9WRUNfU0laRV9CWVRFUyAvIDFdOworICAgIE1NVmVjdG9y IHZbMl07Cit9IE1NVmVjdG9yUGFpcjsKKwordHlwZWRlZiB1bmlvbiB7CisgICAgdWludDY0X3Qg dWRbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gOCAvIDhdOworICAgIGludDY0X3QgICBkW01BWF9WRUNf U0laRV9CWVRFUyAvIDggLyA4XTsKKyAgICB1aW50MzJfdCB1d1tNQVhfVkVDX1NJWkVfQllURVMg LyA0IC8gOF07CisgICAgaW50MzJfdCAgIHdbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gNCAvIDhdOwor ICAgIHVpbnQxNl90IHVoW01BWF9WRUNfU0laRV9CWVRFUyAvIDIgLyA4XTsKKyAgICBpbnQxNl90 ICAgaFtNQVhfVkVDX1NJWkVfQllURVMgLyAyIC8gOF07CisgICAgdWludDhfdCAgdWJbTUFYX1ZF Q19TSVpFX0JZVEVTIC8gMSAvIDhdOworICAgIGludDhfdCAgICBiW01BWF9WRUNfU0laRV9CWVRF UyAvIDEgLyA4XTsKK30gTU1RUmVnOworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgTU1WZWN0b3Ig ZGF0YTsKKyAgICBNTVZlY3RvciBtYXNrOworICAgIGludCBzaXplOworICAgIHRhcmdldF91bG9u ZyB2YVtNQVhfVkVDX1NJWkVfQllURVNdOworICAgIGJvb2wgb3A7CisgICAgaW50IG9wX3NpemU7 Cit9IFZUQ01TdG9yZUxvZzsKKworCisvKiBUeXBlcyBvZiB2ZWN0b3IgcmVnaXN0ZXIgYXNzaWdu bWVudCAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBFWFRfREZMLCAgICAgIC8qIERlZmF1bHQgKi8K KyAgICBFWFRfTkVXLCAgICAgIC8qIE5ldyAtIHZhbHVlIHVzZWQgaW4gdGhlIHNhbWUgcGFja2V0 ICovCisgICAgRVhUX1RNUCAgICAgICAvKiBUZW1wIC0gdmFsdWUgdXNlZCBidXQgbm90IHN0b3Jl ZCB0byByZWdpc3RlciAqLworfSBWUmVnV3JpdGVUeXBlOworCisjZW5kaWYKZGlmZiAtLWdpdCBh L3RhcmdldC9oZXhhZ29uL2NwdS5jIGIvdGFyZ2V0L2hleGFnb24vY3B1LmMKaW5kZXggMzMzODM2 NS4uNGM3ZWFmZiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vY3B1LmMKKysrIGIvdGFyZ2V0 L2hleGFnb24vY3B1LmMKQEAgLTU5LDcgKzU5LDcgQEAgY29uc3QgY2hhciAqIGNvbnN0IGhleGFn b25fcmVnbmFtZXNbVE9UQUxfUEVSX1RIUkVBRF9SRUdTXSA9IHsKICAgInIyNCIsICJyMjUiLCAi cjI2IiwgInIyNyIsICJyMjgiLCAgInIyOSIsICJyMzAiLCAicjMxIiwKICAgInNhMCIsICJsYzAi LCAic2ExIiwgImxjMSIsICJwM18wIiwgImM1IiwgICJtMCIsICAibTEiLAogICAidXNyIiwgInBj IiwgICJ1Z3AiLCAiZ3AiLCAgImNzMCIsICAiY3MxIiwgImMxNCIsICJjMTUiLAotICAiYzE2Iiwg ImMxNyIsICJjMTgiLCAiYzE5IiwgInBrdF9jbnQiLCAgImluc25fY250IiwgImMyMiIsICJjMjMi LAorICAiYzE2IiwgImMxNyIsICJjMTgiLCAiYzE5IiwgInBrdF9jbnQiLCAgImluc25fY250Iiwg Imh2eF9jbnQiLCAiYzIzIiwKICAgImMyNCIsICJjMjUiLCAiYzI2IiwgImMyNyIsICJjMjgiLCAg ImMyOSIsICJjMzAiLCAiYzMxIiwKIH07CiAKQEAgLTExMyw2ICsxMTMsNTcgQEAgc3RhdGljIHZv aWQgcHJpbnRfcmVnKEZJTEUgKmYsIENQVUhleGFnb25TdGF0ZSAqZW52LCBpbnQgcmVnbnVtKQog ICAgICAgICAgICAgICAgICBoZXhhZ29uX3JlZ25hbWVzW3JlZ251bV0sIHZhbHVlKTsKIH0KIAor c3RhdGljIHZvaWQgcHJpbnRfdnJlZyhGSUxFICpmLCBDUFVIZXhhZ29uU3RhdGUgKmVudiwgaW50 IHJlZ251bSkKK3sKKyAgICBib29sIG5vbnplcm9fZm91bmQgPSBmYWxzZTsKKyAgICBpbnQgaTsK KyAgICBxZW11X2ZwcmludGYoZiwgIiAgdiVkID0gKCAiLCByZWdudW0pOworICAgIHFlbXVfZnBy aW50ZihmLCAiMHglMDJ4IiwgZW52LT5WUmVnc1tyZWdudW1dLnViW01BWF9WRUNfU0laRV9CWVRF UyAtIDFdKTsKKyAgICBmb3IgKGkgPSBNQVhfVkVDX1NJWkVfQllURVMgLSAyOyBpID49IDA7IGkt LSkgeworICAgICAgICBpZiAoZW52LT5WUmVnc1tyZWdudW1dLnViW2ldICE9IDApIHsKKyAgICAg ICAgICAgIG5vbnplcm9fZm91bmQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg IH0KKyAgICB9CisgICAgaWYgKG5vbnplcm9fZm91bmQpIHsKKyAgICAgICAgZm9yIChpID0gTUFY X1ZFQ19TSVpFX0JZVEVTIC0gMjsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgIHFlbXVfZnBy aW50ZihmLCAiLCAweCUwMngiLCBlbnYtPlZSZWdzW3JlZ251bV0udWJbaV0pOworICAgICAgICB9 CisgICAgfQorICAgIHFlbXVfZnByaW50ZihmLCAiIClcbiIpOworfQorCit2b2lkIGhleGFnb25f ZGVidWdfdnJlZyhDUFVIZXhhZ29uU3RhdGUgKmVudiwgaW50IHJlZ251bSkKK3sKKyAgICBwcmlu dF92cmVnKHN0ZG91dCwgZW52LCByZWdudW0pOworfQorCitzdGF0aWMgdm9pZCBwcmludF9xcmVn KEZJTEUgKmYsIENQVUhleGFnb25TdGF0ZSAqZW52LCBpbnQgcmVnbnVtKQoreworICAgIGJvb2wg bm9uemVyb19mb3VuZCA9IGZhbHNlOworICAgIGludCBpOworICAgIHFlbXVfZnByaW50ZihmLCAi ICBxJWQgPSAoICIsIHJlZ251bSk7CisgICAgcWVtdV9mcHJpbnRmKGYsICIweCUwMngiLAorICAg ICAgICAgICAgICAgICBlbnYtPlFSZWdzW3JlZ251bV0udWJbTUFYX1ZFQ19TSVpFX0JZVEVTIC8g OCAtIDFdKTsKKyAgICBmb3IgKGkgPSBNQVhfVkVDX1NJWkVfQllURVMgLyA4IC0gMjsgaSA+PSAw OyBpLS0pIHsKKyAgICAgICAgaWYgKGVudi0+UVJlZ3NbcmVnbnVtXS51YltpXSAhPSAwKSB7Cisg ICAgICAgICAgICBub256ZXJvX2ZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAg ICAgICB9CisgICAgfQorICAgIGlmIChub256ZXJvX2ZvdW5kKSB7CisgICAgICAgIGZvciAoaSA9 IE1BWF9WRUNfU0laRV9CWVRFUyAvIDggLSAyOyBpID49IDA7IGktLSkgeworICAgICAgICAgICAg cWVtdV9mcHJpbnRmKGYsICIsIDB4JTAyeCIsIGVudi0+UVJlZ3NbcmVnbnVtXS51YltpXSk7Cisg ICAgICAgIH0KKyAgICB9CisgICAgcWVtdV9mcHJpbnRmKGYsICIgKVxuIik7Cit9CisKK3ZvaWQg aGV4YWdvbl9kZWJ1Z19xcmVnKENQVUhleGFnb25TdGF0ZSAqZW52LCBpbnQgcmVnbnVtKQorewor ICAgIHByaW50X3FyZWcoc3Rkb3V0LCBlbnYsIHJlZ251bSk7Cit9CisKIHN0YXRpYyB2b2lkIGhl eGFnb25fZHVtcChDUFVIZXhhZ29uU3RhdGUgKmVudiwgRklMRSAqZikKIHsKICAgICBIZXhhZ29u Q1BVICpjcHUgPSBlbnZfYXJjaGNwdShlbnYpOwpAQCAtMTU5LDYgKzIxMCwyMiBAQCBzdGF0aWMg dm9pZCBoZXhhZ29uX2R1bXAoQ1BVSGV4YWdvblN0YXRlICplbnYsIEZJTEUgKmYpCiAgICAgcHJp bnRfcmVnKGYsIGVudiwgSEVYX1JFR19DUzEpOwogI2VuZGlmCiAgICAgcWVtdV9mcHJpbnRmKGYs ICJ9XG4iKTsKKworLyoKKyAqIFRoZSBIVlggcmVnaXN0ZXIgZHVtcCB0YWtlcyB1cCBhIHRvbiBv ZiBzcGFjZSBpbiB0aGUgbG9nCisgKiBEb24ndCBwcmludCBpdCB1bmxlc3MgaXQgaXMgbmVlZGVk CisgKi8KKyNkZWZpbmUgRFVNUF9IVlggMAorI2lmIERVTVBfSFZYCisgICAgcWVtdV9mcHJpbnRm KGYsICJWZWN0b3IgUmVnaXN0ZXJzID0ge1xuIik7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBO VU1fVlJFR1M7IGkrKykgeworICAgICAgICBwcmludF92cmVnKGYsIGVudiwgaSk7CisgICAgfQor ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVNX1FSRUdTOyBpKyspIHsKKyAgICAgICAgcHJpbnRf cXJlZyhmLCBlbnYsIGkpOworICAgIH0KKyAgICBxZW11X2ZwcmludGYoZiwgIn1cbiIpOworI2Vu ZGlmCiB9CiAKIHN0YXRpYyB2b2lkIGhleGFnb25fZHVtcF9zdGF0ZShDUFVTdGF0ZSAqY3MsIEZJ TEUgKmYsIGludCBmbGFncykKQEAgLTIxMSw2ICsyNzgsNyBAQCBzdGF0aWMgdm9pZCBoZXhhZ29u X2NwdV9yZXNldChEZXZpY2VTdGF0ZSAqZGV2KQogCiAgICAgc2V0X2RlZmF1bHRfbmFuX21vZGUo MSwgJmVudi0+ZnBfc3RhdHVzKTsKICAgICBzZXRfZmxvYXRfZGV0ZWN0X3RpbmluZXNzKGZsb2F0 X3RpbmluZXNzX2JlZm9yZV9yb3VuZGluZywgJmVudi0+ZnBfc3RhdHVzKTsKKyAgICBtZW1zZXQo JmVudi0+emVyb192ZWN0b3IsIDAsIHNpemVvZihNTVZlY3RvcikpOwogfQogCiBzdGF0aWMgdm9p ZCBoZXhhZ29uX2NwdV9kaXNhc19zZXRfaW5mbyhDUFVTdGF0ZSAqcywgZGlzYXNzZW1ibGVfaW5m byAqaW5mbykKQEAgLTI5Miw3ICszNjAsNyBAQCBzdGF0aWMgdm9pZCBoZXhhZ29uX2NwdV9jbGFz c19pbml0KE9iamVjdENsYXNzICpjLCB2b2lkICpkYXRhKQogICAgIGNjLT5zZXRfcGMgPSBoZXhh Z29uX2NwdV9zZXRfcGM7CiAgICAgY2MtPmdkYl9yZWFkX3JlZ2lzdGVyID0gaGV4YWdvbl9nZGJf cmVhZF9yZWdpc3RlcjsKICAgICBjYy0+Z2RiX3dyaXRlX3JlZ2lzdGVyID0gaGV4YWdvbl9nZGJf d3JpdGVfcmVnaXN0ZXI7Ci0gICAgY2MtPmdkYl9udW1fY29yZV9yZWdzID0gVE9UQUxfUEVSX1RI UkVBRF9SRUdTOworICAgIGNjLT5nZGJfbnVtX2NvcmVfcmVncyA9IFRPVEFMX1BFUl9USFJFQURf UkVHUyArIE5VTV9WUkVHUyArIE5VTV9RUkVHUzsKICAgICBjYy0+Z2RiX3N0b3BfYmVmb3JlX3dh dGNocG9pbnQgPSB0cnVlOwogICAgIGNjLT5kaXNhc19zZXRfaW5mbyA9IGhleGFnb25fY3B1X2Rp c2FzX3NldF9pbmZvOwogICAgIGNjLT50Y2dfb3BzID0gJmhleGFnb25fdGNnX29wczsKLS0gCjIu Ny40Cgo=