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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 76351C433EF for ; Sat, 30 Oct 2021 01:23:42 +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 1FAF96101E for ; Sat, 30 Oct 2021 01:23:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 1FAF96101E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=quicinc.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=nongnu.org Received: from localhost ([::1]:56892 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mgd5w-0005ew-SI for qemu-devel@archiver.kernel.org; Fri, 29 Oct 2021 21:23:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40604) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mgd3O-0002r6-F5 for qemu-devel@nongnu.org; Fri, 29 Oct 2021 21:21:02 -0400 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:19382) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1mgd3L-0001ck-Hh for qemu-devel@nongnu.org; Fri, 29 Oct 2021 21:21:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1635556859; x=1667092859; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=PQb7r7kL2EAWOOD0Mp7zUL0rN7qBq2omLubOd1opQyI=; b=XGVUb23tOw20Wv1MS6AK8quidCG14Zb0I0XzF4ORRFAoyFCppI1sM49J 0+S10PfJJz5OEtTc3PemVT3CFoGgJSGO4OJdOdAAt2dRZ6+3bqvoQzrUk j9msXJ+LtmGtk4n6j8oJNn6rbe4XpOzXwZFuvh81cicGWNkx+pZbPe9Wx 8=; Received: from unknown (HELO ironmsg-SD-alpha.qualcomm.com) ([10.53.140.30]) by alexa-out-sd-01.qualcomm.com with ESMTP; 29 Oct 2021 18:20:57 -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; 29 Oct 2021 18:20:57 -0700 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id E68FE156E; Fri, 29 Oct 2021 20:20:56 -0500 (CDT) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [PATCH v5 02/30] Hexagon HVX (target/hexagon) add Hexagon Vector eXtensions (HVX) to core Date: Fri, 29 Oct 2021 20:20:21 -0500 Message-Id: <1635556849-18120-3-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1635556849-18120-1-git-send-email-tsimpson@quicinc.com> References: <1635556849-18120-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.38; envelope-from=tsimpson@qualcomm.com; helo=alexa-out-sd-01.qualcomm.com X-Spam_score_int: -39 X-Spam_score: -4.0 X-Spam_bar: ---- X-Spam_report: (-4.0 / 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.25, 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, bcain@quicinc.com, tsimpson@quicinc.com, richard.henderson@linaro.org, f4bug@amsat.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" SFZYIGlzIGEgc2V0IG9mIHdpZGUgdmVjdG9yIGluc3RydWN0aW9ucy4gIE1hY2hpbmUgc3RhdGUg aW5jbHVkZXMKICAgIHZlY3RvciByZWdpc3RlcnMgKFZSZWdzKQogICAgdmVjdG9yIHByZWRpY2F0 ZSByZWdpc3RlcnMgKFFSZWdzKQogICAgdGVtcG9yYXJ5IHJlZ2lzdGVycyBmb3IgaW50ZXJtZWRp YXRlIHZhbHVlcwogICAgc3RvcmUgYnVmZmVyIChtYXNrZWQgc3RvcmVzIGFuZCBzY2F0dGVyL2dh dGhlcikKCkFja2VkLWJ5OiBSaWNoYXJkIEhlbmRlcnNvbiA8cmljaGFyZC5oZW5kZXJzb25AbGlu YXJvLm9yZz4KU2lnbmVkLW9mZi1ieTogVGF5bG9yIFNpbXBzb24gPHRzaW1wc29uQHF1aWNpbmMu Y29tPgotLS0KIHRhcmdldC9oZXhhZ29uL2NwdS5oICAgICAgICAgICAgfCAzNSArKysrKysrKysr KysrKysrKy0KIHRhcmdldC9oZXhhZ29uL2hleF9hcmNoX3R5cGVzLmggfCAgNSArKysKIHRhcmdl dC9oZXhhZ29uL2luc24uaCAgICAgICAgICAgfCAgMyArKwogdGFyZ2V0L2hleGFnb24vaW50ZXJu YWwuaCAgICAgICB8ICAzICsrCiB0YXJnZXQvaGV4YWdvbi9tbXZlYy9tbXZlYy5oICAgIHwgODIg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRhcmdldC9oZXhhZ29u L2NwdS5jICAgICAgICAgICAgfCA3OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0KIDYgZmlsZXMgY2hhbmdlZCwgMjAwIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgdGFyZ2V0L2hleGFnb24vbW12ZWMvbW12ZWMuaAoKZGlmZiAt LWdpdCBhL3RhcmdldC9oZXhhZ29uL2NwdS5oIGIvdGFyZ2V0L2hleGFnb24vY3B1LmgKaW5kZXgg ZjkwYzE4Ny4uZGUxMjFkOSAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vY3B1LmgKKysrIGIv dGFyZ2V0L2hleGFnb24vY3B1LmgKQEAgLTI2LDYgKzI2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ1BV SGV4YWdvblN0YXRlIENQVUhleGFnb25TdGF0ZTsKICNpbmNsdWRlICJxZW11LWNvbW1vbi5oIgog I2luY2x1ZGUgImV4ZWMvY3B1LWRlZnMuaCIKICNpbmNsdWRlICJoZXhfcmVncy5oIgorI2luY2x1 ZGUgIm1tdmVjL21tdmVjLmgiCiAKICNkZWZpbmUgTlVNX1BSRUdTIDQKICNkZWZpbmUgVE9UQUxf UEVSX1RIUkVBRF9SRUdTIDY0CkBAIC0zNCw2ICszNSw3IEBAIHR5cGVkZWYgc3RydWN0IENQVUhl eGFnb25TdGF0ZSBDUFVIZXhhZ29uU3RhdGU7CiAjZGVmaW5lIFNUT1JFU19NQVggMgogI2RlZmlu ZSBSRUdfV1JJVEVTX01BWCAzMgogI2RlZmluZSBQUkVEX1dSSVRFU19NQVggNSAgICAgICAgICAg ICAgICAgICAvKiA0IGluc25zICsgZW5kbG9vcCAqLworI2RlZmluZSBWU1RPUkVTX01BWCAyCiAK ICNkZWZpbmUgVFlQRV9IRVhBR09OX0NQVSAiaGV4YWdvbi1jcHUiCiAKQEAgLTUyLDYgKzU0LDEz IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICB1aW50NjRfdCBkYXRhNjQ7CiB9IE1lbUxvZzsKIAor dHlwZWRlZiBzdHJ1Y3QgeworICAgIHRhcmdldF91bG9uZyB2YTsKKyAgICBpbnQgc2l6ZTsKKyAg ICBERUNMQVJFX0JJVE1BUChtYXNrLCBNQVhfVkVDX1NJWkVfQllURVMpIFFFTVVfQUxJR05FRCgx Nik7CisgICAgTU1WZWN0b3IgZGF0YSBRRU1VX0FMSUdORUQoMTYpOworfSBWU3RvcmVMb2c7CisK ICNkZWZpbmUgRVhFQ19TVEFUVVNfT0sgICAgICAgICAgMHgwMDAwCiAjZGVmaW5lIEVYRUNfU1RB VFVTX1NUT1AgICAgICAgIDB4MDAwMgogI2RlZmluZSBFWEVDX1NUQVRVU19SRVBMQVkgICAgICAw eDAwMTAKQEAgLTY0LDYgKzczLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgewogI2RlZmluZSBDTEVBUl9F WENFUFRJT04gICAgICAgICAoZW52LT5zdGF0dXMgJj0gKH5FWEVDX1NUQVRVU19FWENFUFRJT04p KQogI2RlZmluZSBTRVRfRVhDRVBUSU9OICAgICAgICAgICAoZW52LT5zdGF0dXMgfD0gRVhFQ19T VEFUVVNfRVhDRVBUSU9OKQogCisvKiBNYXhpbXVtIG51bWJlciBvZiB2ZWN0b3IgdGVtcHMgaW4g YSBwYWNrZXQgKi8KKyNkZWZpbmUgVkVDVE9SX1RFTVBTX01BWCAgICAgICAgICAgIDQKKwogc3Ry dWN0IENQVUhleGFnb25TdGF0ZSB7CiAgICAgdGFyZ2V0X3Vsb25nIGdwcltUT1RBTF9QRVJfVEhS RUFEX1JFR1NdOwogICAgIHRhcmdldF91bG9uZyBwcmVkW05VTV9QUkVHU107CkBAIC05Nyw4ICsx MDksMjcgQEAgc3RydWN0IENQVUhleGFnb25TdGF0ZSB7CiAgICAgdGFyZ2V0X3Vsb25nIGxsc2Nf dmFsOwogICAgIHVpbnQ2NF90ICAgICBsbHNjX3ZhbF9pNjQ7CiAKLSAgICB0YXJnZXRfdWxvbmcg aXNfZ2F0aGVyX3N0b3JlX2luc247Ci0gICAgdGFyZ2V0X3Vsb25nIGdhdGhlcl9pc3N1ZWQ7Cisg ICAgTU1WZWN0b3IgVlJlZ3NbTlVNX1ZSRUdTXSBRRU1VX0FMSUdORUQoMTYpOworICAgIE1NVmVj dG9yIGZ1dHVyZV9WUmVnc1tWRUNUT1JfVEVNUFNfTUFYXSBRRU1VX0FMSUdORUQoMTYpOworICAg IE1NVmVjdG9yIHRtcF9WUmVnc1tWRUNUT1JfVEVNUFNfTUFYXSBRRU1VX0FMSUdORUQoMTYpOwor CisgICAgVlJlZ01hc2sgVlJlZ3NfdXBkYXRlZDsKKworICAgIE1NUVJlZyBRUmVnc1tOVU1fUVJF R1NdIFFFTVVfQUxJR05FRCgxNik7CisgICAgTU1RUmVnIGZ1dHVyZV9RUmVnc1tOVU1fUVJFR1Nd IFFFTVVfQUxJR05FRCgxNik7CisgICAgUVJlZ01hc2sgUVJlZ3NfdXBkYXRlZDsKKworICAgIC8q IFRlbXBvcmFyaWVzIHVzZWQgd2l0aGluIGluc3RydWN0aW9ucyAqLworICAgIE1NVmVjdG9yUGFp ciBWdXVWIFFFTVVfQUxJR05FRCgxNik7CisgICAgTU1WZWN0b3JQYWlyIFZ2dlYgUUVNVV9BTElH TkVEKDE2KTsKKyAgICBNTVZlY3RvclBhaXIgVnh4ViBRRU1VX0FMSUdORUQoMTYpOworICAgIE1N VmVjdG9yICAgICB2dG1wIFFFTVVfQUxJR05FRCgxNik7CisgICAgTU1RUmVnICAgICAgIHF0bXAg UUVNVV9BTElHTkVEKDE2KTsKKworICAgIFZTdG9yZUxvZyB2c3RvcmVbVlNUT1JFU19NQVhdOwor ICAgIHRhcmdldF91bG9uZyB2c3RvcmVfcGVuZGluZ1tWU1RPUkVTX01BWF07CisgICAgYm9vbCB2 dGNtX3BlbmRpbmc7CisgICAgVlRDTVN0b3JlTG9nIHZ0Y21fbG9nOwogfTsKIAogI2RlZmluZSBI RVhBR09OX0NQVV9DTEFTUyhrbGFzcykgXApkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vaGV4 X2FyY2hfdHlwZXMuaCBiL3RhcmdldC9oZXhhZ29uL2hleF9hcmNoX3R5cGVzLmgKaW5kZXggZDcy MWUxZi4uNzhhZDYwNyAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vaGV4X2FyY2hfdHlwZXMu aAorKysgYi90YXJnZXQvaGV4YWdvbi9oZXhfYXJjaF90eXBlcy5oCkBAIC0xOSw2ICsxOSw3IEBA CiAjZGVmaW5lIEhFWEFHT05fQVJDSF9UWVBFU19ICiAKICNpbmNsdWRlICJxZW11L29zZGVwLmgi CisjaW5jbHVkZSAibW12ZWMvbW12ZWMuaCIKICNpbmNsdWRlICJxZW11L2ludDEyOC5oIgogCiAv KgpAQCAtMzUsNCArMzYsOCBAQCB0eXBlZGVmIHVpbnQ2NF90ICAgIHNpemU4dV90OwogdHlwZWRl ZiBpbnQ2NF90ICAgICBzaXplOHNfdDsKIHR5cGVkZWYgSW50MTI4ICAgICAgc2l6ZTE2c190Owog Cit0eXBlZGVmIE1NVmVjdG9yICAgICAgICAgIG1tdmVjdG9yX3Q7Cit0eXBlZGVmIE1NVmVjdG9y UGFpciAgICAgIG1tdmVjdG9yX3BhaXJfdDsKK3R5cGVkZWYgTU1RUmVnICAgICAgICAgICAgbW1x cmV0X3Q7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vaW5zbi5oIGIvdGFy Z2V0L2hleGFnb24vaW5zbi5oCmluZGV4IDJlMzQ1OTEuLmFhMjYzODkgMTAwNjQ0Ci0tLSBhL3Rh cmdldC9oZXhhZ29uL2luc24uaAorKysgYi90YXJnZXQvaGV4YWdvbi9pbnNuLmgKQEAgLTY3LDYg KzY3LDkgQEAgc3RydWN0IFBhY2tldCB7CiAgICAgYm9vbCBwa3RfaGFzX3N0b3JlX3MwOwogICAg IGJvb2wgcGt0X2hhc19zdG9yZV9zMTsKIAorICAgIGJvb2wgcGt0X2hhc19odng7CisgICAgSW5z biAqdmhpc3RfaW5zbjsKKwogICAgIEluc24gaW5zbltJTlNUUlVDVElPTlNfTUFYXTsKIH07CiAK ZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2ludGVybmFsLmggYi90YXJnZXQvaGV4YWdvbi9p bnRlcm5hbC5oCmluZGV4IDZiMjBhZmYuLjgyYWMzMDQgMTAwNjQ0Ci0tLSBhL3RhcmdldC9oZXhh Z29uL2ludGVybmFsLmgKKysrIGIvdGFyZ2V0L2hleGFnb24vaW50ZXJuYWwuaApAQCAtMzEsNiAr MzEsOSBAQAogCiBpbnQgaGV4YWdvbl9nZGJfcmVhZF9yZWdpc3RlcihDUFVTdGF0ZSAqY3B1LCBH Qnl0ZUFycmF5ICpidWYsIGludCByZWcpOwogaW50IGhleGFnb25fZ2RiX3dyaXRlX3JlZ2lzdGVy KENQVVN0YXRlICpjcHUsIHVpbnQ4X3QgKmJ1ZiwgaW50IHJlZyk7CisKK3ZvaWQgaGV4YWdvbl9k ZWJ1Z192cmVnKENQVUhleGFnb25TdGF0ZSAqZW52LCBpbnQgcmVnbnVtKTsKK3ZvaWQgaGV4YWdv bl9kZWJ1Z19xcmVnKENQVUhleGFnb25TdGF0ZSAqZW52LCBpbnQgcmVnbnVtKTsKIHZvaWQgaGV4 YWdvbl9kZWJ1ZyhDUFVIZXhhZ29uU3RhdGUgKmVudik7CiAKIGV4dGVybiBjb25zdCBjaGFyICog Y29uc3QgaGV4YWdvbl9yZWduYW1lc1tUT1RBTF9QRVJfVEhSRUFEX1JFR1NdOwpkaWZmIC0tZ2l0 IGEvdGFyZ2V0L2hleGFnb24vbW12ZWMvbW12ZWMuaCBiL3RhcmdldC9oZXhhZ29uL21tdmVjL21t dmVjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTJkNDcwNwotLS0gL2Rl di9udWxsCisrKyBiL3RhcmdldC9oZXhhZ29uL21tdmVjL21tdmVjLmgKQEAgLTAsMCArMSw4MiBA QAorLyoKKyAqICBDb3B5cmlnaHQoYykgMjAxOS0yMDIxIFF1YWxjb21tIElubm92YXRpb24gQ2Vu dGVyLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisjaWZuZGVmIEhFWEFHT05fTU1WRUNfSAorI2RlZmlu ZSBIRVhBR09OX01NVkVDX0gKKworI2RlZmluZSBNQVhfVkVDX1NJWkVfTE9HQllURVMgNworI2Rl ZmluZSBNQVhfVkVDX1NJWkVfQllURVMgICgxIDw8IE1BWF9WRUNfU0laRV9MT0dCWVRFUykKKwor I2RlZmluZSBOVU1fVlJFR1MgICAgICAgICAgIDMyCisjZGVmaW5lIE5VTV9RUkVHUyAgICAgICAg ICAgNAorCit0eXBlZGVmIHVpbnQzMl90IFZSZWdNYXNrOyAvKiBhdCBsZWFzdCBOVU1fVlJFR1Mg Yml0cyAqLwordHlwZWRlZiB1aW50MzJfdCBRUmVnTWFzazsgLyogYXQgbGVhc3QgTlVNX1FSRUdT IGJpdHMgKi8KKworI2RlZmluZSBWRUNUT1JfU0laRV9CWVRFICAgIChmVkVDU0laRSgpKQorCit0 eXBlZGVmIHVuaW9uIHsKKyAgICB1aW50NjRfdCB1ZFtNQVhfVkVDX1NJWkVfQllURVMgLyA4XTsK KyAgICBpbnQ2NF90ICAgZFtNQVhfVkVDX1NJWkVfQllURVMgLyA4XTsKKyAgICB1aW50MzJfdCB1 d1tNQVhfVkVDX1NJWkVfQllURVMgLyA0XTsKKyAgICBpbnQzMl90ICAgd1tNQVhfVkVDX1NJWkVf QllURVMgLyA0XTsKKyAgICB1aW50MTZfdCB1aFtNQVhfVkVDX1NJWkVfQllURVMgLyAyXTsKKyAg ICBpbnQxNl90ICAgaFtNQVhfVkVDX1NJWkVfQllURVMgLyAyXTsKKyAgICB1aW50OF90ICB1YltN QVhfVkVDX1NJWkVfQllURVMgLyAxXTsKKyAgICBpbnQ4X3QgICAgYltNQVhfVkVDX1NJWkVfQllU RVMgLyAxXTsKK30gTU1WZWN0b3I7CisKK3R5cGVkZWYgdW5pb24geworICAgIHVpbnQ2NF90IHVk WzIgKiBNQVhfVkVDX1NJWkVfQllURVMgLyA4XTsKKyAgICBpbnQ2NF90ICAgZFsyICogTUFYX1ZF Q19TSVpFX0JZVEVTIC8gOF07CisgICAgdWludDMyX3QgdXdbMiAqIE1BWF9WRUNfU0laRV9CWVRF UyAvIDRdOworICAgIGludDMyX3QgICB3WzIgKiBNQVhfVkVDX1NJWkVfQllURVMgLyA0XTsKKyAg ICB1aW50MTZfdCB1aFsyICogTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMl07CisgICAgaW50MTZfdCAg IGhbMiAqIE1BWF9WRUNfU0laRV9CWVRFUyAvIDJdOworICAgIHVpbnQ4X3QgIHViWzIgKiBNQVhf VkVDX1NJWkVfQllURVMgLyAxXTsKKyAgICBpbnQ4X3QgICAgYlsyICogTUFYX1ZFQ19TSVpFX0JZ VEVTIC8gMV07CisgICAgTU1WZWN0b3IgdlsyXTsKK30gTU1WZWN0b3JQYWlyOworCit0eXBlZGVm IHVuaW9uIHsKKyAgICB1aW50NjRfdCB1ZFtNQVhfVkVDX1NJWkVfQllURVMgLyA4IC8gOF07Cisg ICAgaW50NjRfdCAgIGRbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gOCAvIDhdOworICAgIHVpbnQzMl90 IHV3W01BWF9WRUNfU0laRV9CWVRFUyAvIDQgLyA4XTsKKyAgICBpbnQzMl90ICAgd1tNQVhfVkVD X1NJWkVfQllURVMgLyA0IC8gOF07CisgICAgdWludDE2X3QgdWhbTUFYX1ZFQ19TSVpFX0JZVEVT IC8gMiAvIDhdOworICAgIGludDE2X3QgICBoW01BWF9WRUNfU0laRV9CWVRFUyAvIDIgLyA4XTsK KyAgICB1aW50OF90ICB1YltNQVhfVkVDX1NJWkVfQllURVMgLyAxIC8gOF07CisgICAgaW50OF90 ICAgIGJbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMSAvIDhdOworfSBNTVFSZWc7CisKK3R5cGVkZWYg c3RydWN0IHsKKyAgICBNTVZlY3RvciBkYXRhOworICAgIERFQ0xBUkVfQklUTUFQKG1hc2ssIE1B WF9WRUNfU0laRV9CWVRFUyk7CisgICAgdGFyZ2V0X3Vsb25nIHZhW01BWF9WRUNfU0laRV9CWVRF U107CisgICAgYm9vbCBvcDsKKyAgICBpbnQgb3Bfc2l6ZTsKK30gVlRDTVN0b3JlTG9nOworCisK Ky8qIFR5cGVzIG9mIHZlY3RvciByZWdpc3RlciBhc3NpZ25tZW50ICovCit0eXBlZGVmIGVudW0g eworICAgIEVYVF9ERkwsICAgICAgLyogRGVmYXVsdCAqLworICAgIEVYVF9ORVcsICAgICAgLyog TmV3IC0gdmFsdWUgdXNlZCBpbiB0aGUgc2FtZSBwYWNrZXQgKi8KKyAgICBFWFRfVE1QICAgICAg IC8qIFRlbXAgLSB2YWx1ZSB1c2VkIGJ1dCBub3Qgc3RvcmVkIHRvIHJlZ2lzdGVyICovCit9IFZS ZWdXcml0ZVR5cGU7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vY3B1LmMg Yi90YXJnZXQvaGV4YWdvbi9jcHUuYwppbmRleCAzMzM4MzY1Li45ODliZDc2IDEwMDY0NAotLS0g YS90YXJnZXQvaGV4YWdvbi9jcHUuYworKysgYi90YXJnZXQvaGV4YWdvbi9jcHUuYwpAQCAtMTEz LDcgKzExMyw2NiBAQCBzdGF0aWMgdm9pZCBwcmludF9yZWcoRklMRSAqZiwgQ1BVSGV4YWdvblN0 YXRlICplbnYsIGludCByZWdudW0pCiAgICAgICAgICAgICAgICAgIGhleGFnb25fcmVnbmFtZXNb cmVnbnVtXSwgdmFsdWUpOwogfQogCi1zdGF0aWMgdm9pZCBoZXhhZ29uX2R1bXAoQ1BVSGV4YWdv blN0YXRlICplbnYsIEZJTEUgKmYpCitzdGF0aWMgdm9pZCBwcmludF92cmVnKEZJTEUgKmYsIENQ VUhleGFnb25TdGF0ZSAqZW52LCBpbnQgcmVnbnVtLAorICAgICAgICAgICAgICAgICAgICAgICBi b29sIHNraXBfaWZfemVybykKK3sKKyAgICBpZiAoc2tpcF9pZl96ZXJvKSB7CisgICAgICAgIGJv b2wgbm9uemVyb19mb3VuZCA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1B WF9WRUNfU0laRV9CWVRFUzsgaSsrKSB7CisgICAgICAgICAgICBpZiAoZW52LT5WUmVnc1tyZWdu dW1dLnViW2ldICE9IDApIHsKKyAgICAgICAgICAgICAgICBub256ZXJvX2ZvdW5kID0gdHJ1ZTsK KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg ICBpZiAoIW5vbnplcm9fZm91bmQpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor ICAgIH0KKworICAgIHFlbXVfZnByaW50ZihmLCAiICB2JWQgPSAoICIsIHJlZ251bSk7CisgICAg cWVtdV9mcHJpbnRmKGYsICIweCUwMngiLCBlbnYtPlZSZWdzW3JlZ251bV0udWJbTUFYX1ZFQ19T SVpFX0JZVEVTIC0gMV0pOworICAgIGZvciAoaW50IGkgPSBNQVhfVkVDX1NJWkVfQllURVMgLSAy OyBpID49IDA7IGktLSkgeworICAgICAgICBxZW11X2ZwcmludGYoZiwgIiwgMHglMDJ4IiwgZW52 LT5WUmVnc1tyZWdudW1dLnViW2ldKTsKKyAgICB9CisgICAgcWVtdV9mcHJpbnRmKGYsICIgKVxu Iik7Cit9CisKK3ZvaWQgaGV4YWdvbl9kZWJ1Z192cmVnKENQVUhleGFnb25TdGF0ZSAqZW52LCBp bnQgcmVnbnVtKQoreworICAgIHByaW50X3ZyZWcoc3Rkb3V0LCBlbnYsIHJlZ251bSwgZmFsc2Up OworfQorCitzdGF0aWMgdm9pZCBwcmludF9xcmVnKEZJTEUgKmYsIENQVUhleGFnb25TdGF0ZSAq ZW52LCBpbnQgcmVnbnVtLAorICAgICAgICAgICAgICAgICAgICAgICBib29sIHNraXBfaWZfemVy bykKK3sKKyAgICBpZiAoc2tpcF9pZl96ZXJvKSB7CisgICAgICAgIGJvb2wgbm9uemVyb19mb3Vu ZCA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1BWF9WRUNfU0laRV9CWVRF UyAvIDg7IGkrKykgeworICAgICAgICAgICAgaWYgKGVudi0+UVJlZ3NbcmVnbnVtXS51YltpXSAh PSAwKSB7CisgICAgICAgICAgICAgICAgbm9uemVyb19mb3VuZCA9IHRydWU7CisgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFub256 ZXJvX2ZvdW5kKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAg ICBxZW11X2ZwcmludGYoZiwgIiAgcSVkID0gKCAiLCByZWdudW0pOworICAgIHFlbXVfZnByaW50 ZihmLCAiMHglMDJ4IiwKKyAgICAgICAgICAgICAgICAgZW52LT5RUmVnc1tyZWdudW1dLnViW01B WF9WRUNfU0laRV9CWVRFUyAvIDggLSAxXSk7CisgICAgZm9yIChpbnQgaSA9IE1BWF9WRUNfU0la RV9CWVRFUyAvIDggLSAyOyBpID49IDA7IGktLSkgeworICAgICAgICBxZW11X2ZwcmludGYoZiwg IiwgMHglMDJ4IiwgZW52LT5RUmVnc1tyZWdudW1dLnViW2ldKTsKKyAgICB9CisgICAgcWVtdV9m cHJpbnRmKGYsICIgKVxuIik7Cit9CisKK3ZvaWQgaGV4YWdvbl9kZWJ1Z19xcmVnKENQVUhleGFn b25TdGF0ZSAqZW52LCBpbnQgcmVnbnVtKQoreworICAgIHByaW50X3FyZWcoc3Rkb3V0LCBlbnYs IHJlZ251bSwgZmFsc2UpOworfQorCitzdGF0aWMgdm9pZCBoZXhhZ29uX2R1bXAoQ1BVSGV4YWdv blN0YXRlICplbnYsIEZJTEUgKmYsIGludCBmbGFncykKIHsKICAgICBIZXhhZ29uQ1BVICpjcHUg PSBlbnZfYXJjaGNwdShlbnYpOwogCkBAIC0xNTksNiArMjE4LDE3IEBAIHN0YXRpYyB2b2lkIGhl eGFnb25fZHVtcChDUFVIZXhhZ29uU3RhdGUgKmVudiwgRklMRSAqZikKICAgICBwcmludF9yZWco ZiwgZW52LCBIRVhfUkVHX0NTMSk7CiAjZW5kaWYKICAgICBxZW11X2ZwcmludGYoZiwgIn1cbiIp OworCisgICAgaWYgKGZsYWdzICYgQ1BVX0RVTVBfRlBVKSB7CisgICAgICAgIHFlbXVfZnByaW50 ZihmLCAiVmVjdG9yIFJlZ2lzdGVycyA9IHtcbiIpOworICAgICAgICBmb3IgKGludCBpID0gMDsg aSA8IE5VTV9WUkVHUzsgaSsrKSB7CisgICAgICAgICAgICBwcmludF92cmVnKGYsIGVudiwgaSwg dHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOVU1fUVJFR1M7 IGkrKykgeworICAgICAgICAgICAgcHJpbnRfcXJlZyhmLCBlbnYsIGksIHRydWUpOworICAgICAg ICB9CisgICAgICAgIHFlbXVfZnByaW50ZihmLCAifVxuIik7CisgICAgfQogfQogCiBzdGF0aWMg dm9pZCBoZXhhZ29uX2R1bXBfc3RhdGUoQ1BVU3RhdGUgKmNzLCBGSUxFICpmLCBpbnQgZmxhZ3Mp CkBAIC0xNjYsMTIgKzIzNiwxMiBAQCBzdGF0aWMgdm9pZCBoZXhhZ29uX2R1bXBfc3RhdGUoQ1BV U3RhdGUgKmNzLCBGSUxFICpmLCBpbnQgZmxhZ3MpCiAgICAgSGV4YWdvbkNQVSAqY3B1ID0gSEVY QUdPTl9DUFUoY3MpOwogICAgIENQVUhleGFnb25TdGF0ZSAqZW52ID0gJmNwdS0+ZW52OwogCi0g ICAgaGV4YWdvbl9kdW1wKGVudiwgZik7CisgICAgaGV4YWdvbl9kdW1wKGVudiwgZiwgZmxhZ3Mp OwogfQogCiB2b2lkIGhleGFnb25fZGVidWcoQ1BVSGV4YWdvblN0YXRlICplbnYpCiB7Ci0gICAg aGV4YWdvbl9kdW1wKGVudiwgc3Rkb3V0KTsKKyAgICBoZXhhZ29uX2R1bXAoZW52LCBzdGRvdXQs IENQVV9EVU1QX0ZQVSk7CiB9CiAKIHN0YXRpYyB2b2lkIGhleGFnb25fY3B1X3NldF9wYyhDUFVT dGF0ZSAqY3MsIHZhZGRyIHZhbHVlKQpAQCAtMjkyLDcgKzM2Miw3IEBAIHN0YXRpYyB2b2lkIGhl eGFnb25fY3B1X2NsYXNzX2luaXQoT2JqZWN0Q2xhc3MgKmMsIHZvaWQgKmRhdGEpCiAgICAgY2Mt PnNldF9wYyA9IGhleGFnb25fY3B1X3NldF9wYzsKICAgICBjYy0+Z2RiX3JlYWRfcmVnaXN0ZXIg PSBoZXhhZ29uX2dkYl9yZWFkX3JlZ2lzdGVyOwogICAgIGNjLT5nZGJfd3JpdGVfcmVnaXN0ZXIg PSBoZXhhZ29uX2dkYl93cml0ZV9yZWdpc3RlcjsKLSAgICBjYy0+Z2RiX251bV9jb3JlX3JlZ3Mg PSBUT1RBTF9QRVJfVEhSRUFEX1JFR1M7CisgICAgY2MtPmdkYl9udW1fY29yZV9yZWdzID0gVE9U QUxfUEVSX1RIUkVBRF9SRUdTICsgTlVNX1ZSRUdTICsgTlVNX1FSRUdTOwogICAgIGNjLT5nZGJf c3RvcF9iZWZvcmVfd2F0Y2hwb2ludCA9IHRydWU7CiAgICAgY2MtPmRpc2FzX3NldF9pbmZvID0g aGV4YWdvbl9jcHVfZGlzYXNfc2V0X2luZm87CiAgICAgY2MtPnRjZ19vcHMgPSAmaGV4YWdvbl90 Y2dfb3BzOwotLSAKMi43LjQKCg==