From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sender4-pp-o90.zoho.com (sender4-pp-o90.zoho.com [136.143.188.90]) by sourceware.org (Postfix) with ESMTPS id A682F3858C53; Wed, 21 Feb 2024 15:57:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A682F3858C53 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=zoho.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=zoho.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A682F3858C53 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=136.143.188.90 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1708531025; cv=pass; b=m4XeTTJJBCdOZdElJX2U885nJcHsy9fqVXQzGvr6Y2Q4pCJy4+H7ojRDG5bXWkRdarUx646MyzNdEiYxel0X2MVbOdQvSNU3PG+S4EvctiiPRmeXAQcIwW99b2tpLmpyBSnGom9hyXs+GNyxntuEI1dHx2nF3lT22kp8KCoCR2o= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1708531025; c=relaxed/simple; bh=vbBCuJ1qjCItnp8tQYf02DXGqhSVfOBuS495S2BC388=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=WTvpyi3M11pBxaMTNIw6v/pG88AenV6ne6SvipNj7ouugmmXsNAzlUFzYj4CNoy81pAqX9lGflxcHIzBmeA2zUZ4SzHvbHq6vVsv9eWOYq+0Jv0ZipBh4xN3uQ9zQpBuag1ffDvNhTeyxOTh9r2OcKlPRfgaiQFAy251lDkPrlk= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; t=1708531012; cv=none; d=zohomail.com; s=zohoarc; b=EtIIgy3prfVvl60AvTTdv9ErP/b+wSmoMrHl0FWrPvo87EGpjmvk9U4I6Jm9Ov+x13i+CGktPguH0i9HNpMy5DLR/QagpyiT1sYMY6zLhc7XVoSiFsJXAA59YVlTr6OZt+4yxw4MnfXyFSPGEpASg37fVctPzAkKpMZBgsvAnrY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1708531012; h=Content-Type:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=uW6Ah9IE7mf9P8GW7Vq5Rhn7W6Nc1iDtJGplbKPAQHs=; b=Od1hX7nhqSZuqtBhkyvTj4T32Kuc97GHOM9cOv2gYykEEZT82IDggAVTR6fCXPVDD6TupO1UdyGQ+PVzQSOKJ02te0l6mFBg7xB8yX5jHj94UnV96nEcvfD4flhtpdGQkU/xjtFVgiSXHTujbvlfVrm7BC97gm6/v8etidmvwns= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=zoho.com; spf=pass smtp.mailfrom=bouanto@zoho.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1708531012; s=zm2022; d=zoho.com; i=bouanto@zoho.com; h=Message-ID:Subject:Subject:From:From:To:To:Date:Date:In-Reply-To:References:Content-Type:MIME-Version:Feedback-ID:Message-Id:Reply-To:Cc; bh=uW6Ah9IE7mf9P8GW7Vq5Rhn7W6Nc1iDtJGplbKPAQHs=; b=GIHAXCuYQIxR3sZ7bX8jeXLSHQaiRg7TGSXbUIkw7os8wcumXW463k8XYirr3dtR mp7eCRFbOZKB+zo2LE2LLcuY3K7Y045qkONugvW7JouEg32Z31M6ONhdsParSj7ZTcU ySyTpXLyLYK4/IQsGtYpeExQQYUt+YwFJiKnX0Yo= Received: from [192.168.1.172] (38.87.11.6 [38.87.11.6]) by mx.zohomail.com with SMTPS id 1708531010317402.87096273329246; Wed, 21 Feb 2024 07:56:50 -0800 (PST) Message-ID: Subject: Re: [PATCH] libgccjit: Add support for the type bfloat16 From: Antoni Boucher To: David Malcolm , jit@gcc.gnu.org, gcc-patches@gcc.gnu.org Date: Wed, 21 Feb 2024 10:56:48 -0500 In-Reply-To: References: <83774dc19d819b75998f72116f54c7dad12667d2.camel@zoho.com> <1c8d83e6f6759b82dc221667cc6545246b51ad8e.camel@zoho.com> Autocrypt: addr=bouanto@zoho.com; prefer-encrypt=mutual; keydata=mQENBFOSMLQBCADO5aw6Ys8thMQUNzrwAnfJX2wbgWiz0pQ01DjYj22eeIpChkoZn6LWdt4dieq30u2rFi/yQzJ02foHwI2+aL9rU6xz/x4TwqyRJQGMOqklNc3R+pdXmH4WDQkQDWmLxvc07vu+zb8Tx5A6pMDh4J2ncCEhLEUcH39Yq/yg4eBnFwUX6N7kakvHrnScGNqhnSFCacoJeMJUAR+1G7VBSBd++jmnHLnx3mj7QkRZVECJUw2zqiv1yReCC6GU4SvqLjdqm5ZGeoWOqD/NHjBRoEeOVjzp6M/qOjjWRbkJVqmvgfcD8UytSSqqboR35YFT4L+rZt2ri3T12MJb3i5syCAXABEBAAG0IUFudG9uaSBCb3VjaGVyIDxib3VhbnRvQHpvaG8uY29tPokBVgQTAQgAQAIbIwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAFiEEOELC4Uw1Jeb66YE6RVeGAwR4zcEFAlz4QM4FCRLMEZoACgkQRVeGAwR4zcFBQQf/afttJrA/puADQZhrDfkgr0MFvq6iB+GCy1b8BkXimk1TOXTPt87YLehSeijNu3JkYhl5eRc87BNfU9J87KfI/KIy6hZxqlDXk16FhW9bw/7wYEA0hpb3MUn7xLElXDT0ZHaD+KTe8Oun7qfzgx5RlL6r/WODf3CkSpO085R/rfeBqDEx9mVlhDWgq6Az3CZoD+3CqiCKVqmDuHTWz4kwrd9AM5eVcLvvLKnZIdoIp+G5Ao6BvaGlZyfenN1iOSjLy2NXNt4MnUt0lUYEP5KSIIRhHQ8xkUbj7eWUmaahkxhNb3fH3sAPwGnRZrPpb4rgYzNmSk63wWMh9M2xk+rLb7kBDQRTkjC0AQgAumZzsAV/UFWI+dpzebQfma36kKYZZFuseant5sq/HWP553XQ/U6ttJiKyN5MpCqtxvCAoRplf42YhlHuFqgf73WJxoJ6Y+sdyqoBSwlR+ gzAneAmsa8gmmY0wawH0Z2leazjKuS7mJjVEQZg0ZGsiCVRGeRnDqFGzDEzDc9ngWKSoTq0fKzlGy1X85OrtmUrvEbhSo6HP+FoeunHkIqrxu3w3vDoFEXxVQlKI6V3I4nCz5n6DB8WR3L7nsiiTnOiGirPw1ngvWFLW86kkA4FJpayc8Xl3va3SLY+2y4yuROboX2DVI4AC/Qeug/mDiBicPxkP6YfUartQRMe6obkEQARAQABiQE8BBgBCAAmAhsMFiEEOELC4Uw1Jeb66YE6RVeGAwR4zcEFAlz4QRsFCRLMEecACgkQRVeGAwR4zcE56ggAgTgrJInBKC+7552Dpccuo6Clh3wZfjlNLv9/6r5lKEbaNzaTrfhPiAP4WgnluIUmj8amOFLFJpj+BAVNOXpZ4D2R3o9ch8z7fot+fW4Yw+PKIxH4I2xEys8ndoEB3aiQwHjKcGIhkIU7uyMJFQr2aWjdTY0gmXw0YZueHOSLgo7uX4XKxB8fEO/yto/Tff2YBAAq+AtNwt+Gh5YS9rZw7rwUTWMi84yVOlc+zRE79E9NJkvdTwX7IJYo64VzIRNfgHsn7QNdVzuM1XIFHl+Glk6cIlI8s6BO7nEoCn3hTF104fQTAO3fEs+XXZOKXo2lk8faowEoPq5r58StrV0nyg== Content-Type: multipart/mixed; boundary="=-R6vWu2en84kkTj8n7ccW" User-Agent: Evolution 3.50.3 MIME-Version: 1.0 X-Zoho-Virus-Status: 1 X-Zoho-AV-Stamp: zmail-av-1.1.0/208.443.88 Feedback-ID: rr08011228edd477d9e3da7c8f5ae60648000091d65c747586601eb77322f29bee7858c2b79d07cab781724796:zu0801122656a67f04a5c01d48f71aad6c0000adfa8912a5401fc7c3875ed7fcc23004cf6fbba337996523:rf08011231be6c3d675f563d584eb5dfa100004d97389abb6501c99f68c5851e69a10e19c410c04f8f6c7cab65b32d16316f9cbfc871:ZohoMail X-ZohoMailClient: External X-Spam-Status: No, score=-9.7 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_NUMSUBJECT,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: --=-R6vWu2en84kkTj8n7ccW Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thanks for the review. Here's the updated patch. On Fri, 2023-12-01 at 12:45 -0500, David Malcolm wrote: > On Thu, 2023-11-16 at 17:20 -0500, Antoni Boucher wrote: > > I forgot to attach the patch. > >=20 > > On Thu, 2023-11-16 at 17:19 -0500, Antoni Boucher wrote: > > > Hi. > > > This patch adds the support for the type bfloat16 (bug 112574). > > >=20 > > > This was asked to be splitted from a another patch sent here: > > > https://gcc.gnu.org/pipermail/jit/2023q1/001607.html > > >=20 > > > Thanks for the review. > >=20 >=20 > Thanks for the patch. >=20 > > diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc > > index 18cc4da25b8..7e1c97a4638 100644 > > --- a/gcc/jit/jit-playback.cc > > +++ b/gcc/jit/jit-playback.cc > > @@ -280,6 +280,8 @@ get_tree_node_for_type (enum gcc_jit_types > > type_) > > =C2=A0 > > =C2=A0=C2=A0=C2=A0=C2=A0 case GCC_JIT_TYPE_FLOAT: > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return float_type_node; > > +=C2=A0=C2=A0=C2=A0 case GCC_JIT_TYPE_BFLOAT16: > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return bfloat16_type_node; >=20 > The code to create bfloat16_type_node (in build_common_tree_nodes) is > guarded by #ifdef HAVE_BFmode, so we should probably have a test for > this in case GCC_JIT_TYPE_BFLOAT16 to at least add an error message > when it's NULL_TREE, rather than silently returning NULL_TREE and > crashing. >=20 > [...] >=20 > > diff --git a/gcc/testsuite/jit.dg/test-bfloat16.c > > b/gcc/testsuite/jit.dg/test-bfloat16.c > > new file mode 100644 > > index 00000000000..6aed3920351 > > --- /dev/null > > +++ b/gcc/testsuite/jit.dg/test-bfloat16.c > > @@ -0,0 +1,37 @@ > > +/* { dg-do compile { target x86_64-*-* } } */ > > + > > +#include > > +#include > > + > > +#include "libgccjit.h" > > + > > +/* We don't want set_options() in harness.h to set -O3 so our > > little local > > +=C2=A0=C2=A0 is optimized away. */ > > +#define TEST_ESCHEWS_SET_OPTIONS > > +static void set_options (gcc_jit_context *ctxt, const char *argv0) > > +{ > > +} >=20 >=20 > Please add a comment to all-non-failing-tests.h noting the exclusion > of > this test case from the array. >=20 > [...] >=20 > > diff --git a/gcc/testsuite/jit.dg/test-types.c > > b/gcc/testsuite/jit.dg/test-types.c > > index a01944e35fa..9e7c4f3e046 100644 > > --- a/gcc/testsuite/jit.dg/test-types.c > > +++ b/gcc/testsuite/jit.dg/test-types.c > > @@ -1,3 +1,4 @@ > > +#include > > =C2=A0#include > > =C2=A0#include > > =C2=A0#include > > @@ -492,4 +493,5 @@ verify_code (gcc_jit_context *ctxt, > > gcc_jit_result *result) > > =C2=A0 > > =C2=A0=C2=A0 CHECK_VALUE (gcc_jit_type_get_size (gcc_jit_context_get_ty= pe > > (ctxt, GCC_JIT_TYPE_FLOAT)), sizeof (float)); > > =C2=A0=C2=A0 CHECK_VALUE (gcc_jit_type_get_size (gcc_jit_context_get_ty= pe > > (ctxt, GCC_JIT_TYPE_DOUBLE)), sizeof (double)); > > +=C2=A0 CHECK_VALUE (gcc_jit_type_get_size (gcc_jit_context_get_type > > (ctxt, GCC_JIT_TYPE_BFLOAT16)), sizeof (__bfloat16)); >=20 >=20 > This is only going to work on targets which #ifdef HAVE_BFmode, so > this > CHECK_VALUE needs to be conditionalized somehow, to avoid having > this, > test-combination, and test-threads from bailing out early on targets > without BFmode. >=20 > Dave >=20 --=-R6vWu2en84kkTj8n7ccW Content-Disposition: attachment; filename="0001-libgccjit-Add-support-for-the-type-bfloat16.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-libgccjit-Add-support-for-the-type-bfloat16.patch"; charset="UTF-8" RnJvbSAzYjMxYmNhM2ExMTQ0YTVmYTRkYzM0ZTQwMmFkMzI4N2NjY2E4NGRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmkgQm91Y2hlciA8Ym91YW50b0B6b2hvLmNvbT4KRGF0 ZTogVGh1LCAxNiBOb3YgMjAyMyAxMDo1OToyMiAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIGxpYmdj Y2ppdDogQWRkIHN1cHBvcnQgZm9yIHRoZSB0eXBlIGJmbG9hdDE2CgpnY2Mvaml0L0NoYW5nZUxv ZzoKCglQUiBqaXQvMTEyNTc0CgkqIGRvY3MvdG9waWNzL3R5cGVzLnJzdDogRG9jdW1lbnQgR0ND X0pJVF9UWVBFX0JGTE9BVDE2LgoJKiBqaXQtY29tbW9uLmg6IFVwZGF0ZSBOVU1fR0NDX0pJVF9U WVBFUy4KCSogaml0LXBsYXliYWNrLmNjIChnZXRfdHJlZV9ub2RlX2Zvcl90eXBlKTogU3VwcG9y dCBiZmxvYXQxNi4KCSogaml0LXJlY29yZGluZy5jYyAocmVjb3JkaW5nOjptZW1lbnRvX29mX2dl dF90eXBlOjpnZXRfc2l6ZSwKCXJlY29yZGluZzo6bWVtZW50b19vZl9nZXRfdHlwZTo6ZGVyZWZl cmVuY2UsCglyZWNvcmRpbmc6Om1lbWVudG9fb2ZfZ2V0X3R5cGU6OmlzX2ludCwKCXJlY29yZGlu Zzo6bWVtZW50b19vZl9nZXRfdHlwZTo6aXNfc2lnbmVkLAoJcmVjb3JkaW5nOjptZW1lbnRvX29m X2dldF90eXBlOjppc19mbG9hdCwKCXJlY29yZGluZzo6bWVtZW50b19vZl9nZXRfdHlwZTo6aXNf Ym9vbCk6IFN1cHBvcnQgYmZsb2F0MTYuCgkqIGxpYmdjY2ppdC5oIChlbnVtIGdjY19qaXRfdHlw ZXMpOiBBZGQgR0NDX0pJVF9UWVBFX0JGTE9BVDE2LgoKZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6 CgoJUFIgaml0LzExMjU3NAoJKiBqaXQuZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3RzLmg6IE5ldyB0 ZXN0IHRlc3QtYmZsb2F0MTYuYy4KCSogaml0LmRnL3Rlc3QtdHlwZXMuYzogVGVzdCBHQ0NfSklU X1RZUEVfQkZMT0FUMTYuCgkqIGppdC5kZy90ZXN0LWJmbG9hdDE2LmM6IE5ldyB0ZXN0LgotLS0K IGdjYy9qaXQvZG9jcy90b3BpY3MvdHlwZXMucnN0ICAgICAgICAgICAgICAgIHwgIDIgKysKIGdj Yy9qaXQvaml0LWNvbW1vbi5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGdjYy9q aXQvaml0LXBsYXliYWNrLmNjICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrKwogZ2NjL2pp dC9qaXQtcmVjb3JkaW5nLmNjICAgICAgICAgICAgICAgICAgICAgfCAxMSArKysrKysKIGdjYy9q aXQvbGliZ2Njaml0LmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKystCiBnY2MvdGVz dHN1aXRlL2ppdC5kZy9hbGwtbm9uLWZhaWxpbmctdGVzdHMuaCB8ICAzICsrCiBnY2MvdGVzdHN1 aXRlL2ppdC5kZy90ZXN0LWJmbG9hdDE2LmMgICAgICAgICB8IDM3ICsrKysrKysrKysrKysrKysr KysrCiBnY2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0LXR5cGVzLmMgICAgICAgICAgICB8ICA0ICsr KwogOCBmaWxlcyBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtYmZsb2F0MTYuYwoKZGlm ZiAtLWdpdCBhL2djYy9qaXQvZG9jcy90b3BpY3MvdHlwZXMucnN0IGIvZ2NjL2ppdC9kb2NzL3Rv cGljcy90eXBlcy5yc3QKaW5kZXggYmI1MWYwMzdiN2UuLjZhN2EzNTI4MGVkIDEwMDY0NAotLS0g YS9nY2Mvaml0L2RvY3MvdG9waWNzL3R5cGVzLnJzdAorKysgYi9nY2Mvaml0L2RvY3MvdG9waWNz L3R5cGVzLnJzdApAQCAtMTEzLDYgKzExMyw4IEBAIFN0YW5kYXJkIHR5cGVzCiAgICAgICAgLSBD OTkncyBgYF9faW50MTI4X3RgYAogICAgICAqIC0gOmM6ZGF0YTpgR0NDX0pJVF9UWVBFX0ZMT0FU YAogICAgICAgIC0KKyAgICAgKiAtIDpjOmRhdGE6YEdDQ19KSVRfVFlQRV9CRkxPQVQxNmAKKyAg ICAgICAtIEMncyBgYF9fYmZsb2F0MTZgYAogICAgICAqIC0gOmM6ZGF0YTpgR0NDX0pJVF9UWVBF X0RPVUJMRWAKICAgICAgICAtCiAgICAgICogLSA6YzpkYXRhOmBHQ0NfSklUX1RZUEVfTE9OR19E T1VCTEVgCmRpZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1jb21tb24uaCBiL2djYy9qaXQvaml0LWNv bW1vbi5oCmluZGV4IDFlMzM1ODc4YjU2Li5hZmI0MTc2M2U0NiAxMDA2NDQKLS0tIGEvZ2NjL2pp dC9qaXQtY29tbW9uLmgKKysrIGIvZ2NjL2ppdC9qaXQtY29tbW9uLmgKQEAgLTM2LDcgKzM2LDcg QEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKICNl bmRpZgogI2VuZGlmCiAKLWNvbnN0IGludCBOVU1fR0NDX0pJVF9UWVBFUyA9IEdDQ19KSVRfVFlQ RV9JTlQxMjhfVCArIDE7Citjb25zdCBpbnQgTlVNX0dDQ19KSVRfVFlQRVMgPSBHQ0NfSklUX1RZ UEVfQkZMT0FUMTYgKyAxOwogCiAvKiBUaGlzIGNvbW1lbnQgaXMgaW5jbHVkZWQgYnkgdGhlIGRv Y3MuCiAKZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXBsYXliYWNrLmNjIGIvZ2NjL2ppdC9qaXQt cGxheWJhY2suY2MKaW5kZXggNmJhYTgzOGFmMTAuLjc2NzY0YmJlOGEzIDEwMDY0NAotLS0gYS9n Y2Mvaml0L2ppdC1wbGF5YmFjay5jYworKysgYi9nY2Mvaml0L2ppdC1wbGF5YmFjay5jYwpAQCAt MjgxLDYgKzI4MSwxMiBAQCBnZXRfdHJlZV9ub2RlX2Zvcl90eXBlIChlbnVtIGdjY19qaXRfdHlw ZXMgdHlwZV8pCiAKICAgICBjYXNlIEdDQ19KSVRfVFlQRV9GTE9BVDoKICAgICAgIHJldHVybiBm bG9hdF90eXBlX25vZGU7CisgICAgY2FzZSBHQ0NfSklUX1RZUEVfQkZMT0FUMTY6CisjaWZuZGVm IEhBVkVfQkZtb2RlCisgICAgICBhZGRfZXJyb3IgKE5VTEwsICJnY2Nfaml0X3R5cGVzIHZhbHVl IHVuc3VwcG9ydGVkIG9uIHRoaXMgdGFyZ2V0OiAlaSIsCisJCSB0eXBlXyk7CisjZW5kaWYKKyAg ICAgIHJldHVybiBiZmxvYXQxNl90eXBlX25vZGU7CiAgICAgY2FzZSBHQ0NfSklUX1RZUEVfRE9V QkxFOgogICAgICAgcmV0dXJuIGRvdWJsZV90eXBlX25vZGU7CiAgICAgY2FzZSBHQ0NfSklUX1RZ UEVfTE9OR19ET1VCTEU6CmRpZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuY2MgYi9n Y2Mvaml0L2ppdC1yZWNvcmRpbmcuY2MKaW5kZXggNjhhMmU4NjBjMWYuLjRkYTI4NDhmMDRhIDEw MDY0NAotLS0gYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuY2MKKysrIGIvZ2NjL2ppdC9qaXQtcmVj b3JkaW5nLmNjCkBAIC0yNDAxLDYgKzI0MDEsMTAgQEAgcmVjb3JkaW5nOjptZW1lbnRvX29mX2dl dF90eXBlOjpnZXRfc2l6ZSAoKQogICAgIGNhc2UgR0NDX0pJVF9UWVBFX0ZMT0FUOgogICAgICAg c2l6ZSA9IEZMT0FUX1RZUEVfU0laRTsKICAgICAgIGJyZWFrOworI2lmZGVmIEhBVkVfQkZtb2Rl CisgICAgY2FzZSBHQ0NfSklUX1RZUEVfQkZMT0FUMTY6CisgICAgICByZXR1cm4gR0VUX01PREVf VU5JVF9TSVpFIChCRm1vZGUpOworI2VuZGlmCiAgICAgY2FzZSBHQ0NfSklUX1RZUEVfRE9VQkxF OgogICAgICAgc2l6ZSA9IERPVUJMRV9UWVBFX1NJWkU7CiAgICAgICBicmVhazsKQEAgLTI0NjAs NiArMjQ2NCw3IEBAIHJlY29yZGluZzo6bWVtZW50b19vZl9nZXRfdHlwZTo6ZGVyZWZlcmVuY2Ug KCkKICAgICBjYXNlIEdDQ19KSVRfVFlQRV9JTlQ2NF9UOgogICAgIGNhc2UgR0NDX0pJVF9UWVBF X0lOVDEyOF9UOgogICAgIGNhc2UgR0NDX0pJVF9UWVBFX0ZMT0FUOgorICAgIGNhc2UgR0NDX0pJ VF9UWVBFX0JGTE9BVDE2OgogICAgIGNhc2UgR0NDX0pJVF9UWVBFX0RPVUJMRToKICAgICBjYXNl IEdDQ19KSVRfVFlQRV9MT05HX0RPVUJMRToKICAgICBjYXNlIEdDQ19KSVRfVFlQRV9DT01QTEVY X0ZMT0FUOgpAQCAtMjUyNCw2ICsyNTI5LDcgQEAgcmVjb3JkaW5nOjptZW1lbnRvX29mX2dldF90 eXBlOjppc19pbnQgKCkgY29uc3QKICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgY2FzZSBHQ0Nf SklUX1RZUEVfRkxPQVQ6CisgICAgY2FzZSBHQ0NfSklUX1RZUEVfQkZMT0FUMTY6CiAgICAgY2Fz ZSBHQ0NfSklUX1RZUEVfRE9VQkxFOgogICAgIGNhc2UgR0NDX0pJVF9UWVBFX0xPTkdfRE9VQkxF OgogICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjU4Miw2ICsyNTg4LDcgQEAgcmVjb3JkaW5nOjpt ZW1lbnRvX29mX2dldF90eXBlOjppc19zaWduZWQgKCkgY29uc3QKICAgICBjYXNlIEdDQ19KSVRf VFlQRV9VSU5UMTI4X1Q6CiAKICAgICBjYXNlIEdDQ19KSVRfVFlQRV9GTE9BVDoKKyAgICBjYXNl IEdDQ19KSVRfVFlQRV9CRkxPQVQxNjoKICAgICBjYXNlIEdDQ19KSVRfVFlQRV9ET1VCTEU6CiAg ICAgY2FzZSBHQ0NfSklUX1RZUEVfTE9OR19ET1VCTEU6CiAKQEAgLTI2NDEsNiArMjY0OCw3IEBA IHJlY29yZGluZzo6bWVtZW50b19vZl9nZXRfdHlwZTo6aXNfZmxvYXQgKCkgY29uc3QKICAgICAg IHJldHVybiBmYWxzZTsKIAogICAgIGNhc2UgR0NDX0pJVF9UWVBFX0ZMT0FUOgorICAgIGNhc2Ug R0NDX0pJVF9UWVBFX0JGTE9BVDE2OgogICAgIGNhc2UgR0NDX0pJVF9UWVBFX0RPVUJMRToKICAg ICBjYXNlIEdDQ19KSVRfVFlQRV9MT05HX0RPVUJMRToKICAgICAgIHJldHVybiB0cnVlOwpAQCAt MjcwNCw2ICsyNzEyLDcgQEAgcmVjb3JkaW5nOjptZW1lbnRvX29mX2dldF90eXBlOjppc19ib29s ICgpIGNvbnN0CiAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBjYXNlIEdDQ19KSVRfVFlQRV9G TE9BVDoKKyAgICBjYXNlIEdDQ19KSVRfVFlQRV9CRkxPQVQxNjoKICAgICBjYXNlIEdDQ19KSVRf VFlQRV9ET1VCTEU6CiAgICAgY2FzZSBHQ0NfSklUX1RZUEVfTE9OR19ET1VCTEU6CiAgICAgICBy ZXR1cm4gZmFsc2U7CkBAIC0yNzg0LDYgKzI3OTMsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNv bnN0IGdldF90eXBlX3N0cmluZ3NbXSA9IHsKICAgIl9faW50NjRfdCIsICAgIC8qIEdDQ19KSVRf VFlQRV9JTlQ2NF9UICovCiAgICJfX2ludDEyOF90IiwgICAvKiBHQ0NfSklUX1RZUEVfSU5UMTI4 X1QgKi8KIAorICAiYmZsb2F0MTYiLCAvKiBHQ0NfSklUX1RZUEVfQkZMT0FUMTYgKi8KIH07CiAK IC8qIEltcGxlbWVudGF0aW9uIG9mIHJlY29yZGluZzo6bWVtZW50bzo6bWFrZV9kZWJ1Z19zdHJp bmcgZm9yCkBAIC0yODI5LDYgKzI4MzksNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGdl dF90eXBlX2VudW1fc3RyaW5nc1tdID0gewogICAiR0NDX0pJVF9UWVBFX0lOVDMyX1QiLAogICAi R0NDX0pJVF9UWVBFX0lOVDY0X1QiLAogICAiR0NDX0pJVF9UWVBFX0lOVDEyOF9UIiwKKyAgIkdD Q19KSVRfVFlQRV9CRkxPQVQxNiIsCiB9OwogCiB2b2lkCmRpZmYgLS1naXQgYS9nY2Mvaml0L2xp YmdjY2ppdC5oIGIvZ2NjL2ppdC9saWJnY2NqaXQuaAppbmRleCA3NGU4NDdiMmRlYy4uZWRlMGNm ZGI5OWQgMTAwNjQ0Ci0tLSBhL2djYy9qaXQvbGliZ2Njaml0LmgKKysrIGIvZ2NjL2ppdC9saWJn Y2NqaXQuaApAQCAtNjA0LDcgKzYwNCw5IEBAIGVudW0gZ2NjX2ppdF90eXBlcwogICBHQ0NfSklU X1RZUEVfSU5UMTZfVCwKICAgR0NDX0pJVF9UWVBFX0lOVDMyX1QsCiAgIEdDQ19KSVRfVFlQRV9J TlQ2NF9ULAotICBHQ0NfSklUX1RZUEVfSU5UMTI4X1QKKyAgR0NDX0pJVF9UWVBFX0lOVDEyOF9U LAorCisgIEdDQ19KSVRfVFlQRV9CRkxPQVQxNiwKIH07CiAKIGV4dGVybiBnY2Nfaml0X3R5cGUg KgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3Rz LmggYi9nY2MvdGVzdHN1aXRlL2ppdC5kZy9hbGwtbm9uLWZhaWxpbmctdGVzdHMuaAppbmRleCAx NGEwYTMyMTU1MC4uZDYyN2FjNjRjYjYgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvaml0LmRn L2FsbC1ub24tZmFpbGluZy10ZXN0cy5oCisrKyBiL2djYy90ZXN0c3VpdGUvaml0LmRnL2FsbC1u b24tZmFpbGluZy10ZXN0cy5oCkBAIC03Myw2ICs3Myw5IEBACiAjdW5kZWYgY3JlYXRlX2NvZGUK ICN1bmRlZiB2ZXJpZnlfY29kZQogCisvKiB0ZXN0LWJmbG9hdDE2LmM6IFRoaXMgY2FuJ3QgYmUg aW4gdGhlIHRlc3RjYXNlcyBhcnJheSBhcyBpdAorICAgaXMgdGFyZ2V0LXNwZWNpZmljLiAgKi8K KwogLyogdGVzdC1idWlsdGluLW1lbWNweS5jICovCiAjZGVmaW5lIGNyZWF0ZV9jb2RlIGNyZWF0 ZV9jb2RlX2J1aWx0aW5fbWVtY3B5CiAjZGVmaW5lIHZlcmlmeV9jb2RlIHZlcmlmeV9jb2RlX2J1 aWx0aW5fbWVtY3B5CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0LWJmbG9h dDE2LmMgYi9nY2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0LWJmbG9hdDE2LmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZhZWQzOTIwMzUxCi0tLSAvZGV2L251bGwKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1iZmxvYXQxNi5jCkBAIC0wLDAgKzEsMzcgQEAK Ky8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCB4ODZfNjQtKi0qIH0gfSAqLworCisjaW5jbHVk ZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKworI2luY2x1ZGUgImxpYmdjY2ppdC5o IgorCisvKiBXZSBkb24ndCB3YW50IHNldF9vcHRpb25zKCkgaW4gaGFybmVzcy5oIHRvIHNldCAt TzMgc28gb3VyIGxpdHRsZSBsb2NhbAorICAgaXMgb3B0aW1pemVkIGF3YXkuICovCisjZGVmaW5l IFRFU1RfRVNDSEVXU19TRVRfT1BUSU9OUworc3RhdGljIHZvaWQgc2V0X29wdGlvbnMgKGdjY19q aXRfY29udGV4dCAqY3R4dCwgY29uc3QgY2hhciAqYXJndjApCit7Cit9CisKKyNkZWZpbmUgVEVT VF9DT01QSUxJTkdfVE9fRklMRQorI2RlZmluZSBPVVRQVVRfS0lORCAgICAgIEdDQ19KSVRfT1VU UFVUX0tJTkRfQVNTRU1CTEVSCisjZGVmaW5lIE9VVFBVVF9GSUxFTkFNRSAgIm91dHB1dC1vZi10 ZXN0LWJmbG9hdDE2LmMucyIKKyNpbmNsdWRlICJoYXJuZXNzLmgiCisKK3ZvaWQKK2NyZWF0ZV9j b2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIHZvaWQgKnVzZXJfZGF0YSkKK3sKKyAgZ2NjX2pp dF90eXBlICpiZjE2X3R5cGUgPQorICAgIGdjY19qaXRfY29udGV4dF9nZXRfdHlwZSAoY3R4dCwg R0NDX0pJVF9UWVBFX0JGTE9BVDE2KTsKKworICBnY2Nfaml0X2x2YWx1ZSAqZm9vID0KKyAgICBn Y2Nfaml0X2NvbnRleHRfbmV3X2dsb2JhbCAoCisgICAgICBjdHh0LCBOVUxMLCBHQ0NfSklUX0dM T0JBTF9FWFBPUlRFRCwgYmYxNl90eXBlLCAiZm9vIik7CisKKyAgZ2NjX2ppdF9ydmFsdWUgKnZh bHVlID0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2RvdWJsZSAoY3R4dCwg YmYxNl90eXBlLCAzLjE0MTUpOworICBnY2Nfaml0X2dsb2JhbF9zZXRfaW5pdGlhbGl6ZXJfcnZh bHVlIChmb28sIHZhbHVlKTsKK30KKworLyogeyBkZy1maW5hbCB7IGppdC12ZXJpZnktb3V0cHV0 LWZpbGUtd2FzLWNyZWF0ZWQgIiIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgaml0LXZlcmlmeS1h c3NlbWJsZXItb3V0cHV0ICIudmFsdWUJMTY0NTciIH0gfSAqLworLyogeyBkZy1maW5hbCB7IGpp dC12ZXJpZnktYXNzZW1ibGVyLW91dHB1dCAiLnNpemUJZm9vLCAyIiB9IH0gKi8KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtdHlwZXMuYyBiL2djYy90ZXN0c3VpdGUvaml0 LmRnL3Rlc3QtdHlwZXMuYwppbmRleCBhMDE5NDRlMzVmYS4uZjUxMjUyZTBkYTAgMTAwNjQ0Ci0t LSBhL2djYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtdHlwZXMuYworKysgYi9nY2MvdGVzdHN1aXRl L2ppdC5kZy90ZXN0LXR5cGVzLmMKQEAgLTEsMyArMSw0IEBACisjaW5jbHVkZSA8aW1taW50cmlu Lmg+CiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8 c3RkaW8uaD4KQEAgLTQ5Miw0ICs0OTMsNyBAQCB2ZXJpZnlfY29kZSAoZ2NjX2ppdF9jb250ZXh0 ICpjdHh0LCBnY2Nfaml0X3Jlc3VsdCAqcmVzdWx0KQogCiAgIENIRUNLX1ZBTFVFIChnY2Nfaml0 X3R5cGVfZ2V0X3NpemUgKGdjY19qaXRfY29udGV4dF9nZXRfdHlwZSAoY3R4dCwgR0NDX0pJVF9U WVBFX0ZMT0FUKSksIHNpemVvZiAoZmxvYXQpKTsKICAgQ0hFQ0tfVkFMVUUgKGdjY19qaXRfdHlw ZV9nZXRfc2l6ZSAoZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChjdHh0LCBHQ0NfSklUX1RZUEVf RE9VQkxFKSksIHNpemVvZiAoZG91YmxlKSk7CisjaWZkZWYgSEFWRV9CRm1vZGUKKyAgQ0hFQ0tf VkFMVUUgKGdjY19qaXRfdHlwZV9nZXRfc2l6ZSAoZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChj dHh0LCBHQ0NfSklUX1RZUEVfQkZMT0FUMTYpKSwgc2l6ZW9mIChfX2JmbG9hdDE2KSk7CisjZW5k aWYKIH0KLS0gCjIuNDMuMAoK --=-R6vWu2en84kkTj8n7ccW--