From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x436.google.com (mail-pf1-x436.google.com [IPv6:2607:f8b0:4864:20::436]) by sourceware.org (Postfix) with ESMTPS id 664F03858D35 for ; Sun, 25 Jun 2023 13:13:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 664F03858D35 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-668709767b1so1231705b3a.2 for ; Sun, 25 Jun 2023 06:13:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687698821; x=1690290821; h=in-reply-to:from:to:references:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=DIQJWn90Y+eTfy9rOYMdAF8EEZAJrqCC6MaVQ2fq+jQ=; b=nmKXlLcdffpJfDn4IFw8EEdh1MSKIyM5P6AdVxFzkCwRnEJ1EB9w/RfJ99Kn937SOg Y+jfCozqpXyI5/UYC8Oed2pwWkQvZBjCrxVolBz53hv/bTRnRSjvREBIGl2KYHAR2Fso q5BaAwe4BHdiJ4zF3g/1fBtvAYXSGtDqsrWuWKtKjHYnDApGCymd45JV1E4gog9x5gCk IDX1y/7B0oLN8lrSENiIwymfhPQbg/zFzLGWjXZTE8293xa83CEZDvw98bj9qw98Dk3I VusamRYSiHEkZdf6TtVdbWukpKLEISkihiujEaCbWigbdEiHWROW4GUTIo/F0OdzbGQG iNgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687698821; x=1690290821; h=in-reply-to:from:to:references:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=DIQJWn90Y+eTfy9rOYMdAF8EEZAJrqCC6MaVQ2fq+jQ=; b=jo4DuJo+mKPGXluUWOatB7VVSRuA11L7CNfyj7h0+PTEpSYruz+EIHXW0ZJ5ga7JDY B/TDywFzuR0/IjG9B0MFJK3z5cPCGG+sTtH+HedUzcg5a1pwyhr1NidWy91Xa1Bo39XM KpaYd91KaQ02/iccmXhdStYmpUSALRoCSPXLlTNFOggPQaejcujX/fAMo5Nl2qwZMNkU MVmteQOvSK7aaTYRKi8vx2VJD6a6NS3v5hJQF3cDb4zmbkD0/o1ILsmQorQNVzkYxmB0 xOzQndHGUgbZ8Z5/43epV7gUAY/hP2S+Mc+M5H0Np1ehSXwTjEHve7FMhFOj6pnxjF++ gI2w== X-Gm-Message-State: AC+VfDxmZGuXq3Y43SSodtb+Q7SU64mChjPFqRT2i7/CdhqDQeU5fmTs oleX4f2cX0qrGvytZcggOHCGcrC5M0k= X-Google-Smtp-Source: ACHHUZ75wB3paEzgr5ICpCxtZGg9fNCdA5mcQ1L1LscgaJEOTUm6enPctBOX5uvbVvPEKMtUVCQF0g== X-Received: by 2002:a05:6a20:7f82:b0:11a:efaa:eb43 with SMTP id d2-20020a056a207f8200b0011aefaaeb43mr26739587pzj.3.1687698821262; Sun, 25 Jun 2023 06:13:41 -0700 (PDT) Received: from [172.31.0.109] ([136.36.130.248]) by smtp.gmail.com with ESMTPSA id v26-20020aa7809a000000b0062cf75a9e6bsm2255340pff.131.2023.06.25.06.13.38 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 25 Jun 2023 06:13:39 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------zTS0B46YWFsoUpdZUsLfPfSp" Message-ID: <4524bcd7-53ec-b4b7-59ae-19728281d5bc@gmail.com> Date: Sun, 25 Jun 2023 07:13:37 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: [PING][RISCV] [PR target/110201] Fix operand types for various scalar crypto insns Content-Language: en-US References: To: "gcc-patches@gcc.gnu.org" From: Jeff Law In-Reply-To: X-Forwarded-Message-Id: X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------zTS0B46YWFsoUpdZUsLfPfSp Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Ping. With RISCV tag this time. -------- Forwarded Message -------- Subject: [PR target/110201] Fix operand types for various scalar crypto insns Date: Mon, 19 Jun 2023 16:34:28 -0600 From: Jeff Law To: gcc-patches@gcc.gnu.org A handful of the scalar crypto instructions are supposed to take a constant integer argument 0..3 inclusive. A suitable constraint was created and used for this purpose (D03), but the operand's predicate is "register_operand". That's just wrong. This patch adds a new predicate "const_0_3_operand" and fixes the relevant insns to use it. One could argue the constraint is redundant now (and you'd be correct). I wouldn't lose sleep if someone wanted that removed, in which case I'll spin up a V2. The testsuite was broken in a way that made it consistent with the compiler, so the tests passed, when they really should have been issuing errors all along. This patch adjusts the existing tests so that they all expect a diagnostic on the invalid operand usage (including out of range constants). It adds new tests with proper constants, testing the extremes of valid values. OK for the trunk, or should we remove the D03 constraint? Jeff --------------zTS0B46YWFsoUpdZUsLfPfSp Content-Type: text/plain; charset=UTF-8; name="P" Content-Disposition: attachment; filename="P" Content-Transfer-Encoding: base64 CVBSIHRhcmdldC8xMTAyMDEKZ2NjLwoJKiBjb25maWcvcmlzY3YvcHJlZGljYXRlcy5tZCAo Y29uc3RfMF8zX29wZXJhbmQpOiBOZXcgcHJlZGljYXRlLgoJKiBjb25maWcvcmlzY3YvY3J5 cHRvLm1kIChyaXNjdl9hZXMzMmRzaSk6IFVzZSBuZXcgcHJlZGljYXRlLgoJKHJpc2N2X2Fl czMyZHNtaSwgcmlzY3ZfYWVzMzJlc2ksIHJpc2N2YWVzMzJlc21pKTogTGlrZXdpc2UuCgko cmlzY3Zfc200ZWRfPG1vZGU+LCByaXNjdl9zbTRrc188bW9kZSk6IExpa2V3aXNlLgoKZ2Nj L3Rlc3RzdWl0ZQoJKiB0ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96a25kMzIuYzogVmVy aWZ5IGRpYWdub3N0aWNzIGFyZSBpc3N1ZWQKCWZvciBpbnZhbGlkIGJ1aWx0aW4gYXJndW1l bnRzLgoJKiB0ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96a25lMzIuYzogTGlrZXdpc2Uu CgkqIHRlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3prc2VkMzIuYzogTGlrZXdpc2UuCgkq IHRlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3prc2VkNjQuYzogTGlrZXdpc2UuCgkqIHRl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3prbmQzMi0yLmM6IE5ldyB0ZXN0LgoJKiB0ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96a25lMzItMi5jOiBMaWtld2lzZS4KCSogdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvemtzZWQzMi0yLmM6IExpa2V3aXNlLgoJKiB0ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi96a3NlZDY0LTIuYzogTGlrZXdpc2UuCgoKZGlmZiAtLWdp dCBhL2djYy9jb25maWcvcmlzY3YvY3J5cHRvLm1kIGIvZ2NjL2NvbmZpZy9yaXNjdi9jcnlw dG8ubWQKaW5kZXggZTRiN2YwMTkwZGYuLjIxNzNjYWJmY2QwIDEwMDY0NAotLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L2NyeXB0by5tZAorKysgYi9nY2MvY29uZmlnL3Jpc2N2L2NyeXB0by5t ZApAQCAtMTQ4LDcgKzE0OCw3IEBAIChkZWZpbmVfaW5zbiAicmlzY3ZfYWVzMzJkc2kiCiAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCiAg ICAgICAgICh1bnNwZWM6U0kgWyhtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJh bmQiICJyIikKICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJyZWdp c3Rlcl9vcGVyYW5kIiAiciIpCi0gICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6 U0kgMyAicmVnaXN0ZXJfb3BlcmFuZCIgIkQwMyIpXQorICAgICAgICAgICAgICAgICAgICht YXRjaF9vcGVyYW5kOlNJIDMgImNvbnN0XzBfM19vcGVyYW5kIiAiRDAzIildCiAgICAgICAg ICAgICAgICAgICAgVU5TUEVDX0FFU19EU0kpKV0KICAgIlRBUkdFVF9aS05EICYmICFUQVJH RVRfNjRCSVQiCiAgICJhZXMzMmRzaVx0JTAsJTEsJTIsJTMiCkBAIC0xNTgsNyArMTU4LDcg QEAgKGRlZmluZV9pbnNuICJyaXNjdl9hZXMzMmRzbWkiCiAgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCiAgICAgICAgICh1bnNwZWM6U0kg WyhtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKICAgICAgICAg ICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIp Ci0gICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAicmVnaXN0ZXJfb3Bl cmFuZCIgIkQwMyIpXQorICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDMg ImNvbnN0XzBfM19vcGVyYW5kIiAiRDAzIildCiAgICAgICAgICAgICAgICAgICAgVU5TUEVD X0FFU19EU01JKSldCiAgICJUQVJHRVRfWktORCAmJiAhVEFSR0VUXzY0QklUIgogICAiYWVz MzJkc21pXHQlMCwlMSwlMiwlMyIKQEAgLTIxNCw3ICsyMTQsNyBAQCAoZGVmaW5lX2luc24g InJpc2N2X2FlczMyZXNpIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXIiKQogICAgICAgICAodW5zcGVjOlNJIFsobWF0Y2hfb3BlcmFuZDpT SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCiAgICAgICAgICAgICAgICAgICAgKG1hdGNo X29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQotICAgICAgICAgICAgICAg ICAgIChtYXRjaF9vcGVyYW5kOlNJIDMgInJlZ2lzdGVyX29wZXJhbmQiICJEMDMiKV0KKyAg ICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wXzNfb3BlcmFu ZCIgIkQwMyIpXQogICAgICAgICAgICAgICAgICAgIFVOU1BFQ19BRVNfRVNJKSldCiAgICJU QVJHRVRfWktORSAmJiAhVEFSR0VUXzY0QklUIgogICAiYWVzMzJlc2lcdCUwLCUxLCUyLCUz IgpAQCAtMjI0LDcgKzIyNCw3IEBAIChkZWZpbmVfaW5zbiAicmlzY3ZfYWVzMzJlc21pIgog ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQog ICAgICAgICAodW5zcGVjOlNJIFsobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVy YW5kIiAiciIpCiAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAicmVn aXN0ZXJfb3BlcmFuZCIgInIiKQotICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5k OlNJIDMgInJlZ2lzdGVyX29wZXJhbmQiICJEMDMiKV0KKyAgICAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF8wXzNfb3BlcmFuZCIgIkQwMyIpXQogICAgICAg ICAgICAgICAgICAgIFVOU1BFQ19BRVNfRVNNSSkpXQogICAiVEFSR0VUX1pLTkUgJiYgIVRB UkdFVF82NEJJVCIKICAgImFlczMyZXNtaVx0JTAsJTEsJTIsJTMiCkBAIC0zOTQsNyArMzk0 LDcgQEAgKGRlZmluZV9pbnNuICJyaXNjdl9zbTRlZF88bW9kZT4iCiAgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlggMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKICAgICAgICAgKHVuc3Bl YzpYIFsobWF0Y2hfb3BlcmFuZDpYIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKICAgICAg ICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlggMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIi KQotICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAicmVnaXN0ZXJfb3Bl cmFuZCIgIkQwMyIpXQorICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAi Y29uc3RfMF8zX29wZXJhbmQiICJEMDMiKV0KICAgICAgICAgICAgICAgICAgIFVOU1BFQ19T TTRfRUQpKV0KICAgIlRBUkdFVF9aS1NFRCIKICAgInNtNGVkXHQlMCwlMSwlMiwlMyIKQEAg LTQwNCw3ICs0MDQsNyBAQCAoZGVmaW5lX2luc24gInJpc2N2X3NtNGtzXzxtb2RlPiIKICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6WCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQogICAg ICAgICAodW5zcGVjOlggWyhtYXRjaF9vcGVyYW5kOlggMSAicmVnaXN0ZXJfb3BlcmFuZCIg InIiKQogICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6WCAyICJyZWdpc3Rlcl9v cGVyYW5kIiAiciIpCi0gICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAzICJy ZWdpc3Rlcl9vcGVyYW5kIiAiRDAzIildCisgICAgICAgICAgICAgICAgICAobWF0Y2hfb3Bl cmFuZDpTSSAzICJjb25zdF8wXzNfb3BlcmFuZCIgIkQwMyIpXQogICAgICAgICAgICAgICAg ICAgVU5TUEVDX1NNNF9LUykpXQogICAiVEFSR0VUX1pLU0VEIgogICAic200a3NcdCUwLCUx LCUyLCUzIgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9wcmVkaWNhdGVzLm1kIGIv Z2NjL2NvbmZpZy9yaXNjdi9wcmVkaWNhdGVzLm1kCmluZGV4IDA0Y2E2Y2VhYmM3Li43YWVk NzFiNTEyMyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9wcmVkaWNhdGVzLm1kCisr KyBiL2djYy9jb25maWcvcmlzY3YvcHJlZGljYXRlcy5tZApAQCAtNDUsNiArNDUsMTAgQEAg KGRlZmluZV9wcmVkaWNhdGUgImNvbnN0X2Nzcl9vcGVyYW5kIgogICAoYW5kIChtYXRjaF9j b2RlICJjb25zdF9pbnQiKQogICAgICAgIChtYXRjaF90ZXN0ICJJTl9SQU5HRSAoSU5UVkFM IChvcCksIDAsIDMxKSIpKSkKIAorKGRlZmluZV9wcmVkaWNhdGUgImNvbnN0XzBfM19vcGVy YW5kIgorICAoYW5kIChtYXRjaF9jb2RlICJjb25zdF9pbnQiKQorICAgICAgIChtYXRjaF90 ZXN0ICJJTl9SQU5HRSAoSU5UVkFMIChvcCksIDAsIDMpIikpKQorCiAoZGVmaW5lX3ByZWRp Y2F0ZSAiY3NyX29wZXJhbmQiCiAgIChpb3IgKG1hdGNoX29wZXJhbmQgMCAiY29uc3RfY3Ny X29wZXJhbmQiKQogICAgICAgIChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQi KSkpCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemtuZDMy LTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96a25kMzItMi5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mOGU2OGM2ZTU2YgotLS0gL2Rl di9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96a25kMzItMi5j CkBAIC0wLDAgKzEsMjggQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9w dGlvbnMgIi1PMiAtbWFyY2g9cnYzMmdjX3prbmQgLW1hYmk9aWxwMzJkIiB9ICovCisvKiB7 IGRnLXNraXAtaWYgIiIgeyAqLSotKiB9IHsgIi1nIiAiLWZsdG8ifSB9ICovCisKKyNpbmNs dWRlIDxzdGRpbnQtZ2NjLmg+CisKK2ludDMyX3QgZm9vMShpbnQzMl90IHJzMSwgaW50MzJf dCByczIpCit7CisgICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9hZXMzMmRzaShyczEscnMy LDApOworfQorCitpbnQzMl90IGZvbzIoaW50MzJfdCByczEsIGludDMyX3QgcnMyKQorewor ICAgIHJldHVybiBfX2J1aWx0aW5fcmlzY3ZfYWVzMzJkc21pKHJzMSxyczIsMCk7Cit9CisK K2ludDMyX3QgZm9vMyhpbnQzMl90IHJzMSwgaW50MzJfdCByczIpCit7CisgICAgcmV0dXJu IF9fYnVpbHRpbl9yaXNjdl9hZXMzMmRzaShyczEscnMyLDMpOworfQorCitpbnQzMl90IGZv bzQoaW50MzJfdCByczEsIGludDMyX3QgcnMyKQoreworICAgIHJldHVybiBfX2J1aWx0aW5f cmlzY3ZfYWVzMzJkc21pKHJzMSxyczIsMyk7Cit9CisKKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyAiYWVzMzJkc2kiIDIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMgImFlczMyZHNtaSIgMiB9IH0gKi8KZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96a25kMzIuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi96a25kMzIuYwppbmRleCA1ZmNjNjZkYTkwMS4uNzM3MGEy YzE4MTIgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96a25k MzIuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemtuZDMyLmMKQEAg LTYsMTMgKzYsMzAgQEAKIAogaW50MzJfdCBmb28xKGludDMyX3QgcnMxLCBpbnQzMl90IHJz MiwgaW50IGJzKQogewotICAgIHJldHVybiBfX2J1aWx0aW5fcmlzY3ZfYWVzMzJkc2kocnMx LHJzMixicyk7CisgICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9hZXMzMmRzaShyczEscnMy LGJzKTsgLyogeyBkZy1lcnJvciAiaW52YWxpZCBhcmd1bWVudCB0byBidWlsdC1pbiBmdW5j dGlvbiIgfSAqLwogfQogCiBpbnQzMl90IGZvbzIoaW50MzJfdCByczEsIGludDMyX3QgcnMy LCBpbnQgYnMpCiB7Ci0gICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9hZXMzMmRzbWkocnMx LHJzMixicyk7CisgICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9hZXMzMmRzbWkocnMxLHJz Mixicyk7IC8qIHsgZGctZXJyb3IgImludmFsaWQgYXJndW1lbnQgdG8gYnVpbHQtaW4gZnVu Y3Rpb24iIH0gKi8KIH0KIAotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz ICJhZXMzMmRzaSIgMSB9IH0gKi8KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyAiYWVzMzJkc21pIiAxIH0gfSAqLworaW50MzJfdCBmb28zKGludDMyX3QgcnMxLCBp bnQzMl90IHJzMikKK3sKKyAgICByZXR1cm4gX19idWlsdGluX3Jpc2N2X2FlczMyZHNpKHJz MSxyczIsLTEpOyAvKiB7IGRnLWVycm9yICJpbnZhbGlkIGFyZ3VtZW50IHRvIGJ1aWx0LWlu IGZ1bmN0aW9uIiB9ICovCit9CisKK2ludDMyX3QgZm9vNChpbnQzMl90IHJzMSwgaW50MzJf dCByczIpCit7CisgICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9hZXMzMmRzbWkocnMxLHJz MiwtMSk7IC8qIHsgZGctZXJyb3IgImludmFsaWQgYXJndW1lbnQgdG8gYnVpbHQtaW4gZnVu Y3Rpb24iIH0gKi8KK30KKworaW50MzJfdCBmb281KGludDMyX3QgcnMxLCBpbnQzMl90IHJz MikKK3sKKyAgICByZXR1cm4gX19idWlsdGluX3Jpc2N2X2FlczMyZHNpKHJzMSxyczIsNCk7 IC8qIHsgZGctZXJyb3IgImludmFsaWQgYXJndW1lbnQgdG8gYnVpbHQtaW4gZnVuY3Rpb24i IH0gKi8KK30KKworaW50MzJfdCBmb282KGludDMyX3QgcnMxLCBpbnQzMl90IHJzMikKK3sK KyAgICByZXR1cm4gX19idWlsdGluX3Jpc2N2X2FlczMyZHNtaShyczEscnMyLDQpOyAvKiB7 IGRnLWVycm9yICJpbnZhbGlkIGFyZ3VtZW50IHRvIGJ1aWx0LWluIGZ1bmN0aW9uIiB9ICov Cit9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemtuZTMy LTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96a25lMzItMi5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41N2E5YjNmN2QyZQotLS0gL2Rl di9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96a25lMzItMi5j CkBAIC0wLDAgKzEsMjggQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9w dGlvbnMgIi1PMiAtbWFyY2g9cnYzMmdjX3prbmUgLW1hYmk9aWxwMzJkIiB9ICovCisvKiB7 IGRnLXNraXAtaWYgIiIgeyAqLSotKiB9IHsgIi1nIiAiLWZsdG8ifSB9ICovCisKKyNpbmNs dWRlIDxzdGRpbnQtZ2NjLmg+CisKK2ludDMyX3QgZm9vMShpbnQzMl90IHJzMSwgaW50MzJf dCByczIpCit7CisgICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9hZXMzMmVzaShyczEsIHJz MiwgMCk7Cit9CisKK2ludDMyX3QgZm9vMihpbnQzMl90IHJzMSwgaW50MzJfdCByczIpCit7 CisgICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9hZXMzMmVzbWkocnMxLCByczIsIDApOwor fQorCitpbnQzMl90IGZvbzMoaW50MzJfdCByczEsIGludDMyX3QgcnMyKQoreworICAgIHJl dHVybiBfX2J1aWx0aW5fcmlzY3ZfYWVzMzJlc2kocnMxLCByczIsIDMpOworfQorCitpbnQz Ml90IGZvbzQoaW50MzJfdCByczEsIGludDMyX3QgcnMyKQoreworICAgIHJldHVybiBfX2J1 aWx0aW5fcmlzY3ZfYWVzMzJlc21pKHJzMSwgcnMyLCAzKTsKK30KKworLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJhZXMzMmVzaSIgMiB9IH0gKi8KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiYWVzMzJlc21pIiAyIH0gfSAqLwpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3prbmUzMi5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3prbmUzMi5jCmluZGV4IGMxMzFjOWE2YmJi Li5jN2EwZDBkMDJiOCAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3prbmUzMi5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96a25l MzIuYwpAQCAtNiwxMyArNiwzMSBAQAogCiBpbnQzMl90IGZvbzEoaW50MzJfdCByczEsIGlu dDMyX3QgcnMyLCBpbnQgYnMpCiB7Ci0gICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9hZXMz MmVzaShyczEsIHJzMiwgYnMpOworICAgIHJldHVybiBfX2J1aWx0aW5fcmlzY3ZfYWVzMzJl c2kocnMxLCByczIsIGJzKTsgLyogeyBkZy1lcnJvciAiaW52YWxpZCBhcmd1bWVudCB0byBi dWlsdC1pbiBmdW5jdGlvbiIgfSAqLwogfQogCiBpbnQzMl90IGZvbzIoaW50MzJfdCByczEs IGludDMyX3QgcnMyLCBpbnQgYnMpCiB7Ci0gICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9h ZXMzMmVzbWkocnMxLCByczIsIGJzKTsKKyAgICByZXR1cm4gX19idWlsdGluX3Jpc2N2X2Fl czMyZXNtaShyczEsIHJzMiwgYnMpOyAvKiB7IGRnLWVycm9yICJpbnZhbGlkIGFyZ3VtZW50 IHRvIGJ1aWx0LWluIGZ1bmN0aW9uIiB9ICovCit9CisKK2ludDMyX3QgZm9vMyhpbnQzMl90 IHJzMSwgaW50MzJfdCByczIpCit7CisgICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9hZXMz MmVzaShyczEsIHJzMiwgLTEpOyAvKiB7IGRnLWVycm9yICJpbnZhbGlkIGFyZ3VtZW50IHRv IGJ1aWx0LWluIGZ1bmN0aW9uIiB9ICovCit9CisKK2ludDMyX3QgZm9vNChpbnQzMl90IHJz MSwgaW50MzJfdCByczIpCit7CisgICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9hZXMzMmVz bWkocnMxLCByczIsIC0xKTsgLyogeyBkZy1lcnJvciAiaW52YWxpZCBhcmd1bWVudCB0byBi dWlsdC1pbiBmdW5jdGlvbiIgfSAqLworfQorCitpbnQzMl90IGZvbzUoaW50MzJfdCByczEs IGludDMyX3QgcnMyKQoreworICAgIHJldHVybiBfX2J1aWx0aW5fcmlzY3ZfYWVzMzJlc2ko cnMxLCByczIsIDQpOyAvKiB7IGRnLWVycm9yICJpbnZhbGlkIGFyZ3VtZW50IHRvIGJ1aWx0 LWluIGZ1bmN0aW9uIiB9ICovCit9CisKK2ludDMyX3QgZm9vNihpbnQzMl90IHJzMSwgaW50 MzJfdCByczIpCit7CisgICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9hZXMzMmVzbWkocnMx LCByczIsIDQpOyAvKiB7IGRnLWVycm9yICJpbnZhbGlkIGFyZ3VtZW50IHRvIGJ1aWx0LWlu IGZ1bmN0aW9uIiB9ICovCiB9CiAKLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyAiYWVzMzJlc2kiIDEgfSB9ICovCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgImFlczMyZXNtaSIgMSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi96a3NlZDMyLTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi96a3NlZDMyLTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uNmNiNWFjMzVkNzUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvemtzZWQzMi0yLmMKQEAgLTAsMCArMSwyOSBAQAorLyogeyBk Zy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1tYXJjaD1ydjMyZ2Nf emtzZWQgLW1hYmk9aWxwMzIiIH0gKi8KKy8qIHsgZGctc2tpcC1pZiAiIiB7ICotKi0qIH0g eyAiLWciICItZmx0byJ9IH0gKi8KKworI2luY2x1ZGUgPHN0ZGludC1nY2MuaD4KKworaW50 MzJfdCBmb28xKGludDMyX3QgcnMxLCBpbnQzMl90IHJzMikKK3sKKyAgICByZXR1cm4gX19i dWlsdGluX3Jpc2N2X3NtNGtzKHJzMSxyczIsMCk7Cit9CisKK2ludDMyX3QgZm9vMihpbnQz Ml90IHJzMSwgaW50MzJfdCByczIpCit7CisgICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9z bTRlZChyczEscnMyLDApOworfQorCitpbnQzMl90IGZvbzMoaW50MzJfdCByczEsIGludDMy X3QgcnMyKQoreworICAgIHJldHVybiBfX2J1aWx0aW5fcmlzY3Zfc200a3MocnMxLHJzMiwz KTsKK30KKworaW50MzJfdCBmb280KGludDMyX3QgcnMxLCBpbnQzMl90IHJzMikKK3sKKyAg ICByZXR1cm4gX19idWlsdGluX3Jpc2N2X3NtNGVkKHJzMSxyczIsMyk7Cit9CisKKworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJzbTRrcyIgMiB9IH0gKi8KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAic200ZWQiIDIgfSB9ICovCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemtzZWQzMi5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3prc2VkMzIuYwppbmRleCA5NTQ4ZDAw N2NiMi4uZWUyOTZkYzdkOGYgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi96a3NlZDMyLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3prc2VkMzIuYwpAQCAtNiwxNCArNiwzMSBAQAogCiBpbnQzMl90IGZvbzEoaW50MzJfdCBy czEsIGludDMyX3QgcnMyLCBpbnQgYnMpCiB7Ci0gICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNj dl9zbTRrcyhyczEscnMyLGJzKTsKKyAgICByZXR1cm4gX19idWlsdGluX3Jpc2N2X3NtNGtz KHJzMSxyczIsYnMpOyAvKiB7IGRnLWVycm9yICJpbnZhbGlkIGFyZ3VtZW50IHRvIGJ1aWx0 LWluIGZ1bmN0aW9uIiB9ICovCiB9CiAKIGludDMyX3QgZm9vMihpbnQzMl90IHJzMSwgaW50 MzJfdCByczIsIGludCBicykKIHsKLSAgICByZXR1cm4gX19idWlsdGluX3Jpc2N2X3NtNGVk KHJzMSxyczIsYnMpOworICAgIHJldHVybiBfX2J1aWx0aW5fcmlzY3Zfc200ZWQocnMxLHJz Mixicyk7LyogeyBkZy1lcnJvciAiaW52YWxpZCBhcmd1bWVudCB0byBidWlsdC1pbiBmdW5j dGlvbiIgfSAqLworfQorCitpbnQzMl90IGZvbzMoaW50MzJfdCByczEsIGludDMyX3QgcnMy KQoreworICAgIHJldHVybiBfX2J1aWx0aW5fcmlzY3Zfc200a3MocnMxLHJzMiwtMSk7IC8q IHsgZGctZXJyb3IgImludmFsaWQgYXJndW1lbnQgdG8gYnVpbHQtaW4gZnVuY3Rpb24iIH0g Ki8KK30KKworaW50MzJfdCBmb280KGludDMyX3QgcnMxLCBpbnQzMl90IHJzMikKK3sKKyAg ICByZXR1cm4gX19idWlsdGluX3Jpc2N2X3NtNGVkKHJzMSxyczIsLTEpOy8qIHsgZGctZXJy b3IgImludmFsaWQgYXJndW1lbnQgdG8gYnVpbHQtaW4gZnVuY3Rpb24iIH0gKi8KIH0KIAog Ci0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInNtNGtzIiAxIH0gfSAq LwotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJzbTRlZCIgMSB9IH0g Ki8KK2ludDMyX3QgZm9vNShpbnQzMl90IHJzMSwgaW50MzJfdCByczIpCit7CisgICAgcmV0 dXJuIF9fYnVpbHRpbl9yaXNjdl9zbTRrcyhyczEscnMyLDQpOyAvKiB7IGRnLWVycm9yICJp bnZhbGlkIGFyZ3VtZW50IHRvIGJ1aWx0LWluIGZ1bmN0aW9uIiB9ICovCit9CisKK2ludDMy X3QgZm9vNihpbnQzMl90IHJzMSwgaW50MzJfdCByczIpCit7CisgICAgcmV0dXJuIF9fYnVp bHRpbl9yaXNjdl9zbTRlZChyczEscnMyLDQpOy8qIHsgZGctZXJyb3IgImludmFsaWQgYXJn dW1lbnQgdG8gYnVpbHQtaW4gZnVuY3Rpb24iIH0gKi8KK30KZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96a3NlZDY0LTIuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi96a3NlZDY0LTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uNWZiMGJmZDY5ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemtzZWQ2NC0yLmMKQEAgLTAsMCArMSwyOSBAQAor LyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1tYXJjaD1y djY0Z2NfemtzZWQgLW1hYmk9bHA2NCIgfSAqLworLyogeyBkZy1za2lwLWlmICIiIHsgKi0q LSogfSB7ICItZyIgIi1mbHRvIn0gfSAqLworCisjaW5jbHVkZSA8c3RkaW50LWdjYy5oPgor CitpbnQ2NF90IGZvbzEoaW50NjRfdCByczEsIGludDY0X3QgcnMyKQoreworICAgIHJldHVy biBfX2J1aWx0aW5fcmlzY3Zfc200a3MocnMxLHJzMiwwKTsKK30KKworaW50NjRfdCBmb28y KGludDY0X3QgcnMxLCBpbnQ2NF90IHJzMikKK3sKKyAgICByZXR1cm4gX19idWlsdGluX3Jp c2N2X3NtNGVkKHJzMSxyczIsMCk7Cit9CisKK2ludDY0X3QgZm9vMyhpbnQ2NF90IHJzMSwg aW50NjRfdCByczIpCit7CisgICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9zbTRrcyhyczEs cnMyLDMpOworfQorCitpbnQ2NF90IGZvbzQoaW50NjRfdCByczEsIGludDY0X3QgcnMyKQor eworICAgIHJldHVybiBfX2J1aWx0aW5fcmlzY3Zfc200ZWQocnMxLHJzMiwzKTsKK30KKwor CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInNtNGtzIiAyIH0gfSAq LworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJzbTRlZCIgMiB9IH0g Ki8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96a3NlZDY0 LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemtzZWQ2NC5jCmluZGV4IDE5 MGE2NTQxNTFkLi5mN2JmOWYwYzc5YSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3prc2VkNjQuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvemtzZWQ2NC5jCkBAIC02LDE0ICs2LDMwIEBACiAKIGludDY0X3QgZm9vMShpbnQ2 NF90IHJzMSwgaW50NjRfdCByczIsIGludCBicykKIHsKLSAgICByZXR1cm4gX19idWlsdGlu X3Jpc2N2X3NtNGtzKHJzMSxyczIsYnMpOworICAgIHJldHVybiBfX2J1aWx0aW5fcmlzY3Zf c200a3MocnMxLHJzMixicyk7IC8qIHsgZGctZXJyb3IgImludmFsaWQgYXJndW1lbnQgdG8g YnVpbHQtaW4gZnVuY3Rpb24iIH0gKi8KIH0KIAogaW50NjRfdCBmb28yKGludDY0X3QgcnMx LCBpbnQ2NF90IHJzMiwgaW50IGJzKQogewotICAgIHJldHVybiBfX2J1aWx0aW5fcmlzY3Zf c200ZWQocnMxLHJzMixicyk7CisgICAgcmV0dXJuIF9fYnVpbHRpbl9yaXNjdl9zbTRlZChy czEscnMyLGJzKTsgLyogeyBkZy1lcnJvciAiaW52YWxpZCBhcmd1bWVudCB0byBidWlsdC1p biBmdW5jdGlvbiIgfSAqLwogfQogCitpbnQ2NF90IGZvbzMoaW50NjRfdCByczEsIGludDY0 X3QgcnMyKQoreworICAgIHJldHVybiBfX2J1aWx0aW5fcmlzY3Zfc200a3MocnMxLHJzMiwt MSk7IC8qIHsgZGctZXJyb3IgImludmFsaWQgYXJndW1lbnQgdG8gYnVpbHQtaW4gZnVuY3Rp b24iIH0gKi8KK30KKworaW50NjRfdCBmb280KGludDY0X3QgcnMxLCBpbnQ2NF90IHJzMikK K3sKKyAgICByZXR1cm4gX19idWlsdGluX3Jpc2N2X3NtNGVkKHJzMSxyczIsLTEpOyAvKiB7 IGRnLWVycm9yICJpbnZhbGlkIGFyZ3VtZW50IHRvIGJ1aWx0LWluIGZ1bmN0aW9uIiB9ICov Cit9CiAKLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAic200a3MiIDEg fSB9ICovCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInNtNGVkIiAx IH0gfSAqLworaW50NjRfdCBmb281KGludDY0X3QgcnMxLCBpbnQ2NF90IHJzMikKK3sKKyAg ICByZXR1cm4gX19idWlsdGluX3Jpc2N2X3NtNGtzKHJzMSxyczIsNCk7IC8qIHsgZGctZXJy b3IgImludmFsaWQgYXJndW1lbnQgdG8gYnVpbHQtaW4gZnVuY3Rpb24iIH0gKi8KK30KKwor aW50NjRfdCBmb282KGludDY0X3QgcnMxLCBpbnQ2NF90IHJzMikKK3sKKyAgICByZXR1cm4g X19idWlsdGluX3Jpc2N2X3NtNGVkKHJzMSxyczIsNCk7IC8qIHsgZGctZXJyb3IgImludmFs aWQgYXJndW1lbnQgdG8gYnVpbHQtaW4gZnVuY3Rpb24iIH0gKi8KK30K --------------zTS0B46YWFsoUpdZUsLfPfSp--