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=-12.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,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 DE0E0C433E1 for ; Tue, 18 Aug 2020 16:03:31 +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 9810C207D3 for ; Tue, 18 Aug 2020 16:03:31 +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="vGuIt5zt" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9810C207D3 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]:51090 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k845C-0003PB-Qj for qemu-devel@archiver.kernel.org; Tue, 18 Aug 2020 12:03:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60954) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k83tZ-0007Ig-5w for qemu-devel@nongnu.org; Tue, 18 Aug 2020 11:51:29 -0400 Received: from alexa-out-sd-02.qualcomm.com ([199.106.114.39]:12947) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1k83tW-0005sa-JV for qemu-devel@nongnu.org; Tue, 18 Aug 2020 11:51:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1597765886; x=1629301886; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ePkVLsnfWVwwBpgGwwDbWcK2fWy/G2dNuGDrAq0TMfc=; b=vGuIt5ztOWoA+qwd7XL8x5YyIUTJeVtUdPHaAMAsnOEjvmgrPnolPBes 0ucmazl02VMDns2Z2aXylqwBdUTn7kBcTqMrXNUhDqZiG0Sr8XZtK1lMf Uz6LwTjDsYDkuuMIfFUg3ouENABnK8a2xyadm6HtaJ4UtScv+rVnByTeg 8=; Received: from unknown (HELO ironmsg01-sd.qualcomm.com) ([10.53.140.141]) by alexa-out-sd-02.qualcomm.com with ESMTP; 18 Aug 2020 08:50:58 -0700 Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg01-sd.qualcomm.com with ESMTP; 18 Aug 2020 08:50:58 -0700 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id 27CBD1737; Tue, 18 Aug 2020 10:50:58 -0500 (CDT) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [RFC PATCH v3 24/34] Hexagon (target/hexagon) opcode data structures Date: Tue, 18 Aug 2020 10:50:37 -0500 Message-Id: <1597765847-16637-25-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1597765847-16637-1-git-send-email-tsimpson@quicinc.com> References: <1597765847-16637-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-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/18 11:50:57 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Spam_score_int: -32 X-Spam_score: -3.3 X-Spam_bar: --- X-Spam_report: (-3.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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, riku.voipio@iki.fi, richard.henderson@linaro.org, laurent@vivier.eu, tsimpson@quicinc.com, philmd@redhat.com, aleksandar.m.mail@gmail.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" U2lnbmVkLW9mZi1ieTogVGF5bG9yIFNpbXBzb24gPHRzaW1wc29uQHF1aWNpbmMuY29tPgotLS0K IHRhcmdldC9oZXhhZ29uL29wY29kZXMuaCB8ICA2NiArKysrKysrKysrKysrKysKIHRhcmdldC9o ZXhhZ29uL29wY29kZXMuYyB8IDIxMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyNzcgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHRhcmdldC9oZXhhZ29uL29wY29kZXMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHRhcmdldC9oZXhhZ29uL29wY29kZXMuYwoKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL29w Y29kZXMuaCBiL3RhcmdldC9oZXhhZ29uL29wY29kZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi40NjM4NGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvdGFyZ2V0L2hleGFnb24v b3Bjb2Rlcy5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAy MCBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor ICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2lmbmRl ZiBIRVhBR09OX09QQ09ERVNfSAorI2RlZmluZSBIRVhBR09OX09QQ09ERVNfSAorCisjaW5jbHVk ZSAiaGV4X2FyY2hfdHlwZXMuaCIKKyNpbmNsdWRlICJhdHRyaWJzLmgiCisKK3R5cGVkZWYgZW51 bSB7CisjZGVmaW5lIE9QQ09ERShJSUQpIElJRAorI2luY2x1ZGUgIm9wY29kZXNfZGVmX2dlbmVy YXRlZC5oIgorICAgIFhYX0xBU1RfT1BDT0RFCisjdW5kZWYgT1BDT0RFCit9IG9wY29kZV90Owor Cit0eXBlZGVmIGVudW0geworICAgIE5PUk1BTCwKKyAgICBIQUxGLAorICAgIFNVQklOU05fQSwK KyAgICBTVUJJTlNOX0wxLAorICAgIFNVQklOU05fTDIsCisgICAgU1VCSU5TTl9TMSwKKyAgICBT VUJJTlNOX1MyLAorICAgIEVYVF9ub2V4dCwKKyAgICBFWFRfbW12ZWMsCisgICAgWFhfTEFTVF9F TkNfQ0xBU1MKK30gZW5jX2NsYXNzX3Q7CisKK2V4dGVybiBjb25zdCBjaGFyICpvcGNvZGVfbmFt ZXNbXTsKKworZXh0ZXJuIGNvbnN0IGNoYXIgKm9wY29kZV9yZWdpbmZvW107CitleHRlcm4gY29u c3QgY2hhciAqb3Bjb2RlX3JyZWdzW107CitleHRlcm4gY29uc3QgY2hhciAqb3Bjb2RlX3dyZWdz W107CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBjb25zdCBjaGFyICogY29uc3QgZW5jb2Rpbmc7 CisgICAgc2l6ZTR1X3QgdmFsczsKKyAgICBzaXplNHVfdCBkZXBfdmFsczsKKyAgICBjb25zdCBl bmNfY2xhc3NfdCBlbmNfY2xhc3M7Cit9IG9wY29kZV9lbmNvZGluZ190OworCitleHRlcm4gb3Bj b2RlX2VuY29kaW5nX3Qgb3Bjb2RlX2VuY29kaW5nc1tYWF9MQVNUX09QQ09ERV07CisKK2V4dGVy biBzaXplNHVfdAorICAgIG9wY29kZV9hdHRyaWJzW1hYX0xBU1RfT1BDT0RFXVsoQV9aWl9MQVNU QVRUUklCIC8gQVRUUklCX1dJRFRIKSArIDFdOworCitleHRlcm4gdm9pZCBvcGNvZGVfaW5pdCh2 b2lkKTsKKworZXh0ZXJuIGludCBvcGNvZGVfd2hpY2hfaW1tZWRpYXRlX2lzX2V4dGVuZGVkKG9w Y29kZV90IG9wY29kZSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vb3Bj b2Rlcy5jIGIvdGFyZ2V0L2hleGFnb24vb3Bjb2Rlcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjNhOWEzYTEKLS0tIC9kZXYvbnVsbAorKysgYi90YXJnZXQvaGV4YWdvbi9v cGNvZGVzLmMKQEAgLTAsMCArMSwyMTEgQEAKKy8qCisgKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAy MCBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor ICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworLyoKKyAq IG9wY29kZXMuYworICoKKyAqIGRhdGEgdGFibGVzIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5Cisg KiBNYXliZSBzb21lIGZ1bmN0aW9ucyB0b28KKyAqLworCisjaW5jbHVkZSAicWVtdS9vc2RlcC5o IgorI2luY2x1ZGUgIm9wY29kZXMuaCIKKyNpbmNsdWRlICJkZWNvZGUuaCIKKworI2RlZmluZSBW RUNfREVTQ1IoQSwgQiwgQykgREVTQ1IoQSwgQiwgQykKKyNkZWZpbmUgRE9OQU1FKFgpICNYCisK K2NvbnN0IGNoYXIgKm9wY29kZV9uYW1lc1tdID0geworI2RlZmluZSBPUENPREUoSUlEKSBET05B TUUoSUlEKQorI2luY2x1ZGUgIm9wY29kZXNfZGVmX2dlbmVyYXRlZC5oIgorICAgIE5VTEwKKyN1 bmRlZiBPUENPREUKK307CisKK2NvbnN0IGNoYXIgKm9wY29kZV9yZWdpbmZvW10gPSB7CisjZGVm aW5lIElNTUlORk8oVEFHLCBTSUdOLCBTSVpFLCBTSEFNVCwgU0lHTjIsIFNJWkUyLCBTSEFNVDIp ICAgIC8qIG5vdGhpbmcgKi8KKyNkZWZpbmUgUkVHSU5GTyhUQUcsIFJFR0lORk8sIFJSRUdTLCBX UkVHUykgUkVHSU5GTywKKyNpbmNsdWRlICJvcF9yZWdzX2dlbmVyYXRlZC5oIgorICAgIE5VTEwK KyN1bmRlZiBSRUdJTkZPCisjdW5kZWYgSU1NSU5GTworfTsKKworCitjb25zdCBjaGFyICpvcGNv ZGVfcnJlZ3NbXSA9IHsKKyNkZWZpbmUgSU1NSU5GTyhUQUcsIFNJR04sIFNJWkUsIFNIQU1ULCBT SUdOMiwgU0laRTIsIFNIQU1UMikgICAgLyogbm90aGluZyAqLworI2RlZmluZSBSRUdJTkZPKFRB RywgUkVHSU5GTywgUlJFR1MsIFdSRUdTKSBSUkVHUywKKyNpbmNsdWRlICJvcF9yZWdzX2dlbmVy YXRlZC5oIgorICAgIE5VTEwKKyN1bmRlZiBSRUdJTkZPCisjdW5kZWYgSU1NSU5GTworfTsKKwor Citjb25zdCBjaGFyICpvcGNvZGVfd3JlZ3NbXSA9IHsKKyNkZWZpbmUgSU1NSU5GTyhUQUcsIFNJ R04sIFNJWkUsIFNIQU1ULCBTSUdOMiwgU0laRTIsIFNIQU1UMikgICAgLyogbm90aGluZyAqLwor I2RlZmluZSBSRUdJTkZPKFRBRywgUkVHSU5GTywgUlJFR1MsIFdSRUdTKSBXUkVHUywKKyNpbmNs dWRlICJvcF9yZWdzX2dlbmVyYXRlZC5oIgorICAgIE5VTEwKKyN1bmRlZiBSRUdJTkZPCisjdW5k ZWYgSU1NSU5GTworfTsKKworY29uc3QgY2hhciAqb3Bjb2RlX3Nob3J0X3NlbWFudGljc1tdID0g eworI2RlZmluZSBPUENPREUoWCkgICAgICAgICAgICAgIE5VTEwKKyNpbmNsdWRlICJvcGNvZGVz X2RlZl9nZW5lcmF0ZWQuaCIKKyN1bmRlZiBPUENPREUKKyAgICBOVUxMCit9OworCisKK3NpemU0 dV90CisgICAgb3Bjb2RlX2F0dHJpYnNbWFhfTEFTVF9PUENPREVdWyhBX1paX0xBU1RBVFRSSUIg LyBBVFRSSUJfV0lEVEgpICsgMV07CisKK3N0YXRpYyB2b2lkIGluaXRfYXR0cmlicyhpbnQgdGFn LCAuLi4pCit7CisgICAgdmFfbGlzdCBhcDsKKyAgICBpbnQgYXR0cjsKKyAgICB2YV9zdGFydChh cCwgdGFnKTsKKyAgICB3aGlsZSAoKGF0dHIgPSB2YV9hcmcoYXAsIGludCkpICE9IDApIHsKKyAg ICAgICAgb3Bjb2RlX2F0dHJpYnNbdGFnXVthdHRyIC8gQVRUUklCX1dJRFRIXSB8PSAxIDw8IChh dHRyICUgQVRUUklCX1dJRFRIKTsKKyAgICB9Cit9CisKK3N0YXRpYyBzaXplNHVfdCBzdHIydmFs KGNvbnN0IGNoYXIgKnN0cikKK3sKKyAgICBzaXplNHVfdCByZXQgPSAwOworICAgIGZvciAoIDsg KnN0cjsgc3RyKyspIHsKKyAgICAgICAgc3dpdGNoICgqc3RyKSB7CisgICAgICAgIGNhc2UgJyAn OgorICAgICAgICBjYXNlICdcdCc6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAn cyc6CisgICAgICAgIGNhc2UgJ3QnOgorICAgICAgICBjYXNlICd1JzoKKyAgICAgICAgY2FzZSAn dic6CisgICAgICAgIGNhc2UgJ3cnOgorICAgICAgICBjYXNlICdkJzoKKyAgICAgICAgY2FzZSAn ZSc6CisgICAgICAgIGNhc2UgJ3gnOgorICAgICAgICBjYXNlICd5JzoKKyAgICAgICAgY2FzZSAn aSc6CisgICAgICAgIGNhc2UgJ0knOgorICAgICAgICBjYXNlICdQJzoKKyAgICAgICAgY2FzZSAn RSc6CisgICAgICAgIGNhc2UgJ28nOgorICAgICAgICBjYXNlICctJzoKKyAgICAgICAgY2FzZSAn MCc6CisgICAgICAgICAgICByZXQgPSAocmV0IDw8IDEpIHwgMDsKKyAgICAgICAgICAgIGJyZWFr OworICAgICAgICBjYXNlICcxJzoKKyAgICAgICAgICAgIHJldCA9IChyZXQgPDwgMSkgfCAxOwor ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsK KyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmV0OworfQorCitvcGNvZGVfZW5jb2Rpbmdf dCBvcGNvZGVfZW5jb2RpbmdzW10gPSB7CisjZGVmaW5lIERFRl9FTkMzMihPUENPREUsIEVOQ1NU UikgXAorICAgIFtPUENPREVdID0geyAuZW5jb2RpbmcgPSBFTkNTVFIgfSwKKworI2RlZmluZSBE RUZfRU5DX1NVQklOU04oT1BDT0RFLCBDTEFTUywgRU5DU1RSKSBcCisgICAgW09QQ09ERV0gPSB7 IC5lbmNvZGluZyA9IEVOQ1NUUiwgLmVuY19jbGFzcyA9IENMQVNTIH0sCisKKyNkZWZpbmUgREVG X0VYVF9FTkMoT1BDT0RFLCBDTEFTUywgRU5DU1RSKSBcCisgICAgW09QQ09ERV0gPSB7IC5lbmNv ZGluZyA9IEVOQ1NUUiwgLmVuY19jbGFzcyA9IENMQVNTIH0sCisKKyNpbmNsdWRlICJpbXBvcnRl ZC9lbmNvZGUuZGVmIgorCisjdW5kZWYgREVGX0VOQzMyCisjdW5kZWYgREVGX0VOQ19TVUJJTlNO CisjdW5kZWYgREVGX0VYVF9FTkMKK307CisKK3ZvaWQgb3Bjb2RlX2luaXQodm9pZCkKK3sKKyAg ICBpbml0X2F0dHJpYnMoMCwgMCk7CisKKyNkZWZpbmUgREVGX0VOQzMyKE9QQ09ERSwgRU5DU1RS KSBcCisgICAgb3Bjb2RlX2VuY29kaW5nc1tPUENPREVdLnZhbHMgPSBzdHIydmFsKEVOQ1NUUik7 CisKKyNkZWZpbmUgREVGX0VOQ19TVUJJTlNOKE9QQ09ERSwgQ0xBU1MsIEVOQ1NUUikgXAorICAg IG9wY29kZV9lbmNvZGluZ3NbT1BDT0RFXS52YWxzID0gc3RyMnZhbChFTkNTVFIpOworCisjZGVm aW5lIExFR0FDWV9ERUZfRU5DMzIoT1BDT0RFLCBFTkNTVFIpIFwKKyAgICBvcGNvZGVfZW5jb2Rp bmdzW09QQ09ERV0uZGVwX3ZhbHMgPSBzdHIydmFsKEVOQ1NUUik7CisKKyNkZWZpbmUgREVGX0VY VF9FTkMoT1BDT0RFLCBDTEFTUywgRU5DU1RSKSBcCisgICAgb3Bjb2RlX2VuY29kaW5nc1tPUENP REVdLnZhbHMgPSBzdHIydmFsKEVOQ1NUUik7CisKKyNpbmNsdWRlICJpbXBvcnRlZC9lbmNvZGUu ZGVmIgorCisjdW5kZWYgTEVHQUNZX0RFRl9FTkMzMgorI3VuZGVmIERFRl9FTkMzMgorI3VuZGVm IERFRl9FTkNfU1VCSU5TTgorI3VuZGVmIERFRl9FWFRfRU5DCisKKyNkZWZpbmUgQVRUUklCUygu Li4pICwgIyMgX19WQV9BUkdTX18sIDAKKyNkZWZpbmUgT1BfQVRUUklCKFRBRywgQVJHUykgaW5p dF9hdHRyaWJzKFRBRyBBUkdTKTsKKyNpbmNsdWRlICJvcF9hdHRyaWJzX2dlbmVyYXRlZC5oIgor I3VuZGVmIE9QX0FUVFJJQgorI3VuZGVmIEFUVFJJQlMKKworICAgIGRlY29kZV9pbml0KCk7CisK KyNkZWZpbmUgREVGX1NIT1JUQ09ERShUQUcsIFNIT1JUQ09ERSkgXAorICAgIG9wY29kZV9zaG9y dF9zZW1hbnRpY3NbVEFHXSA9ICNTSE9SVENPREU7CisjaW5jbHVkZSAic2hvcnRjb2RlX2dlbmVy YXRlZC5oIgorI3VuZGVmIERFRl9TSE9SVENPREUKK30KKworCisjZGVmaW5lIE5FRURMRSAiSU1N RVhUKCIKKworaW50IG9wY29kZV93aGljaF9pbW1lZGlhdGVfaXNfZXh0ZW5kZWQob3Bjb2RlX3Qg b3Bjb2RlKQoreworICAgIGNvbnN0IGNoYXIgKnA7CisgICAgaWYgKG9wY29kZSA+PSBYWF9MQVNU X09QQ09ERSkgeworICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOworICAgICAgICByZXR1 cm4gMDsKKyAgICB9CisgICAgaWYgKCFHRVRfQVRUUklCKG9wY29kZSwgQV9FWFRFTkRBQkxFKSkg eworICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOworICAgICAgICByZXR1cm4gMDsKKyAg ICB9CisgICAgcCA9IG9wY29kZV9zaG9ydF9zZW1hbnRpY3Nbb3Bjb2RlXTsKKyAgICBwID0gc3Ry c3RyKHAsIE5FRURMRSk7CisgICAgaWYgKHAgPT0gTlVMTCkgeworICAgICAgICBnX2Fzc2VydF9u b3RfcmVhY2hlZCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcCArPSBzdHJsZW4o TkVFRExFKTsKKyAgICB3aGlsZSAoaXNzcGFjZSgqcCkpIHsKKyAgICAgICAgcCsrOworICAgIH0K KyAgICAvKiBsb3dlciBpcyBhbHdheXMgaW1tIDAsIHVwcGVyIGFsd2F5cyBpbW0gMS4gKi8KKyAg ICBpZiAoaXNsb3dlcigqcCkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfSBlbHNlIGlmIChp c3VwcGVyKCpwKSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9IGVsc2UgeworICAgICAgICBn X2Fzc2VydF9ub3RfcmVhY2hlZCgpOworICAgIH0KK30KLS0gCjIuNy40Cgo=