From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id 18E313870886 for ; Wed, 16 Mar 2022 14:49:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 18E313870886 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C5F711476; Wed, 16 Mar 2022 07:49:37 -0700 (PDT) Received: from [10.1.38.140] (E121495.Arm.com [10.1.38.140]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 221993F766; Wed, 16 Mar 2022 07:49:37 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------KqxRQBtsw0MgWTkGHMoupaGw" Message-ID: Date: Wed, 16 Mar 2022 14:49:30 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.2 Content-Language: en-US To: "gcc-patches@gcc.gnu.org" Cc: Richard Sandiford , Kyrylo Tkachov From: "Andre Vieira (lists)" Subject: [aarch64] Add Demeter tuning structs X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, BODY_8BITS, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_LOTSOFHASH, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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, 16 Mar 2022 14:49:40 -0000 This is a multi-part message in MIME format. --------------KqxRQBtsw0MgWTkGHMoupaGw Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi, This patch adds tuning structs for -mcpu/-mtune=demeter. 2022-03-16  Tamar Christina                         Andre Vieira         * config/aarch64/aarch64.cc (demeter_addrcost_table, demeter_regmove_cost,         demeter_advsimd_vector_cost, demeter_sve_vector_cost, demeter_scalar_issue_info,         demeter_advsimd_issue_info, demeter_sve_issue_info, demeter_vec_issue_info,         demeter_vector_cost, demeter_tunings): New tuning structs.         (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter tuning.         * config/aarch64/aarch64-cores.def: Add entry for demeter.         * config/aarch64/aarch64-tune.md (tune): Add demeter to list. --------------KqxRQBtsw0MgWTkGHMoupaGw Content-Type: text/plain; charset=UTF-8; name="demeter.patch" Content-Disposition: attachment; filename="demeter.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LWNvcmVzLmRlZiBiL2dj Yy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LWNvcmVzLmRlZgppbmRleCBlZGEzYTRlYjYwMjhk OTdkNTAyOTU3NzNjODcxMTlkOWZhMGM0MWJmLi45ZTZjYTg0YmQ0YjI3N2NjZjJjMTgwOWM0 MTk3MDNhMjMwNzVmMzE1IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2 NC1jb3Jlcy5kZWYKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtY29yZXMuZGVm CkBAIC0xNzIsNCArMTcyLDYgQEAgQUFSQ0g2NF9DT1JFKCJjb3J0ZXgtYTcxMCIsICBjb3J0 ZXhhNzEwLCBjb3J0ZXhhNTcsIDlBLCAgQUFSQ0g2NF9GTF9GT1JfQVJDSDkgfAogCiBBQVJD SDY0X0NPUkUoImNvcnRleC14MiIsICBjb3J0ZXh4MiwgY29ydGV4YTU3LCA5QSwgIEFBUkNI NjRfRkxfRk9SX0FSQ0g5IHwgQUFSQ0g2NF9GTF9TVkUyX0JJVFBFUk0gfCBBQVJDSDY0X0ZM X01FTVRBRyB8IEFBUkNINjRfRkxfSThNTSB8IEFBUkNINjRfRkxfQkYxNiwgbmVvdmVyc2Vu MiwgMHg0MSwgMHhkNDgsIC0xKQogCitBQVJDSDY0X0NPUkUoImRlbWV0ZXIiLCBkZW1ldGVy LCBjb3J0ZXhhNTcsIDlBLCBBQVJDSDY0X0ZMX0ZPUl9BUkNIOSB8IEFBUkNINjRfRkxfSThN TSB8IEFBUkNINjRfRkxfQkYxNiB8IEFBUkNINjRfRkxfU1ZFMl9CSVRQRVJNIHwgQUFSQ0g2 NF9GTF9STkcgfCBBQVJDSDY0X0ZMX01FTVRBRyB8IEFBUkNINjRfRkxfUFJPRklMRSwgZGVt ZXRlciwgMHg0MSwgMHhkNGYsIC0xKQorCiAjdW5kZWYgQUFSQ0g2NF9DT1JFCmRpZmYgLS1n aXQgYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC10dW5lLm1kIGIvZ2NjL2NvbmZpZy9h YXJjaDY0L2FhcmNoNjQtdHVuZS5tZAppbmRleCAzZWVkNzAwYzA2M2MyYWJmMzZjZDY0OGIy MmY3MTNlODg3MjU1Zjk2Li5kZGE1ZGJkZGE3NWMxMzgzMDA0ZjVkYWMzZjI0OTkwOWY3ZjIz NTg5IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC10dW5lLm1kCisr KyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXR1bmUubWQKQEAgLTEsNSArMSw1IEBA CiA7OyAtKi0gYnVmZmVyLXJlYWQtb25seTogdCAtKi0KIDs7IEdlbmVyYXRlZCBhdXRvbWF0 aWNhbGx5IGJ5IGdlbnR1bmUuc2ggZnJvbSBhYXJjaDY0LWNvcmVzLmRlZgogKGRlZmluZV9h dHRyICJ0dW5lIgotCSJjb3J0ZXhhMzQsY29ydGV4YTM1LGNvcnRleGE1Myxjb3J0ZXhhNTcs Y29ydGV4YTcyLGNvcnRleGE3Myx0aHVuZGVyeCx0aHVuZGVyeHQ4OHAxLHRodW5kZXJ4dDg4 LG9jdGVvbnR4LG9jdGVvbnR4dDgxLG9jdGVvbnR4dDgzLHRodW5kZXJ4dDgxLHRodW5kZXJ4 dDgzLGFtcGVyZTEsZW1hZyx4Z2VuZTEsZmFsa29yLHFkZjI0eHgsZXh5bm9zbTEscGhlY2Rh LHRodW5kZXJ4MnQ5OXAxLHZ1bGNhbix0aHVuZGVyeDJ0OTksY29ydGV4YTU1LGNvcnRleGE3 NSxjb3J0ZXhhNzYsY29ydGV4YTc2YWUsY29ydGV4YTc3LGNvcnRleGE3OCxjb3J0ZXhhNzhh ZSxjb3J0ZXhhNzhjLGNvcnRleGE2NSxjb3J0ZXhhNjVhZSxjb3J0ZXh4MSxhcmVzLG5lb3Zl cnNlbjEsbmVvdmVyc2VlMSxvY3Rlb250eDIsb2N0ZW9udHgydDk4LG9jdGVvbnR4MnQ5Nixv Y3Rlb250eDJ0OTMsb2N0ZW9udHgyZjk1LG9jdGVvbnR4MmY5NW4sb2N0ZW9udHgyZjk1bW0s YTY0ZngsdHN2MTEwLHRodW5kZXJ4M3QxMTAsemV1cyxuZW92ZXJzZXYxLG5lb3ZlcnNlNTEy dHZiLHNhcGhpcmEsbmVvdmVyc2VuMixjb3J0ZXhhNTdjb3J0ZXhhNTMsY29ydGV4YTcyY29y dGV4YTUzLGNvcnRleGE3M2NvcnRleGEzNSxjb3J0ZXhhNzNjb3J0ZXhhNTMsY29ydGV4YTc1 Y29ydGV4YTU1LGNvcnRleGE3NmNvcnRleGE1NSxjb3J0ZXhyODIsY29ydGV4YTUxMCxjb3J0 ZXhhNzEwLGNvcnRleHgyIgorCSJjb3J0ZXhhMzQsY29ydGV4YTM1LGNvcnRleGE1Myxjb3J0 ZXhhNTcsY29ydGV4YTcyLGNvcnRleGE3Myx0aHVuZGVyeCx0aHVuZGVyeHQ4OHAxLHRodW5k ZXJ4dDg4LG9jdGVvbnR4LG9jdGVvbnR4dDgxLG9jdGVvbnR4dDgzLHRodW5kZXJ4dDgxLHRo dW5kZXJ4dDgzLGFtcGVyZTEsZW1hZyx4Z2VuZTEsZmFsa29yLHFkZjI0eHgsZXh5bm9zbTEs cGhlY2RhLHRodW5kZXJ4MnQ5OXAxLHZ1bGNhbix0aHVuZGVyeDJ0OTksY29ydGV4YTU1LGNv cnRleGE3NSxjb3J0ZXhhNzYsY29ydGV4YTc2YWUsY29ydGV4YTc3LGNvcnRleGE3OCxjb3J0 ZXhhNzhhZSxjb3J0ZXhhNzhjLGNvcnRleGE2NSxjb3J0ZXhhNjVhZSxjb3J0ZXh4MSxhcmVz LG5lb3ZlcnNlbjEsbmVvdmVyc2VlMSxvY3Rlb250eDIsb2N0ZW9udHgydDk4LG9jdGVvbnR4 MnQ5NixvY3Rlb250eDJ0OTMsb2N0ZW9udHgyZjk1LG9jdGVvbnR4MmY5NW4sb2N0ZW9udHgy Zjk1bW0sYTY0ZngsdHN2MTEwLHRodW5kZXJ4M3QxMTAsemV1cyxuZW92ZXJzZXYxLG5lb3Zl cnNlNTEydHZiLHNhcGhpcmEsbmVvdmVyc2VuMixjb3J0ZXhhNTdjb3J0ZXhhNTMsY29ydGV4 YTcyY29ydGV4YTUzLGNvcnRleGE3M2NvcnRleGEzNSxjb3J0ZXhhNzNjb3J0ZXhhNTMsY29y dGV4YTc1Y29ydGV4YTU1LGNvcnRleGE3NmNvcnRleGE1NSxjb3J0ZXhyODIsY29ydGV4YTUx MCxjb3J0ZXhhNzEwLGNvcnRleHgyLGRlbWV0ZXIiCiAJKGNvbnN0IChzeW1ib2xfcmVmICIo KGVudW0gYXR0cl90dW5lKSBhYXJjaDY0X3R1bmUpIikpKQpkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9hYXJjaDY0L2FhcmNoNjQuY2MgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5j YwppbmRleCBlMGJiNDQ3YmViOWVhZTc0NTUxZDg2MzUwNWViMjY1NzM3ZDM2MzM0Li45YjZm NjdkYzU5MmQ4YTQ0N2Q2YjI4MzkwYzkwYWJlNWRjZmE1ZjA4IDEwMDY0NAotLS0gYS9nY2Mv Y29uZmlnL2FhcmNoNjQvYWFyY2g2NC5jYworKysgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFy Y2g2NC5jYwpAQCAtNTM3LDYgKzUzNywyNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNwdV9h ZGRyY29zdF90YWJsZSBuZW92ZXJzZW4yX2FkZHJjb3N0X3RhYmxlID0KICAgMCAvKiBpbW1f b2Zmc2V0ICAqLwogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBjcHVfYWRkcmNvc3RfdGFi bGUgZGVtZXRlcl9hZGRyY29zdF90YWJsZSA9Cit7CisgICAgeworICAgICAgMSwgLyogaGkg ICovCisgICAgICAwLCAvKiBzaSAgKi8KKyAgICAgIDAsIC8qIGRpICAqLworICAgICAgMSwg LyogdGkgICovCisgICAgfSwKKyAgMCwgLyogcHJlX21vZGlmeSAgKi8KKyAgMCwgLyogcG9z dF9tb2RpZnkgICovCisgIDIsIC8qIHBvc3RfbW9kaWZ5X2xkM19zdDMgICovCisgIDIsIC8q IHBvc3RfbW9kaWZ5X2xkNF9zdDQgICovCisgIDAsIC8qIHJlZ2lzdGVyX29mZnNldCAgKi8K KyAgMCwgLyogcmVnaXN0ZXJfc2V4dGVuZCAgKi8KKyAgMCwgLyogcmVnaXN0ZXJfemV4dGVu ZCAgKi8KKyAgMCAvKiBpbW1fb2Zmc2V0ICAqLworfTsKKwogc3RhdGljIGNvbnN0IHN0cnVj dCBjcHVfcmVnbW92ZV9jb3N0IGdlbmVyaWNfcmVnbW92ZV9jb3N0ID0KIHsKICAgMSwgLyog R1AyR1AgICovCkBAIC02NTIsNiArNjcwLDE2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY3B1 X3JlZ21vdmVfY29zdCBuZW92ZXJzZW4yX3JlZ21vdmVfY29zdCA9CiAgIDIgLyogRlAyRlAg ICovCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGNwdV9yZWdtb3ZlX2Nvc3QgZGVtZXRl cl9yZWdtb3ZlX2Nvc3QgPQoreworICAxLCAvKiBHUDJHUCAgKi8KKyAgLyogU3BpbGxpbmcg dG8gaW50PC0+ZnAgaW5zdGVhZCBvZiBtZW1vcnkgaXMgcmVjb21tZW5kZWQgc28gc2V0Cisg ICAgIHJlYWxpc3RpYyBjb3N0cyBjb21wYXJlZCB0byBtZW1tdl9jb3N0LiAgKi8KKyAgMywg LyogR1AyRlAgICovCisgIDIsIC8qIEZQMkdQICAqLworICAyIC8qIEZQMkZQICAqLworfTsK KwogLyogR2VuZXJpYyBjb3N0cyBmb3IgQWR2YW5jZWQgU0lNRCB2ZWN0b3Igb3BlcmF0aW9u cy4gICAqLwogc3RhdGljIGNvbnN0IGFkdnNpbWRfdmVjX2Nvc3QgZ2VuZXJpY19hZHZzaW1k X3ZlY3Rvcl9jb3N0ID0KIHsKQEAgLTIzOTEsNiArMjQxOSwxOTUgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCB0dW5lX3BhcmFtcyBuZW92ZXJzZW4yX3R1bmluZ3MgPQogICAmZ2VuZXJpY19w cmVmZXRjaF90dW5lCiB9OwogCitzdGF0aWMgY29uc3QgYWR2c2ltZF92ZWNfY29zdCBkZW1l dGVyX2FkdnNpbWRfdmVjdG9yX2Nvc3QgPQoreworICAyLCAvKiBpbnRfc3RtdF9jb3N0ICAq LworICAyLCAvKiBmcF9zdG10X2Nvc3QgICovCisgIDIsIC8qIGxkMl9zdDJfcGVybXV0ZV9j b3N0ICovCisgIDIsIC8qIGxkM19zdDNfcGVybXV0ZV9jb3N0ICAqLworICAzLCAvKiBsZDRf c3Q0X3Blcm11dGVfY29zdCAgKi8KKyAgMywgLyogcGVybXV0ZV9jb3N0ICAqLworICA0LCAv KiByZWR1Y19pOF9jb3N0ICAqLworICA0LCAvKiByZWR1Y19pMTZfY29zdCAgKi8KKyAgMiwg LyogcmVkdWNfaTMyX2Nvc3QgICovCisgIDIsIC8qIHJlZHVjX2k2NF9jb3N0ICAqLworICA2 LCAvKiByZWR1Y19mMTZfY29zdCAgKi8KKyAgMywgLyogcmVkdWNfZjMyX2Nvc3QgICovCisg IDIsIC8qIHJlZHVjX2Y2NF9jb3N0ICAqLworICAyLCAvKiBzdG9yZV9lbHRfZXh0cmFfY29z dCAgKi8KKyAgLyogVGhpcyB2YWx1ZSBpcyBqdXN0IGluaGVyaXRlZCBmcm9tIHRoZSBDb3J0 ZXgtQTU3IHRhYmxlLiAgKi8KKyAgOCwgLyogdmVjX3RvX3NjYWxhcl9jb3N0ICAqLworICAv KiBUaGlzIGRlcGVuZHMgdmVyeSBtdWNoIG9uIHdoYXQgdGhlIHNjYWxhciB2YWx1ZSBpcyBh bmQKKyAgICAgd2hlcmUgaXQgY29tZXMgZnJvbS4gIEUuZy4gc29tZSBjb25zdGFudHMgdGFr ZSB0d28gZGVwZW5kZW50CisgICAgIGluc3RydWN0aW9ucyBvciBhIGxvYWQsIHdoaWxlIG90 aGVycyBtaWdodCBiZSBtb3ZlZCBmcm9tIGEgR1BSLgorICAgICA0IHNlZW1zIHRvIGJlIGEg cmVhc29uYWJsZSBjb21wcm9taXNlIGluIHByYWN0aWNlLiAgKi8KKyAgNCwgLyogc2NhbGFy X3RvX3ZlY19jb3N0ICAqLworICA0LCAvKiBhbGlnbl9sb2FkX2Nvc3QgICovCisgIDQsIC8q IHVuYWxpZ25fbG9hZF9jb3N0ICAqLworICAvKiBBbHRob3VnaCBzdG9yZXMgaGF2ZSBhIGxh dGVuY3kgb2YgMiBhbmQgY29tcGV0ZSBmb3IgdGhlCisgICAgIHZlY3RvciBwaXBlcywgaW4g cHJhY3RpY2UgaXQncyBiZXR0ZXIgbm90IHRvIG1vZGVsIHRoYXQuICAqLworICAxLCAvKiB1 bmFsaWduX3N0b3JlX2Nvc3QgICovCisgIDEgIC8qIHN0b3JlX2Nvc3QgICovCit9OworCitz dGF0aWMgY29uc3Qgc3ZlX3ZlY19jb3N0IGRlbWV0ZXJfc3ZlX3ZlY3Rvcl9jb3N0ID0KK3sK KyAgeworICAgIDIsIC8qIGludF9zdG10X2Nvc3QgICovCisgICAgMiwgLyogZnBfc3RtdF9j b3N0ICAqLworICAgIDMsIC8qIGxkMl9zdDJfcGVybXV0ZV9jb3N0ICAqLworICAgIDMsIC8q IGxkM19zdDNfcGVybXV0ZV9jb3N0ICAqLworICAgIDQsIC8qIGxkNF9zdDRfcGVybXV0ZV9j b3N0ICAqLworICAgIDMsIC8qIHBlcm11dGVfY29zdCAgKi8KKyAgICAvKiBUaGVvcmV0aWNh bGx5LCBhIHJlZHVjdGlvbiBpbnZvbHZpbmcgMTUgc2NhbGFyIEFERHMgY291bGQKKyAgICAg ICBjb21wbGV0ZSBpbiB+MyBjeWNsZXMgYW5kIHdvdWxkIGhhdmUgYSBjb3N0IG9mIDE1LiAg W1NVXUFERFYKKyAgICAgICBjb21wbGV0ZXMgaW4gMTEgY3ljbGVzLCBzbyBnaXZlIGl0IGEg Y29zdCBvZiAxNSArIDguICAqLworICAgIDIxLCAvKiByZWR1Y19pOF9jb3N0ICAqLworICAg IC8qIExpa2V3aXNlIGZvciA3IHNjYWxhciBBRERzICh+MiBjeWNsZXMpIHZzLiA5OiA3ICsg Ny4gICovCisgICAgMTQsIC8qIHJlZHVjX2kxNl9jb3N0ICAqLworICAgIC8qIExpa2V3aXNl IGZvciAzIHNjYWxhciBBRERzICh+MiBjeWNsZXMpIHZzLiA4OiAzICsgNC4gICovCisgICAg NywgLyogcmVkdWNfaTMyX2Nvc3QgICovCisgICAgLyogTGlrZXdpc2UgZm9yIDEgc2NhbGFy IEFERHMgKH4xIGN5Y2xlcykgdnMuIDI6IDEgKyAxLiAgKi8KKyAgICAyLCAvKiByZWR1Y19p NjRfY29zdCAgKi8KKyAgICAvKiBUaGVvcmV0aWNhbGx5LCBhIHJlZHVjdGlvbiBpbnZvbHZp bmcgNyBzY2FsYXIgRkFERHMgY291bGQKKyAgICAgICBjb21wbGV0ZSBpbiB+NiBjeWNsZXMg YW5kIHdvdWxkIGhhdmUgYSBjb3N0IG9mIDE0LiAgRkFERFYKKyAgICAgICBjb21wbGV0ZXMg aW4gOCBjeWNsZXMsIHNvIGdpdmUgaXQgYSBjb3N0IG9mIDE0ICsgMi4gICovCisgICAgMTYs IC8qIHJlZHVjX2YxNl9jb3N0ICAqLworICAgIC8qIExpa2V3aXNlIGZvciAzIHNjYWxhciBG QUREcyAofjQgY3ljbGVzKSB2cy4gNjogNiArIDIuICAqLworICAgIDgsIC8qIHJlZHVjX2Yz Ml9jb3N0ICAqLworICAgIC8qIExpa2V3aXNlIGZvciAxIHNjYWxhciBGQUREcyAofjIgY3lj bGVzKSB2cy4gNDogMiArIDIuICAqLworICAgIDQsIC8qIHJlZHVjX2Y2NF9jb3N0ICAqLwor ICAgIDIsIC8qIHN0b3JlX2VsdF9leHRyYV9jb3N0ICAqLworICAgIC8qIFRoaXMgdmFsdWUg aXMganVzdCBpbmhlcml0ZWQgZnJvbSB0aGUgQ29ydGV4LUE1NyB0YWJsZS4gICovCisgICAg OCwgLyogdmVjX3RvX3NjYWxhcl9jb3N0ICAqLworICAgIC8qIFNlZSB0aGUgY29tbWVudCBh Ym92ZSB0aGUgQWR2YW5jZWQgU0lNRCB2ZXJzaW9ucy4gICovCisgICAgNCwgLyogc2NhbGFy X3RvX3ZlY19jb3N0ICAqLworICAgIDQsIC8qIGFsaWduX2xvYWRfY29zdCAgKi8KKyAgICA0 LCAvKiB1bmFsaWduX2xvYWRfY29zdCAgKi8KKyAgICAvKiBBbHRob3VnaCBzdG9yZXMgaGF2 ZSBhIGxhdGVuY3kgb2YgMiBhbmQgY29tcGV0ZSBmb3IgdGhlCisgICAgICAgdmVjdG9yIHBp cGVzLCBpbiBwcmFjdGljZSBpdCdzIGJldHRlciBub3QgdG8gbW9kZWwgdGhhdC4gICovCisg ICAgMSwgLyogdW5hbGlnbl9zdG9yZV9jb3N0ICAqLworICAgIDEgIC8qIHN0b3JlX2Nvc3Qg ICovCisgIH0sCisgIDMsIC8qIGNsYXN0X2Nvc3QgICovCisgIDEwLCAvKiBmYWRkYV9mMTZf Y29zdCAgKi8KKyAgNiwgLyogZmFkZGFfZjMyX2Nvc3QgICovCisgIDQsIC8qIGZhZGRhX2Y2 NF9jb3N0ICAqLworICAvKiBBIHN0cmlkZWQgQWR2YW5jZWQgU0lNRCB4NjQgbG9hZCB3b3Vs ZCB0YWtlIHR3byBwYXJhbGxlbCBGUCBsb2FkcworICAgICAoOCBjeWNsZXMpIHBsdXMgYW4g aW5zZXJ0aW9uICgyIGN5Y2xlcykuICBBc3N1bWUgYSA2NC1iaXQgU1ZFIGdhdGhlcgorICAg ICBpcyAxIGN5Y2xlIG1vcmUuICBUaGUgQWR2YW5jZWQgU0lNRCB2ZXJzaW9uIGlzIGNvc3Rl ZCBhcyAyIHNjYWxhciBsb2FkcworICAgICAoY29zdCA4KSBhbmQgYSB2ZWNfY29uc3RydWN0 IChjb3N0IDIpLiAgQWRkIGEgZnVsbCB2ZWN0b3Igb3BlcmF0aW9uCisgICAgIChjb3N0IDIp IHRvIHRoYXQsIHRvIGF2b2lkIHRoZSBkaWZmZXJlbmNlIGJlaW5nIGxvc3QgaW4gcm91bmRp bmcuCisKKyAgICAgVGhlcmUgaXMgbm8gZWFzeSBjb21wYXJpc29uIGJldHdlZW4gYSBzdHJp ZGVkIEFkdmFuY2VkIFNJTUQgeDMyIGxvYWQKKyAgICAgYW5kIGFuIFNWRSAzMi1iaXQgZ2F0 aGVyLCBidXQgY29zdCBhbiBTVkUgMzItYml0IGdhdGhlciBhcyAxIHZlY3RvcgorICAgICBv cGVyYXRpb24gbW9yZSB0aGFuIGEgNjQtYml0IGdhdGhlci4gICovCisgIDE0LCAvKiBnYXRo ZXJfbG9hZF94MzJfY29zdCAgKi8KKyAgMTIsIC8qIGdhdGhlcl9sb2FkX3g2NF9jb3N0ICAq LworICAzIC8qIHNjYXR0ZXJfc3RvcmVfZWx0X2Nvc3QgICovCit9OworCitzdGF0aWMgY29u c3QgYWFyY2g2NF9zY2FsYXJfdmVjX2lzc3VlX2luZm8gZGVtZXRlcl9zY2FsYXJfaXNzdWVf aW5mbyA9Cit7CisgIDMsIC8qIGxvYWRzX3N0b3Jlc19wZXJfY3ljbGUgICovCisgIDIsIC8q IHN0b3Jlc19wZXJfY3ljbGUgICovCisgIDYsIC8qIGdlbmVyYWxfb3BzX3Blcl9jeWNsZSAg Ki8KKyAgMCwgLyogZnBfc2ltZF9sb2FkX2dlbmVyYWxfb3BzICAqLworICAxIC8qIGZwX3Np bWRfc3RvcmVfZ2VuZXJhbF9vcHMgICovCit9OworCitzdGF0aWMgY29uc3QgYWFyY2g2NF9h ZHZzaW1kX3ZlY19pc3N1ZV9pbmZvIGRlbWV0ZXJfYWR2c2ltZF9pc3N1ZV9pbmZvID0KK3sK KyAgeworICAgIDMsIC8qIGxvYWRzX3N0b3Jlc19wZXJfY3ljbGUgICovCisgICAgMiwgLyog c3RvcmVzX3Blcl9jeWNsZSAgKi8KKyAgICA0LCAvKiBnZW5lcmFsX29wc19wZXJfY3ljbGUg ICovCisgICAgMCwgLyogZnBfc2ltZF9sb2FkX2dlbmVyYWxfb3BzICAqLworICAgIDEgLyog ZnBfc2ltZF9zdG9yZV9nZW5lcmFsX29wcyAgKi8KKyAgfSwKKyAgMiwgLyogbGQyX3N0Ml9n ZW5lcmFsX29wcyAgKi8KKyAgMiwgLyogbGQzX3N0M19nZW5lcmFsX29wcyAgKi8KKyAgMyAv KiBsZDRfc3Q0X2dlbmVyYWxfb3BzICAqLworfTsKKworc3RhdGljIGNvbnN0IGFhcmNoNjRf c3ZlX3ZlY19pc3N1ZV9pbmZvIGRlbWV0ZXJfc3ZlX2lzc3VlX2luZm8gPQoreworICB7Cisg ICAgeworICAgICAgMywgLyogbG9hZHNfcGVyX2N5Y2xlICAqLworICAgICAgMiwgLyogc3Rv cmVzX3Blcl9jeWNsZSAgKi8KKyAgICAgIDQsIC8qIGdlbmVyYWxfb3BzX3Blcl9jeWNsZSAg Ki8KKyAgICAgIDAsIC8qIGZwX3NpbWRfbG9hZF9nZW5lcmFsX29wcyAgKi8KKyAgICAgIDEg LyogZnBfc2ltZF9zdG9yZV9nZW5lcmFsX29wcyAgKi8KKyAgICB9LAorICAgIDIsIC8qIGxk Ml9zdDJfZ2VuZXJhbF9vcHMgICovCisgICAgMywgLyogbGQzX3N0M19nZW5lcmFsX29wcyAg Ki8KKyAgICAzIC8qIGxkNF9zdDRfZ2VuZXJhbF9vcHMgICovCisgIH0sCisgIDIsIC8qIHBy ZWRfb3BzX3Blcl9jeWNsZSAgKi8KKyAgMiwgLyogd2hpbGVfcHJlZF9vcHMgICovCisgIDIs IC8qIGludF9jbXBfcHJlZF9vcHMgICovCisgIDEsIC8qIGZwX2NtcF9wcmVkX29wcyAgKi8K KyAgMSwgLyogZ2F0aGVyX3NjYXR0ZXJfcGFpcl9nZW5lcmFsX29wcyAgKi8KKyAgMSAvKiBn YXRoZXJfc2NhdHRlcl9wYWlyX3ByZWRfb3BzICAqLworfTsKKworc3RhdGljIGNvbnN0IGFh cmNoNjRfdmVjX2lzc3VlX2luZm8gZGVtZXRlcl92ZWNfaXNzdWVfaW5mbyA9Cit7CisgICZk ZW1ldGVyX3NjYWxhcl9pc3N1ZV9pbmZvLAorICAmZGVtZXRlcl9hZHZzaW1kX2lzc3VlX2lu Zm8sCisgICZkZW1ldGVyX3N2ZV9pc3N1ZV9pbmZvCit9OworCisvKiBEZW1ldGVyIGNvc3Rz IGZvciB2ZWN0b3IgaW5zbiBjbGFzc2VzLiAgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY3B1 X3ZlY3Rvcl9jb3N0IGRlbWV0ZXJfdmVjdG9yX2Nvc3QgPQoreworICAxLCAvKiBzY2FsYXJf aW50X3N0bXRfY29zdCAgKi8KKyAgMiwgLyogc2NhbGFyX2ZwX3N0bXRfY29zdCAgKi8KKyAg NCwgLyogc2NhbGFyX2xvYWRfY29zdCAgKi8KKyAgMSwgLyogc2NhbGFyX3N0b3JlX2Nvc3Qg ICovCisgIDEsIC8qIGNvbmRfdGFrZW5fYnJhbmNoX2Nvc3QgICovCisgIDEsIC8qIGNvbmRf bm90X3Rha2VuX2JyYW5jaF9jb3N0ICAqLworICAmZGVtZXRlcl9hZHZzaW1kX3ZlY3Rvcl9j b3N0LCAvKiBhZHZzaW1kICAqLworICAmZGVtZXRlcl9zdmVfdmVjdG9yX2Nvc3QsIC8qIHN2 ZSAgKi8KKyAgJmRlbWV0ZXJfdmVjX2lzc3VlX2luZm8gLyogaXNzdWVfaW5mbyAgKi8KK307 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdHVuZV9wYXJhbXMgZGVtZXRlcl90dW5pbmdzID0K K3sKKyAgJmNvcnRleGE3Nl9leHRyYV9jb3N0cywKKyAgJmRlbWV0ZXJfYWRkcmNvc3RfdGFi bGUsCisgICZkZW1ldGVyX3JlZ21vdmVfY29zdCwKKyAgJmRlbWV0ZXJfdmVjdG9yX2Nvc3Qs CisgICZnZW5lcmljX2JyYW5jaF9jb3N0LAorICAmZ2VuZXJpY19hcHByb3hfbW9kZXMsCisg IFNWRV8xMjgsIC8qIHN2ZV93aWR0aCAgKi8KKyAgeyA0LCAvKiBsb2FkX2ludC4gICovCisg ICAgMiwgLyogc3RvcmVfaW50LiAgKi8KKyAgICA2LCAvKiBsb2FkX2ZwLiAgKi8KKyAgICAx LCAvKiBzdG9yZV9mcC4gICovCisgICAgNiwgLyogbG9hZF9wcmVkLiAgKi8KKyAgICAyIC8q IHN0b3JlX3ByZWQuICAqLworICB9LCAvKiBtZW1tb3ZfY29zdC4gICovCisgIDUsIC8qIGlz c3VlX3JhdGUgICovCisgIChBQVJDSDY0X0ZVU0VfQUVTX0FFU01DIHwgQUFSQ0g2NF9GVVNF X0NNUF9CUkFOQ0gpLCAvKiBmdXNpYmxlX29wcyAgKi8KKyAgIjMyOjE2IiwJLyogZnVuY3Rp b25fYWxpZ24uICAqLworICAiNCIsCQkvKiBqdW1wX2FsaWduLiAgKi8KKyAgIjMyOjE2IiwJ LyogbG9vcF9hbGlnbi4gICovCisgIDMsCS8qIGludF9yZWFzc29jX3dpZHRoLiAgKi8KKyAg NiwJLyogZnBfcmVhc3NvY193aWR0aC4gICovCisgIDMsCS8qIHZlY19yZWFzc29jX3dpZHRo LiAgKi8KKyAgMiwJLyogbWluX2Rpdl9yZWNpcF9tdWxfc2YuICAqLworICAyLAkvKiBtaW5f ZGl2X3JlY2lwX211bF9kZi4gICovCisgIDAsCS8qIG1heF9jYXNlX3ZhbHVlcy4gICovCisg IHR1bmVfcGFyYW1zOjpBVVRPUFJFRkVUQ0hFUl9XRUFLLAkvKiBhdXRvcHJlZmV0Y2hlcl9t b2RlbC4gICovCisgIChBQVJDSDY0X0VYVFJBX1RVTkVfQ0hFQVBfU0hJRlRfRVhURU5ECisg ICB8IEFBUkNINjRfRVhUUkFfVFVORV9DU0VfU1ZFX1ZMX0NPTlNUQU5UUworICAgfCBBQVJD SDY0X0VYVFJBX1RVTkVfVVNFX05FV19WRUNUT1JfQ09TVFMKKyAgIHwgQUFSQ0g2NF9FWFRS QV9UVU5FX01BVENIRURfVkVDVE9SX1RIUk9VR0hQVVQpLAkvKiB0dW5lX2ZsYWdzLiAgKi8K KyAgJmdlbmVyaWNfcHJlZmV0Y2hfdHVuZQorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCB0 dW5lX3BhcmFtcyBhNjRmeF90dW5pbmdzID0KIHsKICAgJmE2NGZ4X2V4dHJhX2Nvc3RzLApA QCAtMTUzMTcsNyArMTU1MzQsOCBAQCBmcmFjdGlvbmFsX2Nvc3QKIGFhcmNoNjRfdmVjX29w X2NvdW50OjpyZW5hbWVfY3ljbGVzX3Blcl9pdGVyICgpIGNvbnN0CiB7CiAgIGlmIChzdmVf aXNzdWVfaW5mbyAoKSA9PSAmbmVvdmVyc2U1MTJ0dmJfc3ZlX2lzc3VlX2luZm8KLSAgICAg IHx8IHN2ZV9pc3N1ZV9pbmZvICgpID09ICZuZW92ZXJzZW4yX3N2ZV9pc3N1ZV9pbmZvKQor ICAgICAgfHwgc3ZlX2lzc3VlX2luZm8gKCkgPT0gJm5lb3ZlcnNlbjJfc3ZlX2lzc3VlX2lu Zm8KKyAgICAgIHx8IHN2ZV9pc3N1ZV9pbmZvICgpID09ICZkZW1ldGVyX3N2ZV9pc3N1ZV9p bmZvKQogICAgIC8qICsgMSBmb3IgYW4gYWRkaXRpb24uICBXZSd2ZSBhbHJlYWR5IGNvdW50 ZWQgYSBnZW5lcmFsIG9wIGZvciBlYWNoCiAgICAgICAgc3RvcmUsIHNvIHdlIGRvbid0IG5l ZWQgdG8gYWNjb3VudCBmb3Igc3RvcmVzIHNlcGFyYXRlbHkuICBUaGUgYnJhbmNoCiAgICAg ICAgcmVhZHMgbm8gcmVnaXN0ZXJzIGFuZCBzbyBkb2VzIG5vdCBuZWVkIHRvIGJlIGNvdW50 ZWQgZWl0aGVyLgo= --------------KqxRQBtsw0MgWTkGHMoupaGw--