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=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,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 ED757C3F2D2 for ; Fri, 28 Feb 2020 17:26: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 AAC0F24699 for ; Fri, 28 Feb 2020 17:26:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="T43vuveV" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AAC0F24699 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]:51274 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7jOj-0002vj-Qw for qemu-devel@archiver.kernel.org; Fri, 28 Feb 2020 12:26:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:58575) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j7imP-0005pn-7h for qemu-devel@nongnu.org; Fri, 28 Feb 2020 11:46:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j7imM-0007RP-KZ for qemu-devel@nongnu.org; Fri, 28 Feb 2020 11:46:24 -0500 Received: from alexa-out-sd-02.qualcomm.com ([199.106.114.39]:27026) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1j7imK-0005U4-Vn for qemu-devel@nongnu.org; Fri, 28 Feb 2020 11:46:21 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1582908381; x=1614444381; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=0Lk5Fy/33WLGZ59ho7toXn1vR/XTO3mvmC68TZkGQ0o=; b=T43vuveVqTqb0AvzeiyuIlgAzS6+/QSwklpucNfPS+04Wv91CDHfwkqi A7Rltsmzd7EgVaa6y7z+iWZjbKfKdubiAAgzzldGIUTh3WpUS5sJM+u9k Ggue+gZePo3dmfP5bN40YfnplLVb/Kxz98xxAAyZUX4mfgAiqOpXNTLo6 E=; Received: from unknown (HELO ironmsg01-sd.qualcomm.com) ([10.53.140.141]) by alexa-out-sd-02.qualcomm.com with ESMTP; 28 Feb 2020 08:44:34 -0800 Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg01-sd.qualcomm.com with ESMTP; 28 Feb 2020 08:44:34 -0800 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id 16EE211AF; Fri, 28 Feb 2020 10:44:34 -0600 (CST) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [RFC PATCH v2 65/67] Hexagon HVX TCG generation Date: Fri, 28 Feb 2020 10:44:01 -0600 Message-Id: <1582908244-304-66-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1582908244-304-1-git-send-email-tsimpson@quicinc.com> References: <1582908244-304-1-git-send-email-tsimpson@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x [fuzzy] X-Received-From: 199.106.114.39 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: riku.voipio@iki.fi, richard.henderson@linaro.org, laurent@vivier.eu, Taylor Simpson , philmd@redhat.com, aleksandar.m.mail@gmail.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" U2lnbmVkLW9mZi1ieTogVGF5bG9yIFNpbXBzb24gPHRzaW1wc29uQHF1aWNpbmMuY29tPgotLS0K IHRhcmdldC9oZXhhZ29uL2dlbnB0cl9oZWxwZXJzLmggfCAyMDIgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogdGFyZ2V0L2hleGFnb24vZ2VucHRyLmMgICAgICAgICB8 ICAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDIwMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv dGFyZ2V0L2hleGFnb24vZ2VucHRyX2hlbHBlcnMuaCBiL3RhcmdldC9oZXhhZ29uL2dlbnB0cl9o ZWxwZXJzLmgKaW5kZXggZTM0MmYyOS4uODQ0NzlmOCAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFn b24vZ2VucHRyX2hlbHBlcnMuaAorKysgYi90YXJnZXQvaGV4YWdvbi9nZW5wdHJfaGVscGVycy5o CkBAIC04NDQsNCArODQ0LDIwNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZ2VuX2xzaGlmdHJfNF80 dShUQ0d2IGRzdCwgVENHdiBzcmMsIGludDMyX3Qgc2hpZnRfYW10KQogICAgIH0KIH0KIAorc3Rh dGljIGlubGluZSB1aW50MzJfdCBuZXdfdGVtcF92cmVnX29mZnNldChEaXNhc0NvbnRleHQgKmN0 eCwgaW50IG51bSkKK3sKKyAgICB1aW50MzJfdCBvZmZzZXQgPQorICAgICAgICBvZmZzZXRvZihD UFVIZXhhZ29uU3RhdGUsIHRlbXBfdnJlZ3NbY3R4LT5jdHhfdGVtcF92cmVnc19pZHhdKTsKKwor ICAgIEhFWF9ERUJVR19MT0coIm5ld190ZW1wX3ZyZWdfb2Zmc2V0OiAlZFxuIiwgY3R4LT5jdHhf dGVtcF92cmVnc19pZHgpOworICAgIGdfYXNzZXJ0KGN0eC0+Y3R4X3RlbXBfdnJlZ3NfaWR4ICsg bnVtIC0gMSA8IFRFTVBfVkVDVE9SU19NQVgpOworICAgIGN0eC0+Y3R4X3RlbXBfdnJlZ3NfaWR4 ICs9IG51bTsKKyAgICByZXR1cm4gb2Zmc2V0OworfQorCitzdGF0aWMgaW5saW5lIHVpbnQzMl90 IG5ld190ZW1wX3FyZWdfb2Zmc2V0KERpc2FzQ29udGV4dCAqY3R4KQoreworICAgIHVpbnQzMl90 IG9mZnNldCA9CisgICAgICAgIG9mZnNldG9mKENQVUhleGFnb25TdGF0ZSwgdGVtcF9xcmVnc1tj dHgtPmN0eF90ZW1wX3FyZWdzX2lkeF0pOworCisgICAgSEVYX0RFQlVHX0xPRygibmV3X3RlbXBf cXJlZ19vZmZzZXQ6ICVkXG4iLCBjdHgtPmN0eF90ZW1wX3FyZWdzX2lkeCk7CisgICAgZ19hc3Nl cnQoY3R4LT5jdHhfdGVtcF9xcmVnc19pZHggPCBURU1QX1ZFQ1RPUlNfTUFYKTsKKyAgICBjdHgt PmN0eF90ZW1wX3FyZWdzX2lkeCsrOworICAgIHJldHVybiBvZmZzZXQ7Cit9CisKK3N0YXRpYyBp bmxpbmUgdm9pZCBnZW5fcmVhZF9xcmVnKFRDR3ZfcHRyIHZhciwgaW50IG51bSwgaW50IHZ0bXAp Cit7CisgICAgdWludDMyX3Qgb2Zmc2V0ID0gb2Zmc2V0b2YoQ1BVSGV4YWdvblN0YXRlLCBRUmVn c1sobnVtKV0pOworICAgIFRDR3ZfcHRyIHNyYyA9IHRjZ190ZW1wX25ld19wdHIoKTsKKyAgICB0 Y2dfZ2VuX2FkZGlfcHRyKHNyYywgY3B1X2Vudiwgb2Zmc2V0KTsKKyAgICBnZW5fbWVtY3B5KHZh ciwgc3JjLCBzaXplb2YobW1xcmVnX3QpKTsKKyAgICB0Y2dfdGVtcF9mcmVlX3B0cihzcmMpOwor fQorCitzdGF0aWMgaW5saW5lIHZvaWQgZ2VuX3JlYWRfdnJlZ19wdHJfc3JjKFRDR3ZfcHRyIHB0 cl9zcmMsIGludCBudW0sIGludCB2dG1wKQoreworICAgIFRDR3YgemVybyA9IHRjZ19jb25zdF90 bCgwKTsKKyAgICBUQ0d2IG9mZnNldF9mdXR1cmUgPQorICAgICAgICB0Y2dfY29uc3RfdGwob2Zm c2V0b2YoQ1BVSGV4YWdvblN0YXRlLCBmdXR1cmVfVlJlZ3NbbnVtXSkpOworICAgIFRDR3Ygb2Zm c2V0X3ZyZWdzID0KKyAgICAgICAgdGNnX2NvbnN0X3RsKG9mZnNldG9mKENQVUhleGFnb25TdGF0 ZSwgVlJlZ3NbbnVtXSkpOworICAgIFRDR3Ygb2Zmc2V0X3RtcF92cmVncyA9CisgICAgICAgIHRj Z19jb25zdF90bChvZmZzZXRvZihDUFVIZXhhZ29uU3RhdGUsIHRtcF9WUmVnc1tudW1dKSk7Cisg ICAgVENHdiBvZmZzZXQgPSB0Y2dfdGVtcF9uZXcoKTsKKyAgICBUQ0d2X3B0ciBvZmZzZXRfcHRy ID0gdGNnX3RlbXBfbmV3X3B0cigpOworICAgIFRDR3YgbmV3X3dyaXR0ZW4gPSB0Y2dfdGVtcF9u ZXcoKTsKKyAgICBUQ0d2IHRtcF93cml0dGVuID0gdGNnX3RlbXBfbmV3KCk7CisKKyAgICAvKgor ICAgICAqICBuZXdfd3JpdHRlbiA9IChoZXhfVlJlZ3Nfc2VsZWN0ID4+IG51bSkgJiAxOworICAg ICAqICBvZmZzZXQgPSBuZXdfd3JpdHRlbiA/IG9mZnNldF9mdXR1cmUsIG9mZnNldF92cmVnczsK KyAgICAgKi8KKyAgICB0Y2dfZ2VuX3NocmlfdGwobmV3X3dyaXR0ZW4sIGhleF9WUmVnc19zZWxl Y3QsIG51bSk7CisgICAgdGNnX2dlbl9hbmRpX3RsKG5ld193cml0dGVuLCBuZXdfd3JpdHRlbiwg MSk7CisgICAgdGNnX2dlbl9tb3Zjb25kX3RsKFRDR19DT05EX05FLCBvZmZzZXQsIG5ld193cml0 dGVuLCB6ZXJvLAorICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRfZnV0dXJlLCBvZmZzZXRf dnJlZ3MpOworCisgICAgLyoKKyAgICAgKiB0bXBfd3JpdHRlbiA9IChoZXhfVlJlZ3NfdXBkYXRl ZF90bXAgPj4gbnVtKSAmIDE7CisgICAgICogaWYgKHRtcF93cml0dGVuKSBvZmZzZXQgPSBvZmZz ZXRfdG1wX3ZyZWdzOworICAgICAqLworICAgIHRjZ19nZW5fc2hyaV90bCh0bXBfd3JpdHRlbiwg aGV4X1ZSZWdzX3VwZGF0ZWRfdG1wLCBudW0pOworICAgIHRjZ19nZW5fYW5kaV90bCh0bXBfd3Jp dHRlbiwgdG1wX3dyaXR0ZW4sIDEpOworICAgIHRjZ19nZW5fbW92Y29uZF90bChUQ0dfQ09ORF9O RSwgb2Zmc2V0LCB0bXBfd3JpdHRlbiwgemVybywKKyAgICAgICAgICAgICAgICAgICAgICAgb2Zm c2V0X3RtcF92cmVncywgb2Zmc2V0KTsKKworICAgIGlmICh2dG1wID09IEVYVF9UTVApIHsKKyAg ICAgICAgVENHdiB2cmVnc191cGRhdGVkID0gdGNnX3RlbXBfbmV3KCk7CisgICAgICAgIFRDR3Yg dGVtcCA9IHRjZ190ZW1wX25ldygpOworCisgICAgICAgIC8qCisgICAgICAgICAqIHZyZWdzX3Vw ZGF0ZWQgPSBoZXhfVlJlZ3NfdXBkYXRlcyAmICgxIDw8IG51bSk7CisgICAgICAgICAqIGlmICh2 cmVnc191cGRhdGVkKSB7CisgICAgICAgICAqICAgICBvZmZzZXQgPSBvZmZzZXRfZnV0dXJlOwor ICAgICAgICAgKiAgICAgaGV4X1ZSZWdzX3VwZGF0ZWQgXj0gKDEgPDwgbnVtKTsKKyAgICAgICAg ICogfQorICAgICAgICAgKi8KKyAgICAgICAgdGNnX2dlbl9hbmRpX3RsKHZyZWdzX3VwZGF0ZWQs IGhleF9WUmVnc191cGRhdGVkLCAxIDw8IG51bSk7CisgICAgICAgIHRjZ19nZW5fbW92Y29uZF90 bChUQ0dfQ09ORF9ORSwgb2Zmc2V0LCB2cmVnc191cGRhdGVkLCB6ZXJvLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2Zmc2V0X2Z1dHVyZSwgb2Zmc2V0KTsKKyAgICAgICAgdGNnX2dlbl94 b3JpX3RsKHRlbXAsIGhleF9WUmVnc191cGRhdGVkLCAxIDw8IG51bSk7CisgICAgICAgIHRjZ19n ZW5fbW92Y29uZF90bChUQ0dfQ09ORF9ORSwgaGV4X1ZSZWdzX3VwZGF0ZWQsIHZyZWdzX3VwZGF0 ZWQsIHplcm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLCBoZXhfVlJlZ3NfdXBk YXRlZCk7CisKKyAgICAgICAgdGNnX3RlbXBfZnJlZSh2cmVnc191cGRhdGVkKTsKKyAgICAgICAg dGNnX3RlbXBfZnJlZSh0ZW1wKTsKKyAgICB9CisKKyAgICB0Y2dfZ2VuX2V4dF9pMzJfcHRyKG9m ZnNldF9wdHIsIG9mZnNldCk7CisgICAgdGNnX2dlbl9hZGRfcHRyKHB0cl9zcmMsIGNwdV9lbnYs IG9mZnNldF9wdHIpOworCisgICAgdGNnX3RlbXBfZnJlZSh6ZXJvKTsKKyAgICB0Y2dfdGVtcF9m cmVlKG9mZnNldF9mdXR1cmUpOworICAgIHRjZ190ZW1wX2ZyZWUob2Zmc2V0X3ZyZWdzKTsKKyAg ICB0Y2dfdGVtcF9mcmVlKG9mZnNldF90bXBfdnJlZ3MpOworICAgIHRjZ190ZW1wX2ZyZWUob2Zm c2V0KTsKKyAgICB0Y2dfdGVtcF9mcmVlX3B0cihvZmZzZXRfcHRyKTsKKyAgICB0Y2dfdGVtcF9m cmVlKG5ld193cml0dGVuKTsKKyAgICB0Y2dfdGVtcF9mcmVlKHRtcF93cml0dGVuKTsKK30KKwor c3RhdGljIGlubGluZSB2b2lkIGdlbl9yZWFkX3ZyZWdfcmVhZG9ubHkoVENHdl9wdHIgdmFyLCBp bnQgbnVtLCBpbnQgdnRtcCkKK3sKKyAgICBUQ0d2X3B0ciBwdHJfc3JjID0gdGNnX3RlbXBfbmV3 X3B0cigpOworICAgIGdlbl9yZWFkX3ZyZWdfcHRyX3NyYyhwdHJfc3JjLCBudW0sIHZ0bXApOwor ICAgIHRjZ19nZW5fYWRkaV9wdHIodmFyLCBwdHJfc3JjLCAwKTsKKyAgICB0Y2dfdGVtcF9mcmVl X3B0cihwdHJfc3JjKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGdlbl9yZWFkX3ZyZWcoVENH dl9wdHIgdmFyLCBpbnQgbnVtLCBpbnQgdnRtcCkKK3sKKyAgICBUQ0d2X3B0ciBwdHJfc3JjID0g dGNnX3RlbXBfbmV3X3B0cigpOworICAgIGdlbl9yZWFkX3ZyZWdfcHRyX3NyYyhwdHJfc3JjLCBu dW0sIHZ0bXApOworICAgIGdlbl9tZW1jcHkodmFyLCBwdHJfc3JjLCBzaXplb2YobW12ZWN0b3Jf dCkpOworICAgIHRjZ190ZW1wX2ZyZWVfcHRyKHB0cl9zcmMpOworfQorCitzdGF0aWMgaW5saW5l IHZvaWQgZ2VuX3JlYWRfdnJlZ19wYWlyKFRDR3ZfcHRyIHZhciwgaW50IG51bSwgaW50IHZ0bXAp Cit7CisgICAgVENHdl9wdHIgdjAgPSB0Y2dfdGVtcF9uZXdfcHRyKCk7CisgICAgVENHdl9wdHIg djEgPSB0Y2dfdGVtcF9uZXdfcHRyKCk7CisgICAgdGNnX2dlbl9hZGRpX3B0cih2MCwgdmFyLCBv ZmZzZXRvZihtbXZlY3Rvcl9wYWlyX3QsIHZbMF0pKTsKKyAgICBnZW5fcmVhZF92cmVnKHYwLCBu dW0gXiAwLCB2dG1wKTsKKyAgICB0Y2dfZ2VuX2FkZGlfcHRyKHYxLCB2YXIsIG9mZnNldG9mKG1t dmVjdG9yX3BhaXJfdCwgdlsxXSkpOworICAgIGdlbl9yZWFkX3ZyZWcodjEsIG51bSBeIDEsIHZ0 bXApOworICAgIHRjZ190ZW1wX2ZyZWVfcHRyKHYwKTsKKyAgICB0Y2dfdGVtcF9mcmVlX3B0cih2 MSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBnZW5fbG9nX3ZyZWdfd3JpdGUoVENHdl9wdHIg dmFyLCBpbnQgbnVtLCBpbnQgdm5ldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IHNsb3RfbnVtKQoreworICAgIFRDR3YgY2FuY2VsbGVkID0gdGNnX3RlbXBfbG9j YWxfbmV3KCk7CisgICAgVENHTGFiZWwgKmxhYmVsX2VuZCA9IGdlbl9uZXdfbGFiZWwoKTsKKwor ICAgIC8qIERvbid0IGRvIGFueXRoaW5nIGlmIHRoZSBzbG90IHdhcyBjYW5jZWxsZWQgKi8KKyAg ICBnZW5fc2xvdF9jYW5jZWxsZWRfY2hlY2soY2FuY2VsbGVkLCBzbG90X251bSk7CisgICAgdGNn X2dlbl9icmNvbmRpX3RsKFRDR19DT05EX05FLCBjYW5jZWxsZWQsIDAsIGxhYmVsX2VuZCk7Cisg ICAgeworICAgICAgICBUQ0d2IG1hc2sgPSB0Y2dfY29uc3RfdGwoMSA8PCBudW0pOworICAgICAg ICBUQ0d2X3B0ciBkc3QgPSB0Y2dfdGVtcF9uZXdfcHRyKCk7CisgICAgICAgIGlmICh2bmV3ICE9 IEVYVF9UTVApIHsKKyAgICAgICAgICAgIHRjZ19nZW5fb3JfdGwoaGV4X1ZSZWdzX3VwZGF0ZWQs IGhleF9WUmVnc191cGRhdGVkLCBtYXNrKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodm5ldyA9 PSBFWFRfTkVXKSB7CisgICAgICAgICAgICB0Y2dfZ2VuX29yX3RsKGhleF9WUmVnc19zZWxlY3Qs IGhleF9WUmVnc19zZWxlY3QsIG1hc2spOworICAgICAgICB9CisgICAgICAgIGlmICh2bmV3ID09 IEVYVF9UTVApIHsKKyAgICAgICAgICAgIHRjZ19nZW5fb3JfdGwoaGV4X1ZSZWdzX3VwZGF0ZWRf dG1wLCBoZXhfVlJlZ3NfdXBkYXRlZF90bXAsIG1hc2spOworICAgICAgICB9CisgICAgICAgIHRj Z19nZW5fYWRkaV9wdHIoZHN0LCBjcHVfZW52LAorICAgICAgICAgICAgICAgICAgICAgICAgIG9m ZnNldG9mKENQVUhleGFnb25TdGF0ZSwgZnV0dXJlX1ZSZWdzW251bV0pKTsKKyAgICAgICAgZ2Vu X21lbWNweShkc3QsIHZhciwgc2l6ZW9mKG1tdmVjdG9yX3QpKTsKKyAgICAgICAgaWYgKHZuZXcg PT0gRVhUX1RNUCkgeworICAgICAgICAgICAgVENHdl9wdHIgc3JjID0gdGNnX3RlbXBfbmV3X3B0 cigpOworICAgICAgICAgICAgdGNnX2dlbl9hZGRpX3B0cihkc3QsIGNwdV9lbnYsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKENQVUhleGFnb25TdGF0ZSwgdG1wX1ZSZWdz W251bV0pKTsKKyAgICAgICAgICAgIHRjZ19nZW5fYWRkaV9wdHIoc3JjLCBjcHVfZW52LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihDUFVIZXhhZ29uU3RhdGUsIGZ1dHVy ZV9WUmVnc1tudW1dKSk7CisgICAgICAgICAgICBnZW5fbWVtY3B5KGRzdCwgc3JjLCBzaXplb2Yo bW12ZWN0b3JfdCkpOworICAgICAgICAgICAgdGNnX3RlbXBfZnJlZV9wdHIoc3JjKTsKKyAgICAg ICAgfQorICAgICAgICB0Y2dfdGVtcF9mcmVlKG1hc2spOworICAgICAgICB0Y2dfdGVtcF9mcmVl X3B0cihkc3QpOworICAgIH0KKyAgICBnZW5fc2V0X2xhYmVsKGxhYmVsX2VuZCk7CisKKyAgICB0 Y2dfdGVtcF9mcmVlKGNhbmNlbGxlZCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBnZW5fbG9n X3ZyZWdfd3JpdGVfcGFpcihUQ0d2X3B0ciB2YXIsIGludCBudW0sIGludCB2bmV3LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzbG90X251bSkKK3sKKyAg ICBUQ0d2X3B0ciB2MCA9IHRjZ190ZW1wX2xvY2FsX25ld19wdHIoKTsKKyAgICBUQ0d2X3B0ciB2 MSA9IHRjZ190ZW1wX2xvY2FsX25ld19wdHIoKTsKKyAgICB0Y2dfZ2VuX2FkZGlfcHRyKHYwLCB2 YXIsIG9mZnNldG9mKG1tdmVjdG9yX3BhaXJfdCwgdlswXSkpOworICAgIGdlbl9sb2dfdnJlZ193 cml0ZSh2MCwgbnVtIF4gMCwgdm5ldywgc2xvdF9udW0pOworICAgIHRjZ19nZW5fYWRkaV9wdHIo djEsIHZhciwgb2Zmc2V0b2YobW12ZWN0b3JfcGFpcl90LCB2WzFdKSk7CisgICAgZ2VuX2xvZ192 cmVnX3dyaXRlKHYxLCBudW0gXiAxLCB2bmV3LCBzbG90X251bSk7CisgICAgdGNnX3RlbXBfZnJl ZV9wdHIodjApOworICAgIHRjZ190ZW1wX2ZyZWVfcHRyKHYxKTsKK30KKworc3RhdGljIGlubGlu ZSB2b2lkIGdlbl9sb2dfcXJlZ193cml0ZShUQ0d2X3B0ciB2YXIsIGludCBudW0sIGludCB2bmV3 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNsb3RfbnVt KQoreworICAgIFRDR3YgY2FuY2VsbGVkID0gdGNnX3RlbXBfbG9jYWxfbmV3KCk7CisgICAgVENH TGFiZWwgKmxhYmVsX2VuZCA9IGdlbl9uZXdfbGFiZWwoKTsKKworICAgIC8qIERvbid0IGRvIGFu eXRoaW5nIGlmIHRoZSBzbG90IHdhcyBjYW5jZWxsZWQgKi8KKyAgICBnZW5fc2xvdF9jYW5jZWxs ZWRfY2hlY2soY2FuY2VsbGVkLCBzbG90X251bSk7CisgICAgdGNnX2dlbl9icmNvbmRpX3RsKFRD R19DT05EX05FLCBjYW5jZWxsZWQsIDAsIGxhYmVsX2VuZCk7CisgICAgeworICAgICAgICBUQ0d2 X3B0ciBkc3QgPSB0Y2dfdGVtcF9uZXdfcHRyKCk7CisgICAgICAgIHRjZ19nZW5fYWRkaV9wdHIo ZHN0LCBjcHVfZW52LAorICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKENQVUhleGFn b25TdGF0ZSwgZnV0dXJlX1FSZWdzW251bV0pKTsKKyAgICAgICAgZ2VuX21lbWNweShkc3QsIHZh ciwgc2l6ZW9mKG1tcXJlZ190KSk7CisgICAgICAgIHRjZ19nZW5fb3JpX3RsKGhleF9RUmVnc191 cGRhdGVkLCBoZXhfUVJlZ3NfdXBkYXRlZCwgMSA8PCBudW0pOworICAgICAgICB0Y2dfdGVtcF9m cmVlX3B0cihkc3QpOworICAgIH0KKyAgICBnZW5fc2V0X2xhYmVsKGxhYmVsX2VuZCk7CisKKyAg ICB0Y2dfdGVtcF9mcmVlKGNhbmNlbGxlZCk7Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdGFy Z2V0L2hleGFnb24vZ2VucHRyLmMgYi90YXJnZXQvaGV4YWdvbi9nZW5wdHIuYwppbmRleCA2Yjlj YzBkLi41ODgzNjBkIDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9nZW5wdHIuYworKysgYi90 YXJnZXQvaGV4YWdvbi9nZW5wdHIuYwpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIm9wY29k ZXMuaCIKICNpbmNsdWRlICJ0cmFuc2xhdGUuaCIKICNpbmNsdWRlICJtYWNyb3MuaCIKKyNpbmNs dWRlICJtbXZlYy9tYWNyb3MuaCIKICNpbmNsdWRlICJnZW5wdHJfaGVscGVycy5oIgogI2luY2x1 ZGUgImhlbHBlcl9vdmVycmlkZXMuaCIKIAotLSAKMi43LjQKCg==