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 DC60E3858D1E for ; Wed, 16 Mar 2022 14:57:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DC60E3858D1E 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 8DCBE152B; Wed, 16 Mar 2022 07:57:03 -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 01A1E3F7D7; Wed, 16 Mar 2022 07:57:02 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------8YIptQSdEL6VP4RjVJzAduL2" Message-ID: Date: Wed, 16 Mar 2022 14:56:57 +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: Kyrylo Tkachov , Richard Sandiford From: "Andre Vieira (lists)" Subject: [aarch64] Update reg-costs to differentiate between memmove costs X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, BODY_8BITS, GIT_PATCH_0, KAM_DMARC_STATUS, 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:57:06 -0000 This is a multi-part message in MIME format. --------------8YIptQSdEL6VP4RjVJzAduL2 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit This patch introduces a struct to differentiate between different memmove costs to enable a better modeling of memory operations. These have been modelled for -mcpu/-mtune=neoverse-v1/neoverse-n1/neoverse-n2/neoverse-512tvb, for all other tunings all entries are equal to the old single memmove cost to ensure the behaviour remains the same. 2022-03-16  Tamar Christina                         Andre Vieira gcc/ChangeLog:         * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct.         (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost.         * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all tunings         to use new cpu_memmov_cost struct. --------------8YIptQSdEL6VP4RjVJzAduL2 Content-Type: text/plain; charset=UTF-8; name="update_reg_costs.patch" Content-Disposition: attachment; filename="update_reg_costs.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXByb3Rvcy5oIGIvZ2Nj L2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtcHJvdG9zLmgKaW5kZXggZjJmZGUzNWM2ZWI0OTg5 YWY4NzM2ZGI4ZmFkMDA0MTcxYzE2MDI4Mi4uNTE5MGViOGI5NmVhOWFmODA5YTI4NDcwOTA1 YjhiODVlZTcyMGIwOSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQt cHJvdG9zLmgKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtcHJvdG9zLmgKQEAg LTUwOCw2ICs1MDgsMTggQEAgc3RydWN0IGNwdV9wcmVmZXRjaF90dW5lCiAgIGNvbnN0IGlu dCBkZWZhdWx0X29wdF9sZXZlbDsKIH07CiAKKy8qIE1vZGVsIHRoZSBjb3N0cyBmb3IgbG9h ZHMvc3RvcmVzIGZvciByZWxvYWQgc28gdGhhdCBpdCBjYW4gZG8gbW9yZQorICAgYWNjdXJh dGUgc3BpbGwgaGV1cmlzdGljcy4gICovCitzdHJ1Y3QgY3B1X21lbW1vdl9jb3N0Cit7Cisg IGludCBsb2FkX2ludDsKKyAgaW50IHN0b3JlX2ludDsKKyAgaW50IGxvYWRfZnA7CisgIGlu dCBzdG9yZV9mcDsKKyAgaW50IGxvYWRfcHJlZDsKKyAgaW50IHN0b3JlX3ByZWQ7Cit9Owor CiBzdHJ1Y3QgdHVuZV9wYXJhbXMKIHsKICAgY29uc3Qgc3RydWN0IGNwdV9jb3N0X3RhYmxl ICppbnNuX2V4dHJhX2Nvc3Q7CkBAIC01MjAsNyArNTMyLDggQEAgc3RydWN0IHR1bmVfcGFy YW1zCiAgICAgIG9yIFNWRV9OT1RfSU1QTEVNRU5URUQgaWYgbm90IGFwcGxpY2FibGUuICBP bmx5IHVzZWQgZm9yIHR1bmluZwogICAgICBkZWNpc2lvbnMsIGRvZXMgbm90IGRpc2FibGUg VkxBIHZlY3Rvcml6YXRpb24uICAqLwogICB1bnNpZ25lZCBpbnQgc3ZlX3dpZHRoOwotICBp bnQgbWVtbW92X2Nvc3Q7CisgIC8qIFN0cnVjdHVyZSB1c2VkIGJ5IHJlbG9hZCB0byBjb3N0 IHNwaWxscy4gICovCisgIHN0cnVjdCBjcHVfbWVtbW92X2Nvc3QgbWVtbW92X2Nvc3Q7CiAg IGludCBpc3N1ZV9yYXRlOwogICB1bnNpZ25lZCBpbnQgZnVzaWJsZV9vcHM7CiAgIGNvbnN0 IGNoYXIgKmZ1bmN0aW9uX2FsaWduOwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0 L2FhcmNoNjQuY2MgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5jYwppbmRleCA5YTk0 ZjNhMzBiMGYxYWNjM2M5YjhhMGUzZDcwM2U2MDc4MGQwY2JjLi4zZmM1ZTBiZDNkM2YzOWY5 OWIwYzhmZmI5MzU3NjAzYmMwOTk4NTE1IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNo NjQvYWFyY2g2NC5jYworKysgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5jYwpAQCAt MTI5MSw3ICsxMjkxLDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHVuZV9wYXJhbXMgZ2Vu ZXJpY190dW5pbmdzID0KICAgJmdlbmVyaWNfYnJhbmNoX2Nvc3QsCiAgICZnZW5lcmljX2Fw cHJveF9tb2RlcywKICAgU1ZFX05PVF9JTVBMRU1FTlRFRCwgLyogc3ZlX3dpZHRoICAqLwot ICA0LCAvKiBtZW1tb3ZfY29zdCAgKi8KKyAgeyA0LCAvKiBsb2FkX2ludC4gICovCisgICAg NCwgLyogc3RvcmVfaW50LiAgKi8KKyAgICA0LCAvKiBsb2FkX2ZwLiAgKi8KKyAgICA0LCAv KiBzdG9yZV9mcC4gICovCisgICAgNCwgLyogbG9hZF9wcmVkLiAgKi8KKyAgICA0IC8qIHN0 b3JlX3ByZWQuICAqLworICB9LCAvKiBtZW1tb3ZfY29zdC4gICovCiAgIDIsIC8qIGlzc3Vl X3JhdGUgICovCiAgIChBQVJDSDY0X0ZVU0VfQUVTX0FFU01DIHwgQUFSQ0g2NF9GVVNFX0NN UF9CUkFOQ0gpLCAvKiBmdXNpYmxlX29wcyAgKi8KICAgIjE2OjEyIiwJLyogZnVuY3Rpb25f YWxpZ24uICAqLwpAQCAtMTMyMCw3ICsxMzI2LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dHVuZV9wYXJhbXMgY29ydGV4YTM1X3R1bmluZ3MgPQogICAmZ2VuZXJpY19icmFuY2hfY29z dCwKICAgJmdlbmVyaWNfYXBwcm94X21vZGVzLAogICBTVkVfTk9UX0lNUExFTUVOVEVELCAv KiBzdmVfd2lkdGggICovCi0gIDQsIC8qIG1lbW1vdl9jb3N0ICAqLworICB7IDQsIC8qIGxv YWRfaW50LiAgKi8KKyAgICA0LCAvKiBzdG9yZV9pbnQuICAqLworICAgIDQsIC8qIGxvYWRf ZnAuICAqLworICAgIDQsIC8qIHN0b3JlX2ZwLiAgKi8KKyAgICA0LCAvKiBsb2FkX3ByZWQu ICAqLworICAgIDQgLyogc3RvcmVfcHJlZC4gICovCisgIH0sIC8qIG1lbW1vdl9jb3N0LiAg Ki8KICAgMSwgLyogaXNzdWVfcmF0ZSAgKi8KICAgKEFBUkNINjRfRlVTRV9BRVNfQUVTTUMg fCBBQVJDSDY0X0ZVU0VfTU9WX01PVksgfCBBQVJDSDY0X0ZVU0VfQURSUF9BREQKICAgIHwg QUFSQ0g2NF9GVVNFX01PVktfTU9WSyB8IEFBUkNINjRfRlVTRV9BRFJQX0xEUiksIC8qIGZ1 c2libGVfb3BzICAqLwpAQCAtMTM0Nyw3ICsxMzU5LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgdHVuZV9wYXJhbXMgY29ydGV4YTUzX3R1bmluZ3MgPQogICAmZ2VuZXJpY19icmFuY2hf Y29zdCwKICAgJmdlbmVyaWNfYXBwcm94X21vZGVzLAogICBTVkVfTk9UX0lNUExFTUVOVEVE LCAvKiBzdmVfd2lkdGggICovCi0gIDQsIC8qIG1lbW1vdl9jb3N0ICAqLworICB7IDQsIC8q IGxvYWRfaW50LiAgKi8KKyAgICA0LCAvKiBzdG9yZV9pbnQuICAqLworICAgIDQsIC8qIGxv YWRfZnAuICAqLworICAgIDQsIC8qIHN0b3JlX2ZwLiAgKi8KKyAgICA0LCAvKiBsb2FkX3By ZWQuICAqLworICAgIDQgLyogc3RvcmVfcHJlZC4gICovCisgIH0sIC8qIG1lbW1vdl9jb3N0 LiAgKi8KICAgMiwgLyogaXNzdWVfcmF0ZSAgKi8KICAgKEFBUkNINjRfRlVTRV9BRVNfQUVT TUMgfCBBQVJDSDY0X0ZVU0VfTU9WX01PVksgfCBBQVJDSDY0X0ZVU0VfQURSUF9BREQKICAg IHwgQUFSQ0g2NF9GVVNFX01PVktfTU9WSyB8IEFBUkNINjRfRlVTRV9BRFJQX0xEUiksIC8q IGZ1c2libGVfb3BzICAqLwpAQCAtMTM3NCw3ICsxMzkyLDEzIEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgdHVuZV9wYXJhbXMgY29ydGV4YTU3X3R1bmluZ3MgPQogICAmZ2VuZXJpY19icmFu Y2hfY29zdCwKICAgJmdlbmVyaWNfYXBwcm94X21vZGVzLAogICBTVkVfTk9UX0lNUExFTUVO VEVELCAvKiBzdmVfd2lkdGggICovCi0gIDQsIC8qIG1lbW1vdl9jb3N0ICAqLworICB7IDQs IC8qIGxvYWRfaW50LiAgKi8KKyAgICA0LCAvKiBzdG9yZV9pbnQuICAqLworICAgIDQsIC8q IGxvYWRfZnAuICAqLworICAgIDQsIC8qIHN0b3JlX2ZwLiAgKi8KKyAgICA0LCAvKiBsb2Fk X3ByZWQuICAqLworICAgIDQgLyogc3RvcmVfcHJlZC4gICovCisgIH0sIC8qIG1lbW1vdl9j b3N0LiAgKi8KICAgMywgLyogaXNzdWVfcmF0ZSAgKi8KICAgKEFBUkNINjRfRlVTRV9BRVNf QUVTTUMgfCBBQVJDSDY0X0ZVU0VfTU9WX01PVksgfCBBQVJDSDY0X0ZVU0VfQURSUF9BREQK ICAgIHwgQUFSQ0g2NF9GVVNFX01PVktfTU9WSyksIC8qIGZ1c2libGVfb3BzICAqLwpAQCAt MTQwMSw3ICsxNDI1LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHVuZV9wYXJhbXMgY29y dGV4YTcyX3R1bmluZ3MgPQogICAmZ2VuZXJpY19icmFuY2hfY29zdCwKICAgJmdlbmVyaWNf YXBwcm94X21vZGVzLAogICBTVkVfTk9UX0lNUExFTUVOVEVELCAvKiBzdmVfd2lkdGggICov Ci0gIDQsIC8qIG1lbW1vdl9jb3N0ICAqLworICB7IDQsIC8qIGxvYWRfaW50LiAgKi8KKyAg ICA0LCAvKiBzdG9yZV9pbnQuICAqLworICAgIDQsIC8qIGxvYWRfZnAuICAqLworICAgIDQs IC8qIHN0b3JlX2ZwLiAgKi8KKyAgICA0LCAvKiBsb2FkX3ByZWQuICAqLworICAgIDQgLyog c3RvcmVfcHJlZC4gICovCisgIH0sIC8qIG1lbW1vdl9jb3N0LiAgKi8KICAgMywgLyogaXNz dWVfcmF0ZSAgKi8KICAgKEFBUkNINjRfRlVTRV9BRVNfQUVTTUMgfCBBQVJDSDY0X0ZVU0Vf TU9WX01PVksgfCBBQVJDSDY0X0ZVU0VfQURSUF9BREQKICAgIHwgQUFSQ0g2NF9GVVNFX01P VktfTU9WSyksIC8qIGZ1c2libGVfb3BzICAqLwpAQCAtMTQyOCw3ICsxNDU4LDEzIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgdHVuZV9wYXJhbXMgY29ydGV4YTczX3R1bmluZ3MgPQogICAm Z2VuZXJpY19icmFuY2hfY29zdCwKICAgJmdlbmVyaWNfYXBwcm94X21vZGVzLAogICBTVkVf Tk9UX0lNUExFTUVOVEVELCAvKiBzdmVfd2lkdGggICovCi0gIDQsIC8qIG1lbW1vdl9jb3N0 LiAgKi8KKyAgeyA0LCAvKiBsb2FkX2ludC4gICovCisgICAgNCwgLyogc3RvcmVfaW50LiAg Ki8KKyAgICA0LCAvKiBsb2FkX2ZwLiAgKi8KKyAgICA0LCAvKiBzdG9yZV9mcC4gICovCisg ICAgNCwgLyogbG9hZF9wcmVkLiAgKi8KKyAgICA0IC8qIHN0b3JlX3ByZWQuICAqLworICB9 LCAvKiBtZW1tb3ZfY29zdC4gICovCiAgIDIsIC8qIGlzc3VlX3JhdGUuICAqLwogICAoQUFS Q0g2NF9GVVNFX0FFU19BRVNNQyB8IEFBUkNINjRfRlVTRV9NT1ZfTU9WSyB8IEFBUkNINjRf RlVTRV9BRFJQX0FERAogICAgfCBBQVJDSDY0X0ZVU0VfTU9WS19NT1ZLIHwgQUFSQ0g2NF9G VVNFX0FEUlBfTERSKSwgLyogZnVzaWJsZV9vcHMgICovCkBAIC0xNDU3LDcgKzE0OTMsMTMg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0dW5lX3BhcmFtcyBleHlub3NtMV90dW5pbmdzID0K ICAgJmdlbmVyaWNfYnJhbmNoX2Nvc3QsCiAgICZleHlub3NtMV9hcHByb3hfbW9kZXMsCiAg IFNWRV9OT1RfSU1QTEVNRU5URUQsIC8qIHN2ZV93aWR0aCAgKi8KLSAgNCwJLyogbWVtbW92 X2Nvc3QgICovCisgIHsgNCwgLyogbG9hZF9pbnQuICAqLworICAgIDQsIC8qIHN0b3JlX2lu dC4gICovCisgICAgNCwgLyogbG9hZF9mcC4gICovCisgICAgNCwgLyogc3RvcmVfZnAuICAq LworICAgIDQsIC8qIGxvYWRfcHJlZC4gICovCisgICAgNCAvKiBzdG9yZV9wcmVkLiAgKi8K KyAgfSwgLyogbWVtbW92X2Nvc3QuICAqLwogICAzLAkvKiBpc3N1ZV9yYXRlICAqLwogICAo QUFSQ0g2NF9GVVNFX0FFU19BRVNNQyksIC8qIGZ1c2libGVfb3BzICAqLwogICAiNCIsCS8q IGZ1bmN0aW9uX2FsaWduLiAgKi8KQEAgLTE0ODMsNyArMTUyNSwxMyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHR1bmVfcGFyYW1zIHRodW5kZXJ4dDg4X3R1bmluZ3MgPQogICAmZ2VuZXJp Y19icmFuY2hfY29zdCwKICAgJmdlbmVyaWNfYXBwcm94X21vZGVzLAogICBTVkVfTk9UX0lN UExFTUVOVEVELCAvKiBzdmVfd2lkdGggICovCi0gIDYsIC8qIG1lbW1vdl9jb3N0ICAqLwor ICB7IDYsIC8qIGxvYWRfaW50LiAgKi8KKyAgICA2LCAvKiBzdG9yZV9pbnQuICAqLworICAg IDYsIC8qIGxvYWRfZnAuICAqLworICAgIDYsIC8qIHN0b3JlX2ZwLiAgKi8KKyAgICA2LCAv KiBsb2FkX3ByZWQuICAqLworICAgIDYgLyogc3RvcmVfcHJlZC4gICovCisgIH0sIC8qIG1l bW1vdl9jb3N0LiAgKi8KICAgMiwgLyogaXNzdWVfcmF0ZSAgKi8KICAgQUFSQ0g2NF9GVVNF X0FMVV9CUkFOQ0gsIC8qIGZ1c2libGVfb3BzICAqLwogICAiOCIsCS8qIGZ1bmN0aW9uX2Fs aWduLiAgKi8KQEAgLTE1MDksNyArMTU1NywxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHR1 bmVfcGFyYW1zIHRodW5kZXJ4X3R1bmluZ3MgPQogICAmZ2VuZXJpY19icmFuY2hfY29zdCwK ICAgJmdlbmVyaWNfYXBwcm94X21vZGVzLAogICBTVkVfTk9UX0lNUExFTUVOVEVELCAvKiBz dmVfd2lkdGggICovCi0gIDYsIC8qIG1lbW1vdl9jb3N0ICAqLworICB7IDYsIC8qIGxvYWRf aW50LiAgKi8KKyAgICA2LCAvKiBzdG9yZV9pbnQuICAqLworICAgIDYsIC8qIGxvYWRfZnAu ICAqLworICAgIDYsIC8qIHN0b3JlX2ZwLiAgKi8KKyAgICA2LCAvKiBsb2FkX3ByZWQuICAq LworICAgIDYgLyogc3RvcmVfcHJlZC4gICovCisgIH0sIC8qIG1lbW1vdl9jb3N0LiAgKi8K ICAgMiwgLyogaXNzdWVfcmF0ZSAgKi8KICAgQUFSQ0g2NF9GVVNFX0FMVV9CUkFOQ0gsIC8q IGZ1c2libGVfb3BzICAqLwogICAiOCIsCS8qIGZ1bmN0aW9uX2FsaWduLiAgKi8KQEAgLTE1 MzYsNyArMTU5MCwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHR1bmVfcGFyYW1zIHRzdjEx MF90dW5pbmdzID0KICAgJmdlbmVyaWNfYnJhbmNoX2Nvc3QsCiAgICZnZW5lcmljX2FwcHJv eF9tb2RlcywKICAgU1ZFX05PVF9JTVBMRU1FTlRFRCwgLyogc3ZlX3dpZHRoICAqLwotICA0 LCAgICAvKiBtZW1tb3ZfY29zdCAgKi8KKyAgeyA0LCAvKiBsb2FkX2ludC4gICovCisgICAg NCwgLyogc3RvcmVfaW50LiAgKi8KKyAgICA0LCAvKiBsb2FkX2ZwLiAgKi8KKyAgICA0LCAv KiBzdG9yZV9mcC4gICovCisgICAgNCwgLyogbG9hZF9wcmVkLiAgKi8KKyAgICA0IC8qIHN0 b3JlX3ByZWQuICAqLworICB9LCAvKiBtZW1tb3ZfY29zdC4gICovCiAgIDQsICAgIC8qIGlz c3VlX3JhdGUgICovCiAgIChBQVJDSDY0X0ZVU0VfQUVTX0FFU01DIHwgQUFSQ0g2NF9GVVNF X0FMVV9CUkFOQ0gKICAgIHwgQUFSQ0g2NF9GVVNFX0FMVV9DQlopLCAvKiBmdXNpYmxlX29w cyAgKi8KQEAgLTE1NjMsNyArMTYyMywxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHR1bmVf cGFyYW1zIHhnZW5lMV90dW5pbmdzID0KICAgJmdlbmVyaWNfYnJhbmNoX2Nvc3QsCiAgICZ4 Z2VuZTFfYXBwcm94X21vZGVzLAogICBTVkVfTk9UX0lNUExFTUVOVEVELCAvKiBzdmVfd2lk dGggICovCi0gIDYsIC8qIG1lbW1vdl9jb3N0ICAqLworICB7IDYsIC8qIGxvYWRfaW50LiAg Ki8KKyAgICA2LCAvKiBzdG9yZV9pbnQuICAqLworICAgIDYsIC8qIGxvYWRfZnAuICAqLwor ICAgIDYsIC8qIHN0b3JlX2ZwLiAgKi8KKyAgICA2LCAvKiBsb2FkX3ByZWQuICAqLworICAg IDYgLyogc3RvcmVfcHJlZC4gICovCisgIH0sIC8qIG1lbW1vdl9jb3N0LiAgKi8KICAgNCwg LyogaXNzdWVfcmF0ZSAgKi8KICAgQUFSQ0g2NF9GVVNFX05PVEhJTkcsIC8qIGZ1c2libGVf b3BzICAqLwogICAiMTYiLAkvKiBmdW5jdGlvbl9hbGlnbi4gICovCkBAIC0xNTg5LDcgKzE2 NTUsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0dW5lX3BhcmFtcyBlbWFnX3R1bmluZ3Mg PQogICAmZ2VuZXJpY19icmFuY2hfY29zdCwKICAgJnhnZW5lMV9hcHByb3hfbW9kZXMsCiAg IFNWRV9OT1RfSU1QTEVNRU5URUQsCi0gIDYsIC8qIG1lbW1vdl9jb3N0ICAqLworICB7IDYs IC8qIGxvYWRfaW50LiAgKi8KKyAgICA2LCAvKiBzdG9yZV9pbnQuICAqLworICAgIDYsIC8q IGxvYWRfZnAuICAqLworICAgIDYsIC8qIHN0b3JlX2ZwLiAgKi8KKyAgICA2LCAvKiBsb2Fk X3ByZWQuICAqLworICAgIDYgLyogc3RvcmVfcHJlZC4gICovCisgIH0sIC8qIG1lbW1vdl9j b3N0LiAgKi8KICAgNCwgLyogaXNzdWVfcmF0ZSAgKi8KICAgQUFSQ0g2NF9GVVNFX05PVEhJ TkcsIC8qIGZ1c2libGVfb3BzICAqLwogICAiMTYiLAkvKiBmdW5jdGlvbl9hbGlnbi4gICov CkBAIC0xNjE1LDcgKzE2ODcsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0dW5lX3BhcmFt cyBxZGYyNHh4X3R1bmluZ3MgPQogICAmZ2VuZXJpY19icmFuY2hfY29zdCwKICAgJmdlbmVy aWNfYXBwcm94X21vZGVzLAogICBTVkVfTk9UX0lNUExFTUVOVEVELCAvKiBzdmVfd2lkdGgg ICovCi0gIDQsIC8qIG1lbW1vdl9jb3N0ICAqLworICB7IDQsIC8qIGxvYWRfaW50LiAgKi8K KyAgICA0LCAvKiBzdG9yZV9pbnQuICAqLworICAgIDQsIC8qIGxvYWRfZnAuICAqLworICAg IDQsIC8qIHN0b3JlX2ZwLiAgKi8KKyAgICA0LCAvKiBsb2FkX3ByZWQuICAqLworICAgIDQg Lyogc3RvcmVfcHJlZC4gICovCisgIH0sIC8qIG1lbW1vdl9jb3N0LiAgKi8KICAgNCwgLyog aXNzdWVfcmF0ZSAgKi8KICAgKEFBUkNINjRfRlVTRV9NT1ZfTU9WSyB8IEFBUkNINjRfRlVT RV9BRFJQX0FERAogICAgfCBBQVJDSDY0X0ZVU0VfTU9WS19NT1ZLKSwgLyogZnVzZWFibGVf b3BzICAqLwpAQCAtMTY0NCw3ICsxNzIyLDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHVu ZV9wYXJhbXMgc2FwaGlyYV90dW5pbmdzID0KICAgJmdlbmVyaWNfYnJhbmNoX2Nvc3QsCiAg ICZnZW5lcmljX2FwcHJveF9tb2RlcywKICAgU1ZFX05PVF9JTVBMRU1FTlRFRCwgLyogc3Zl X3dpZHRoICAqLwotICA0LCAvKiBtZW1tb3ZfY29zdCAgKi8KKyAgeyA0LCAvKiBsb2FkX2lu dC4gICovCisgICAgNCwgLyogc3RvcmVfaW50LiAgKi8KKyAgICA0LCAvKiBsb2FkX2ZwLiAg Ki8KKyAgICA0LCAvKiBzdG9yZV9mcC4gICovCisgICAgNCwgLyogbG9hZF9wcmVkLiAgKi8K KyAgICA0IC8qIHN0b3JlX3ByZWQuICAqLworICB9LCAvKiBtZW1tb3ZfY29zdC4gICovCiAg IDQsIC8qIGlzc3VlX3JhdGUgICovCiAgIChBQVJDSDY0X0ZVU0VfTU9WX01PVksgfCBBQVJD SDY0X0ZVU0VfQURSUF9BREQKICAgIHwgQUFSQ0g2NF9GVVNFX01PVktfTU9WSyksIC8qIGZ1 c2VhYmxlX29wcyAgKi8KQEAgLTE2NzEsNyArMTc1NSwxMyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHR1bmVfcGFyYW1zIHRodW5kZXJ4MnQ5OV90dW5pbmdzID0KICAgJmdlbmVyaWNfYnJh bmNoX2Nvc3QsCiAgICZnZW5lcmljX2FwcHJveF9tb2RlcywKICAgU1ZFX05PVF9JTVBMRU1F TlRFRCwgLyogc3ZlX3dpZHRoICAqLwotICA0LCAvKiBtZW1tb3ZfY29zdC4gICovCisgIHsg NCwgLyogbG9hZF9pbnQuICAqLworICAgIDQsIC8qIHN0b3JlX2ludC4gICovCisgICAgNCwg LyogbG9hZF9mcC4gICovCisgICAgNCwgLyogc3RvcmVfZnAuICAqLworICAgIDQsIC8qIGxv YWRfcHJlZC4gICovCisgICAgNCAvKiBzdG9yZV9wcmVkLiAgKi8KKyAgfSwgLyogbWVtbW92 X2Nvc3QuICAqLwogICA0LCAvKiBpc3N1ZV9yYXRlLiAgKi8KICAgKEFBUkNINjRfRlVTRV9B TFVfQlJBTkNIIHwgQUFSQ0g2NF9GVVNFX0FFU19BRVNNQwogICAgfCBBQVJDSDY0X0ZVU0Vf QUxVX0NCWiksIC8qIGZ1c2libGVfb3BzICAqLwpAQCAtMTY5OCw3ICsxNzg4LDEzIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgdHVuZV9wYXJhbXMgdGh1bmRlcngzdDExMF90dW5pbmdzID0K ICAgJmdlbmVyaWNfYnJhbmNoX2Nvc3QsCiAgICZnZW5lcmljX2FwcHJveF9tb2RlcywKICAg U1ZFX05PVF9JTVBMRU1FTlRFRCwgLyogc3ZlX3dpZHRoICAqLwotICA0LCAvKiBtZW1tb3Zf Y29zdC4gICovCisgIHsgNCwgLyogbG9hZF9pbnQuICAqLworICAgIDQsIC8qIHN0b3JlX2lu dC4gICovCisgICAgNCwgLyogbG9hZF9mcC4gICovCisgICAgNCwgLyogc3RvcmVfZnAuICAq LworICAgIDQsIC8qIGxvYWRfcHJlZC4gICovCisgICAgNCAvKiBzdG9yZV9wcmVkLiAgKi8K KyAgfSwgLyogbWVtbW92X2Nvc3QuICAqLwogICA2LCAvKiBpc3N1ZV9yYXRlLiAgKi8KICAg KEFBUkNINjRfRlVTRV9BTFVfQlJBTkNIIHwgQUFSQ0g2NF9GVVNFX0FFU19BRVNNQwogICAg fCBBQVJDSDY0X0ZVU0VfQUxVX0NCWiksIC8qIGZ1c2libGVfb3BzICAqLwpAQCAtMTcyNSw3 ICsxODIxLDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHVuZV9wYXJhbXMgbmVvdmVyc2Vu MV90dW5pbmdzID0KICAgJmdlbmVyaWNfYnJhbmNoX2Nvc3QsCiAgICZnZW5lcmljX2FwcHJv eF9tb2RlcywKICAgU1ZFX05PVF9JTVBMRU1FTlRFRCwgLyogc3ZlX3dpZHRoICAqLwotICA0 LCAvKiBtZW1tb3ZfY29zdCAgKi8KKyAgeyA0LCAvKiBsb2FkX2ludC4gICovCisgICAgMSwg Lyogc3RvcmVfaW50LiAgKi8KKyAgICA1LCAvKiBsb2FkX2ZwLiAgKi8KKyAgICAyLCAvKiBz dG9yZV9mcC4gICovCisgICAgNCwgLyogbG9hZF9wcmVkLiAgKi8KKyAgICA0IC8qIHN0b3Jl X3ByZWQuICAqLworICB9LCAvKiBtZW1tb3ZfY29zdC4gICovCiAgIDMsIC8qIGlzc3VlX3Jh dGUgICovCiAgIChBQVJDSDY0X0ZVU0VfQUVTX0FFU01DIHwgQUFSQ0g2NF9GVVNFX0NNUF9C UkFOQ0gpLCAvKiBmdXNpYmxlX29wcyAgKi8KICAgIjMyOjE2IiwJLyogZnVuY3Rpb25fYWxp Z24uICAqLwpAQCAtMTc1MSw3ICsxODUzLDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHVu ZV9wYXJhbXMgYW1wZXJlMV90dW5pbmdzID0KICAgJmdlbmVyaWNfYnJhbmNoX2Nvc3QsCiAg ICZnZW5lcmljX2FwcHJveF9tb2RlcywKICAgU1ZFX05PVF9JTVBMRU1FTlRFRCwgLyogc3Zl X3dpZHRoICAqLwotICA0LCAvKiBtZW1tb3ZfY29zdCAgKi8KKyAgeyA0LCAvKiBsb2FkX2lu dC4gICovCisgICAgNCwgLyogc3RvcmVfaW50LiAgKi8KKyAgICA0LCAvKiBsb2FkX2ZwLiAg Ki8KKyAgICA0LCAvKiBzdG9yZV9mcC4gICovCisgICAgNCwgLyogbG9hZF9wcmVkLiAgKi8K KyAgICA0IC8qIHN0b3JlX3ByZWQuICAqLworICB9LCAvKiBtZW1tb3ZfY29zdC4gICovCiAg IDQsIC8qIGlzc3VlX3JhdGUgICovCiAgIChBQVJDSDY0X0ZVU0VfQURSUF9BREQgfCBBQVJD SDY0X0ZVU0VfQUVTX0FFU01DIHwKICAgIEFBUkNINjRfRlVTRV9NT1ZfTU9WSyB8IEFBUkNI NjRfRlVTRV9NT1ZLX01PVksgfApAQCAtMTkyNiw3ICsyMDM0LDEzIEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgdHVuZV9wYXJhbXMgbmVvdmVyc2V2MV90dW5pbmdzID0KICAgJmdlbmVyaWNf YnJhbmNoX2Nvc3QsCiAgICZnZW5lcmljX2FwcHJveF9tb2RlcywKICAgU1ZFXzI1NiwgLyog c3ZlX3dpZHRoICAqLwotICA0LCAvKiBtZW1tb3ZfY29zdCAgKi8KKyAgeyA0LCAvKiBsb2Fk X2ludC4gICovCisgICAgMSwgLyogc3RvcmVfaW50LiAgKi8KKyAgICA2LCAvKiBsb2FkX2Zw LiAgKi8KKyAgICAyLCAvKiBzdG9yZV9mcC4gICovCisgICAgNiwgLyogbG9hZF9wcmVkLiAg Ki8KKyAgICAxIC8qIHN0b3JlX3ByZWQuICAqLworICB9LCAvKiBtZW1tb3ZfY29zdC4gICov CiAgIDMsIC8qIGlzc3VlX3JhdGUgICovCiAgIChBQVJDSDY0X0ZVU0VfQUVTX0FFU01DIHwg QUFSQ0g2NF9GVVNFX0NNUF9CUkFOQ0gpLCAvKiBmdXNpYmxlX29wcyAgKi8KICAgIjMyOjE2 IiwJLyogZnVuY3Rpb25fYWxpZ24uICAqLwpAQCAtMjA1Nyw3ICsyMTcxLDEzIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgdHVuZV9wYXJhbXMgbmVvdmVyc2U1MTJ0dmJfdHVuaW5ncyA9CiAg ICZnZW5lcmljX2JyYW5jaF9jb3N0LAogICAmZ2VuZXJpY19hcHByb3hfbW9kZXMsCiAgIFNW RV8xMjggfCBTVkVfMjU2LCAvKiBzdmVfd2lkdGggICovCi0gIDQsIC8qIG1lbW1vdl9jb3N0 ICAqLworICB7IDQsIC8qIGxvYWRfaW50LiAgKi8KKyAgICAxLCAvKiBzdG9yZV9pbnQuICAq LworICAgIDYsIC8qIGxvYWRfZnAuICAqLworICAgIDIsIC8qIHN0b3JlX2ZwLiAgKi8KKyAg ICA2LCAvKiBsb2FkX3ByZWQuICAqLworICAgIDEgLyogc3RvcmVfcHJlZC4gICovCisgIH0s IC8qIG1lbW1vdl9jb3N0LiAgKi8KICAgMywgLyogaXNzdWVfcmF0ZSAgKi8KICAgKEFBUkNI NjRfRlVTRV9BRVNfQUVTTUMgfCBBQVJDSDY0X0ZVU0VfQ01QX0JSQU5DSCksIC8qIGZ1c2li bGVfb3BzICAqLwogICAiMzI6MTYiLAkvKiBmdW5jdGlvbl9hbGlnbi4gICovCkBAIC0yMDg1 LDcgKzIyMDUsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0dW5lX3BhcmFtcyBuZW92ZXJz ZW4yX3R1bmluZ3MgPQogICAmZ2VuZXJpY19icmFuY2hfY29zdCwKICAgJmdlbmVyaWNfYXBw cm94X21vZGVzLAogICBTVkVfMTI4LCAvKiBzdmVfd2lkdGggICovCi0gIDQsIC8qIG1lbW1v dl9jb3N0ICAqLworICB7IDQsIC8qIGxvYWRfaW50LiAgKi8KKyAgICAxLCAvKiBzdG9yZV9p bnQuICAqLworICAgIDYsIC8qIGxvYWRfZnAuICAqLworICAgIDIsIC8qIHN0b3JlX2ZwLiAg Ki8KKyAgICA2LCAvKiBsb2FkX3ByZWQuICAqLworICAgIDEgLyogc3RvcmVfcHJlZC4gICov CisgIH0sIC8qIG1lbW1vdl9jb3N0LiAgKi8KICAgMywgLyogaXNzdWVfcmF0ZSAgKi8KICAg KEFBUkNINjRfRlVTRV9BRVNfQUVTTUMgfCBBQVJDSDY0X0ZVU0VfQ01QX0JSQU5DSCksIC8q IGZ1c2libGVfb3BzICAqLwogICAiMzI6MTYiLAkvKiBmdW5jdGlvbl9hbGlnbi4gICovCkBA IC0yMTExLDcgKzIyMzcsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0dW5lX3BhcmFtcyBh NjRmeF90dW5pbmdzID0KICAgJmdlbmVyaWNfYnJhbmNoX2Nvc3QsCiAgICZnZW5lcmljX2Fw cHJveF9tb2RlcywKICAgU1ZFXzUxMiwgLyogc3ZlX3dpZHRoICAqLwotICA0LCAvKiBtZW1t b3ZfY29zdCAgKi8KKyAgeyA0LCAvKiBsb2FkX2ludC4gICovCisgICAgNCwgLyogc3RvcmVf aW50LiAgKi8KKyAgICA0LCAvKiBsb2FkX2ZwLiAgKi8KKyAgICA0LCAvKiBzdG9yZV9mcC4g ICovCisgICAgNCwgLyogbG9hZF9wcmVkLiAgKi8KKyAgICA0IC8qIHN0b3JlX3ByZWQuICAq LworICB9LCAvKiBtZW1tb3ZfY29zdC4gICovCiAgIDcsIC8qIGlzc3VlX3JhdGUgICovCiAg IChBQVJDSDY0X0ZVU0VfQUVTX0FFU01DIHwgQUFSQ0g2NF9GVVNFX0NNUF9CUkFOQ0gpLCAv KiBmdXNpYmxlX29wcyAgKi8KICAgIjMyIiwJLyogZnVuY3Rpb25fYWxpZ24uICAqLwpAQCAt MTQ1MDEsMTIgKzE0NjMzLDQxIEBAIGFhcmNoNjRfcmVnaXN0ZXJfbW92ZV9jb3N0IChtYWNo aW5lX21vZGUgbW9kZSwKICAgcmV0dXJuIHJlZ21vdmVfY29zdC0+RlAyRlA7CiB9CiAKKy8q IEltcGxlbWVudHMgVEFSR0VUX01FTU9SWV9NT1ZFX0NPU1QuICAqLwogc3RhdGljIGludAot YWFyY2g2NF9tZW1vcnlfbW92ZV9jb3N0IChtYWNoaW5lX21vZGUgbW9kZSBBVFRSSUJVVEVf VU5VU0VELAotCQkJICByZWdfY2xhc3NfdCByY2xhc3MgQVRUUklCVVRFX1VOVVNFRCwKLQkJ CSAgYm9vbCBpbiBBVFRSSUJVVEVfVU5VU0VEKQorYWFyY2g2NF9tZW1vcnlfbW92ZV9jb3N0 IChtYWNoaW5lX21vZGUgbW9kZSwgcmVnX2NsYXNzX3QgcmNsYXNzX2ksIGJvb2wgaW4pCiB7 Ci0gIHJldHVybiBhYXJjaDY0X3R1bmVfcGFyYW1zLm1lbW1vdl9jb3N0OworICBlbnVtIHJl Z19jbGFzcyByY2xhc3MgPSAoZW51bSByZWdfY2xhc3MpIHJjbGFzc19pOworICBzd2l0Y2gg KHJjbGFzcykKKyAgICB7CisgICAgY2FzZSBQUl9MT19SRUdTOgorICAgIGNhc2UgUFJfSElf UkVHUzoKKyAgICBjYXNlIFBSX1JFR1M6CisgICAgICByZXR1cm4gaW4gPyBhYXJjaDY0X3R1 bmVfcGFyYW1zLm1lbW1vdl9jb3N0LmxvYWRfcHJlZAorCQk6IGFhcmNoNjRfdHVuZV9wYXJh bXMubWVtbW92X2Nvc3Quc3RvcmVfcHJlZDsKKyAgICBjYXNlIFBPSU5URVJfQU5EX0ZQX1JF R1M6CisgICAgY2FzZSBBTExfUkVHUzoKKyAgICAgIHsKKwlpZiAoR0VUX01PREVfQ0xBU1Mg KG1vZGUpID09IE1PREVfVkVDVE9SX0JPT0wpCisJICByZXR1cm4gaW4gPyBhYXJjaDY0X3R1 bmVfcGFyYW1zLm1lbW1vdl9jb3N0LmxvYWRfcHJlZAorCQkgICAgOiBhYXJjaDY0X3R1bmVf cGFyYW1zLm1lbW1vdl9jb3N0LnN0b3JlX3ByZWQ7CisKKwlpZiAoVkVDVE9SX01PREVfUCAo bW9kZSkgfHwgRkxPQVRfTU9ERV9QIChtb2RlKSkKKwkgIHJldHVybiBpbiA/IGFhcmNoNjRf dHVuZV9wYXJhbXMubWVtbW92X2Nvc3QubG9hZF9mcAorCQkgICAgOiBhYXJjaDY0X3R1bmVf cGFyYW1zLm1lbW1vdl9jb3N0LnN0b3JlX2ZwOworCisJcmV0dXJuIGluID8gYWFyY2g2NF90 dW5lX3BhcmFtcy5tZW1tb3ZfY29zdC5sb2FkX2ludAorCQkgIDogYWFyY2g2NF90dW5lX3Bh cmFtcy5tZW1tb3ZfY29zdC5zdG9yZV9pbnQ7CisgICAgICB9CisgICAgY2FzZSBGUF9MTzhf UkVHUzoKKyAgICBjYXNlIEZQX0xPX1JFR1M6CisgICAgY2FzZSBGUF9SRUdTOgorICAgICAg cmV0dXJuIGluID8gYWFyY2g2NF90dW5lX3BhcmFtcy5tZW1tb3ZfY29zdC5sb2FkX2ZwCisJ CTogYWFyY2g2NF90dW5lX3BhcmFtcy5tZW1tb3ZfY29zdC5zdG9yZV9mcDsKKyAgICBkZWZh dWx0OgorICAgICAgcmV0dXJuIGluID8gYWFyY2g2NF90dW5lX3BhcmFtcy5tZW1tb3ZfY29z dC5sb2FkX2ludAorCQk6IGFhcmNoNjRfdHVuZV9wYXJhbXMubWVtbW92X2Nvc3Quc3RvcmVf aW50OworICAgIH0KIH0KIAogLyogSW1wbGVtZW50IFRBUkdFVF9JTklUX0JVSUxUSU5TLiAg Ki8K --------------8YIptQSdEL6VP4RjVJzAduL2--