From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Vibhav Pant Newsgroups: gmane.emacs.devel Subject: [PATCH] comp.c: Use the newly added bitcast API for type coercion, when available. (feature/jit-improved-type-punning) Date: Tue, 27 Sep 2022 23:45:05 +0530 Message-ID: Reply-To: vibhavp@gmail.com Mime-Version: 1.0 Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-JzuyKryzXMw/BpVjmGV/" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27305"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.44.4 To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Sep 27 20:16:32 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1odF8C-0006vA-9e for ged-emacs-devel@m.gmane-mx.org; Tue, 27 Sep 2022 20:16:32 +0200 Original-Received: from localhost ([::1]:55898 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1odF8B-0006Pm-2l for ged-emacs-devel@m.gmane-mx.org; Tue, 27 Sep 2022 14:16:31 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:57684) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1odF6w-0005Z9-2M for emacs-devel@gnu.org; Tue, 27 Sep 2022 14:15:14 -0400 Original-Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]:40888) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1odF6t-0000hn-Sp for emacs-devel@gnu.org; Tue, 27 Sep 2022 14:15:13 -0400 Original-Received: by mail-pl1-x633.google.com with SMTP id b21so9802842plz.7 for ; Tue, 27 Sep 2022 11:15:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:user-agent:date:to:reply-to:from:subject:message-id :from:to:cc:subject:date; bh=L5LM1BRQBx4fAQ76FXes7x2A2S2Ck0FKoCwj5iNPaoI=; b=YU7QmMmDj0l/LzXptV3DJX1TlpA3UBeJmRh6RMNbZrrzYKFQ9DYxIPZrn0P6ze/mh+ vtUU0aS++q4mkuBLeTowvS4fLctVgb1bfdJOlN7GI/ftbP+LBCkTds6kIuf0MOABukIH JotGYg8+0g7MrR3QLAtlPdQ/WVzFmm6D4NU/BQhCihoC4vBrlX4oaKiWoZJieMXg95D+ nFIyAgbWnSJB9FfJ8Oo23BR8BXG3w/GBFZrlJW2eSE/3RwkI2CAgRgoxzvT399VxDKSj 07rDqDc4eHHwG0WNgpe70fgS10hvOlFxRJsQ8jT3InXZOwH+L32JOhHo2kfh0Lptza1p XXBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:date:to:reply-to:from:subject:message-id :x-gm-message-state:from:to:cc:subject:date; bh=L5LM1BRQBx4fAQ76FXes7x2A2S2Ck0FKoCwj5iNPaoI=; b=ci8En2dvHq33N2hp0cNrh1kiYzcrkmU3uzplXSE/NmJ6NkLuM89lvtNdd8m4dYqZLR 7w2EZUFzDg5yx/SPlkYMU6Z7wazH3x/XFwRuJUmxEiSY8P7UbBEqcSUW49i3o8xHOeFk QzA7MYqCP5PPT1JXjAzgsS4fes1Kh5Q5tSI8S2eYeWv96MNmEEnCFvBtFpMRqxLCBTvh 2nWGrZtcTjcMIqN3i//X8h11B6L05OqnFHYz/ffLo19gxuFLJegg9cq0TmBez9pm8CDw QLaWDNcR+d0cO6FIcXkVk3b/JElw3RX0eEVKcV28sDvBNxt5iURuUsybtSCBCCg1TP4u Vm/Q== X-Gm-Message-State: ACrzQf3KtyutAUc3jHJuTOCtG+SA5QYsV4BCmfvF7EBH9i47TVZW56Bw a/zQFDj6tQqV0FCfpkCT2w4L0PbtEHg= X-Google-Smtp-Source: AMsMyM6vrkGwyvFZdh40zh0emby1lBFCAI2CkPiiPIXEGZk9KHYVbYjovv27aSSDSMZQg3UZO8DLlw== X-Received: by 2002:a17:902:e749:b0:178:3980:45ad with SMTP id p9-20020a170902e74900b00178398045admr28355732plf.153.1664302509764; Tue, 27 Sep 2022 11:15:09 -0700 (PDT) Original-Received: from ?IPv6:2401:4900:1f35:a39:4488:f5cd:b3d9:49ff? ([2401:4900:1f35:a39:4488:f5cd:b3d9:49ff]) by smtp.gmail.com with ESMTPSA id n2-20020a622702000000b0053653c6b9f9sm2079018pfn.204.2022.09.27.11.15.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Sep 2022 11:15:09 -0700 (PDT) Received-SPF: pass client-ip=2607:f8b0:4864:20::633; envelope-from=vibhavp@gmail.com; helo=mail-pl1-x633.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:296365 Archived-At: --=-JzuyKryzXMw/BpVjmGV/ Content-Type: multipart/mixed; boundary="=-80jATtK9bUbL8jlt2vdF" --=-80jATtK9bUbL8jlt2vdF Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable * src/comp.c: Add declarations for gcc_jit_type_is_pointer, gcc_jit_context_new_bitcast, when provided. * (type_to_cast_index, define_type_punning, define_cast_from_to, define_cast_functions): Define functions when gcc_jit_context_new_bitcast is not available. * (emit_coerce): Use gcc_jit_context_new_bitcast to coerce types, when available. The code is also available on the branch feature/jit-improved-type- punning. Thanks, Vibhav --=20 Vibhav Pant vibhavp@gmail.com GPG: 7ED1 D48C 513C A024 BE3A 785F E3FB 28CB 6AB5 9598 --=-80jATtK9bUbL8jlt2vdF Content-Type: text/x-patch; name="comp-bitcast.patch"; charset="UTF-8" Content-Description: Content-Disposition: inline; filename="comp-bitcast.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9jb21wLmMgYi9zcmMvY29tcC5jCmluZGV4IDQ4MTNjYTA0YTkuLmRk ZmJlMjYyM2UgMTAwNjQ0Ci0tLSBhL3NyYy9jb21wLmMKKysrIGIvc3JjL2NvbXAuYwpAQCAtNjgs NiArNjgsNyBAQAogI3VuZGVmIGdjY19qaXRfY29udGV4dF9nZXRfdHlwZQogI3VuZGVmIGdjY19q aXRfY29udGV4dF9uZXdfYXJyYXlfYWNjZXNzCiAjdW5kZWYgZ2NjX2ppdF9jb250ZXh0X25ld19h cnJheV90eXBlCisjdW5kZWYgZ2NjX2ppdF9jb250ZXh0X25ld19iaXRjYXN0CiAjdW5kZWYgZ2Nj X2ppdF9jb250ZXh0X25ld19iaW5hcnlfb3AKICN1bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3X2Nh bGwKICN1bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3X2NhbGxfdGhyb3VnaF9wdHIKQEAgLTEwOCw2 ICsxMDksNyBAQAogI3VuZGVmIGdjY19qaXRfc3RydWN0X3NldF9maWVsZHMKICN1bmRlZiBnY2Nf aml0X3R5cGVfZ2V0X2NvbnN0CiAjdW5kZWYgZ2NjX2ppdF90eXBlX2dldF9wb2ludGVyCisjdW5k ZWYgZ2NjX2ppdF90eXBlX2lzX3BvaW50ZXIKICN1bmRlZiBnY2Nfaml0X3ZlcnNpb25fbWFqb3IK ICN1bmRlZiBnY2Nfaml0X3ZlcnNpb25fbWlub3IKICN1bmRlZiBnY2Nfaml0X3ZlcnNpb25fcGF0 Y2hsZXZlbApAQCAtMTgwLDggKzE4MiwxMyBAQCBERUZfRExMX0ZOIChnY2Nfaml0X3J2YWx1ZSAq LCBnY2Nfaml0X2NvbnRleHRfbmV3X2NhbGxfdGhyb3VnaF9wdHIsCiAgICAgICAgICAgICAoZ2Nj X2ppdF9jb250ZXh0ICpjdHh0LCBnY2Nfaml0X2xvY2F0aW9uICpsb2MsCiAgICAgICAgICAgICAg Z2NjX2ppdF9ydmFsdWUgKmZuX3B0ciwgaW50IG51bWFyZ3MsIGdjY19qaXRfcnZhbHVlICoqYXJn cykpOwogREVGX0RMTF9GTiAoZ2NjX2ppdF9ydmFsdWUgKiwgZ2NjX2ppdF9jb250ZXh0X25ld19j YXN0LAorICAgICAgICAgICAgKGdjY19qaXRfY29udGV4dCAqIGN0eHQsIGdjY19qaXRfbG9jYXRp b24gKmxvYywKKyAgICAgICAgICAgICBnY2Nfaml0X3J2YWx1ZSAqcnZhbHVlLCBnY2Nfaml0X3R5 cGUgKnR5cGUpKTsKKyNpZmRlZiBMSUJHQ0NKSVRfSEFWRV9nY2Nfaml0X2NvbnRleHRfbmV3X2Jp dGNhc3QKK0RFRl9ETExfRk4gKGdjY19qaXRfcnZhbHVlICosIGdjY19qaXRfY29udGV4dF9uZXdf Yml0Y2FzdCwKICAgICAgICAgICAgIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfbG9j YXRpb24gKmxvYywKICAgICAgICAgICAgICBnY2Nfaml0X3J2YWx1ZSAqcnZhbHVlLCBnY2Nfaml0 X3R5cGUgKnR5cGUpKTsKKyNlbmRpZgogREVGX0RMTF9GTiAoZ2NjX2ppdF9ydmFsdWUgKiwgZ2Nj X2ppdF9jb250ZXh0X25ld19jb21wYXJpc29uLAogICAgICAgICAgICAgKGdjY19qaXRfY29udGV4 dCAqY3R4dCwgZ2NjX2ppdF9sb2NhdGlvbiAqbG9jLAogICAgICAgICAgICAgIGVudW0gZ2NjX2pp dF9jb21wYXJpc29uIG9wLCBnY2Nfaml0X3J2YWx1ZSAqYSwgZ2NjX2ppdF9ydmFsdWUgKmIpKTsK QEAgLTIyNCw2ICsyMzEsOSBAQCBERUZfRExMX0ZOIChnY2Nfaml0X3R5cGUgKiwgZ2NjX2ppdF9z dHJ1Y3RfYXNfdHlwZSwKICAgICAgICAgICAgIChnY2Nfaml0X3N0cnVjdCAqc3RydWN0X3R5cGUp KTsKIERFRl9ETExfRk4gKGdjY19qaXRfdHlwZSAqLCBnY2Nfaml0X3R5cGVfZ2V0X2NvbnN0LCAo Z2NjX2ppdF90eXBlICp0eXBlKSk7CiBERUZfRExMX0ZOIChnY2Nfaml0X3R5cGUgKiwgZ2NjX2pp dF90eXBlX2dldF9wb2ludGVyLCAoZ2NjX2ppdF90eXBlICp0eXBlKSk7CisjaWZkZWYgTElCR0ND SklUX0hBVkVfUkVGTEVDVElPTgorREVGX0RMTF9GTiAoZ2NjX2ppdF90eXBlICosIGdjY19qaXRf dHlwZV9pc19wb2ludGVyLCAoZ2NjX2ppdF90eXBlICp0eXBlKSk7CisjZW5kaWYKIERFRl9ETExf Rk4gKHZvaWQsIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQsCiAgICAgICAgICAgICAoZ2Nj X2ppdF9ibG9jayAqYmxvY2ssIGdjY19qaXRfbG9jYXRpb24gKmxvYywgZ2NjX2ppdF9sdmFsdWUg Kmx2YWx1ZSwKICAgICAgICAgICAgICBnY2Nfaml0X3J2YWx1ZSAqcnZhbHVlKSk7CkBAIC0yOTMs NiArMzAzLDkgQEAgaW5pdF9nY2NqaXRfZnVuY3Rpb25zICh2b2lkKQogICBMT0FEX0RMTF9GTiAo bGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlKTsKICAgTE9BRF9ETExfRk4gKGxpYnJh cnksIGdjY19qaXRfY29udGV4dF9uZXdfYXJyYXlfYWNjZXNzKTsKICAgTE9BRF9ETExfRk4gKGxp YnJhcnksIGdjY19qaXRfY29udGV4dF9uZXdfYXJyYXlfdHlwZSk7CisjaWZkZWYgTElCR0NDSklU X0hBVkVfZ2NjX2ppdF9jb250ZXh0X25ld19iaXRjYXN0CisgIExPQURfRExMX0ZOIChsaWJyYXJ5 LCBnY2Nfaml0X2NvbnRleHRfbmV3X2JpdGNhc3QpOworI2VuZGlmCiAgIExPQURfRExMX0ZOIChs aWJyYXJ5LCBnY2Nfaml0X2NvbnRleHRfbmV3X2JpbmFyeV9vcCk7CiAgIExPQURfRExMX0ZOIChs aWJyYXJ5LCBnY2Nfaml0X2NvbnRleHRfbmV3X2NhbGwpOwogICBMT0FEX0RMTF9GTiAobGlicmFy eSwgZ2NjX2ppdF9jb250ZXh0X25ld19jYWxsX3Rocm91Z2hfcHRyKTsKQEAgLTMzNCw2ICszNDcs OSBAQCBpbml0X2djY2ppdF9mdW5jdGlvbnMgKHZvaWQpCiAgIExPQURfRExMX0ZOIChsaWJyYXJ5 LCBnY2Nfaml0X3N0cnVjdF9zZXRfZmllbGRzKTsKICAgTE9BRF9ETExfRk4gKGxpYnJhcnksIGdj Y19qaXRfdHlwZV9nZXRfY29uc3QpOwogICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ2NjX2ppdF90 eXBlX2dldF9wb2ludGVyKTsKKyNpZmRlZiBMSUJHQ0NKSVRfSEFWRV9SRUZMRUNUSU9OCisgIExP QURfRExMX0ZOIChsaWJyYXJ5LCBnY2Nfaml0X3R5cGVfaXNfcG9pbnRlcik7CisjZW5kaWYKICAg TE9BRF9ETExfRk5fT1BUIChsaWJyYXJ5LCBnY2Nfaml0X2NvbnRleHRfYWRkX2NvbW1hbmRfbGlu ZV9vcHRpb24pOwogICBMT0FEX0RMTF9GTl9PUFQgKGxpYnJhcnksIGdjY19qaXRfY29udGV4dF9h ZGRfZHJpdmVyX29wdGlvbik7CiAjaWYgZGVmaW5lZCAoTElCR0NDSklUX0hBVkVfZ2NjX2ppdF9n bG9iYWxfc2V0X2luaXRpYWxpemVyKQpAQCAtMzY4LDYgKzM4NCw5IEBAICNkZWZpbmUgZ2NjX2pp dF9jb250ZXh0X2dldF9pbnRfdHlwZSBmbl9nY2Nfaml0X2NvbnRleHRfZ2V0X2ludF90eXBlCiAj ZGVmaW5lIGdjY19qaXRfY29udGV4dF9nZXRfdHlwZSBmbl9nY2Nfaml0X2NvbnRleHRfZ2V0X3R5 cGUKICNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0X25ld19hcnJheV9hY2Nlc3MgZm5fZ2NjX2ppdF9j b250ZXh0X25ld19hcnJheV9hY2Nlc3MKICNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0X25ld19hcnJh eV90eXBlIGZuX2djY19qaXRfY29udGV4dF9uZXdfYXJyYXlfdHlwZQorI2lmZGVmIExJQkdDQ0pJ VF9IQVZFX2djY19qaXRfY29udGV4dF9uZXdfYml0Y2FzdAorICAjZGVmaW5lIGdjY19qaXRfY29u dGV4dF9uZXdfYml0Y2FzdCBmbl9nY2Nfaml0X2NvbnRleHRfbmV3X2JpdGNhc3QKKyNlbmRpZgog I2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X2JpbmFyeV9vcCBmbl9nY2Nfaml0X2NvbnRleHRf bmV3X2JpbmFyeV9vcAogI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X2NhbGwgZm5fZ2NjX2pp dF9jb250ZXh0X25ld19jYWxsCiAjZGVmaW5lIGdjY19qaXRfY29udGV4dF9uZXdfY2FsbF90aHJv dWdoX3B0ciBmbl9nY2Nfaml0X2NvbnRleHRfbmV3X2NhbGxfdGhyb3VnaF9wdHIKQEAgLTQxMCw2 ICs0MjksOSBAQCAjZGVmaW5lIGdjY19qaXRfcnZhbHVlX2RlcmVmZXJlbmNlX2ZpZWxkIGZuX2dj Y19qaXRfcnZhbHVlX2RlcmVmZXJlbmNlX2ZpZWxkCiAjZGVmaW5lIGdjY19qaXRfcnZhbHVlX2dl dF90eXBlIGZuX2djY19qaXRfcnZhbHVlX2dldF90eXBlCiAjZGVmaW5lIGdjY19qaXRfc3RydWN0 X2FzX3R5cGUgZm5fZ2NjX2ppdF9zdHJ1Y3RfYXNfdHlwZQogI2RlZmluZSBnY2Nfaml0X3N0cnVj dF9zZXRfZmllbGRzIGZuX2djY19qaXRfc3RydWN0X3NldF9maWVsZHMKKyNpZmRlZiBMSUJHQ0NK SVRfSEFWRV9SRUZMRUNUSU9OCisjZGVmaW5lIGdjY19qaXRfdHlwZV9pc19wb2ludGVyIGZuX2dj Y19qaXRfdHlwZV9pc19wb2ludGVyCisjZW5kaWYKICNkZWZpbmUgZ2NjX2ppdF90eXBlX2dldF9j b25zdCBmbl9nY2Nfaml0X3R5cGVfZ2V0X2NvbnN0CiAjZGVmaW5lIGdjY19qaXRfdHlwZV9nZXRf cG9pbnRlciBmbl9nY2Nfaml0X3R5cGVfZ2V0X3BvaW50ZXIKICNpZiBkZWZpbmVkIChMSUJHQ0NK SVRfSEFWRV9nY2Nfaml0X3ZlcnNpb24pCkBAIC01MTgsNyArNTQwLDkgQEAgI2RlZmluZSBGX1JF TE9DX01BWF9TSVpFIDE1MDAKIAogc3RhdGljIGZfcmVsb2NfdCBmcmVsb2M7CiAKKyNpZm5kZWYg TElCR0NDSklUX0hBVkVfZ2NjX2ppdF9jb250ZXh0X25ld19iaXRjYXN0CiAjZGVmaW5lIE5VTV9D QVNUX1RZUEVTIDE1CisjZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3QgewogICBFTUFDU19JTlQgbGVu OwpAQCAtNTkzLDEzICs2MTcsMTUgQEAgI2RlZmluZSBOVU1fQ0FTVF9UWVBFUyAxNQogICBnY2Nf aml0X3J2YWx1ZSAqY3VycmVudF90aHJlYWRfcmVmOwogICAvKiBPdGhlciBnbG9iYWxzLiAgKi8K ICAgZ2NjX2ppdF9ydmFsdWUgKnB1cmVfcHRyOwotICAvKiBsaWJnY2NqaXQgaGFzIHJlYWxseSBs aW1pdGVkIHN1cHBvcnQgZm9yIGNhc3RpbmcgdGhlcmVmb3JlIHRoaXMgdW5pb24gd2lsbAotICAg ICBiZSB1c2VkIGZvciB0aGUgc2NvcGUuICAqLworI2lmbmRlZiBMSUJHQ0NKSVRfSEFWRV9nY2Nf aml0X2NvbnRleHRfbmV3X2JpdGNhc3QKKyAgLyogVGhpcyB2ZXJzaW9uIG9mIGxpYmdjY2ppdCBo YXMgcmVhbGx5IGxpbWl0ZWQgc3VwcG9ydCBmb3IgY2FzdGluZworICAgICB0aGVyZWZvcmUgdGhp cyB1bmlvbiB3aWxsIGJlIHVzZWQgZm9yIHRoZSBzY29wZS4gICovCiAgIGdjY19qaXRfdHlwZSAq Y2FzdF91bmlvbl90eXBlOwogICBnY2Nfaml0X2Z1bmN0aW9uICpjYXN0X2Z1bmN0aW9uc19mcm9t X3RvW05VTV9DQVNUX1RZUEVTXVtOVU1fQ0FTVF9UWVBFU107CiAgIGdjY19qaXRfZnVuY3Rpb24g KmNhc3RfcHRyX3RvX2ludDsKICAgZ2NjX2ppdF9mdW5jdGlvbiAqY2FzdF9pbnRfdG9fcHRyOwog ICBnY2Nfaml0X3R5cGUgKmNhc3RfdHlwZXNbTlVNX0NBU1RfVFlQRVNdOworI2VuZGlmCiAgIGdj Y19qaXRfZnVuY3Rpb24gKmZ1bmM7IC8qIEN1cnJlbnQgZnVuY3Rpb24gYmVpbmcgY29tcGlsZWQu ICAqLwogICBib29sIGZ1bmNfaGFzX25vbl9sb2NhbDsgLyogRnJvbSBjb21wLWZ1bmMgaGFzLW5v bi1sb2NhbCBzbG90LiAgKi8KICAgRU1BQ1NfSU5UIGZ1bmNfc3BlZWQ7IC8qIEZyb20gY29tcC1m dW5jIHNwZWVkIHNsb3QuICAqLwpAQCAtMTEwMCw2ICsxMTI2LDcgQEAgZW1pdF9jb25kX2p1bXAg KGdjY19qaXRfcnZhbHVlICp0ZXN0LAogCiB9CiAKKyNpZm5kZWYgTElCR0NDSklUX0hBVkVfZ2Nj X2ppdF9jb250ZXh0X25ld19iaXRjYXN0CiBzdGF0aWMgaW50CiB0eXBlX3RvX2Nhc3RfaW5kZXgg KGdjY19qaXRfdHlwZSAqIHR5cGUpCiB7CkBAIC0xMTA5LDYgKzExMzYsNyBAQCB0eXBlX3RvX2Nh c3RfaW5kZXggKGdjY19qaXRfdHlwZSAqIHR5cGUpCiAKICAgeHNpZ25hbDEgKFFuYXRpdmVfaWNl LCBidWlsZF9zdHJpbmcgKCJ1bnN1cHBvcnRlZCBjYXN0IikpOwogfQorI2VuZGlmCiAKIHN0YXRp YyBnY2Nfaml0X3J2YWx1ZSAqCiBlbWl0X2NvZXJjZSAoZ2NjX2ppdF90eXBlICpuZXdfdHlwZSwg Z2NjX2ppdF9ydmFsdWUgKm9iaikKQEAgLTExNDUsMTQgKzExNzMsNDEgQEAgZW1pdF9jb2VyY2Ug KGdjY19qaXRfdHlwZSAqbmV3X3R5cGUsIGdjY19qaXRfcnZhbHVlICpvYmopCiAgICAgfQogI2Vu ZGlmCiAKKyNpZmRlZiBMSUJHQ0NKSVRfSEFWRV9nY2Nfaml0X2NvbnRleHRfbmV3X2JpdGNhc3QK KyAgYm9vbCBvbGRfaXNfcHRyID0gZ2NjX2ppdF90eXBlX2lzX3BvaW50ZXIgKG9sZF90eXBlKSAh PSBOVUxMOworICBib29sIG5ld19pc19wdHIgPSBnY2Nfaml0X3R5cGVfaXNfcG9pbnRlciAobmV3 X3R5cGUpICE9IE5VTEw7CisKKyAgZ2NjX2ppdF9ydmFsdWUgKnRtcCA9IG9iajsKKworICBpZiAo b2xkX2lzX3B0ciAhPSBuZXdfaXNfcHRyKQorICAgIHsKKyAgICAgIGlmIChvbGRfaXNfcHRyKQor CXsKKwkgIHRtcCA9IGdjY19qaXRfY29udGV4dF9uZXdfY2FzdCAoY29tcC5jdHh0LCBOVUxMLCB0 bXAsCisJCQkJCSAgY29tcC52b2lkX3B0cl90eXBlKTsKKwkgIHRtcCA9IGdjY19qaXRfY29udGV4 dF9uZXdfYml0Y2FzdCAoY29tcC5jdHh0LCBOVUxMLCB0bXAsCisJCQkJCSAgICAgY29tcC51aW50 cHRyX3R5cGUpOworCX0KKyAgICAgIGVsc2UKKwl7CisJICB0bXAgPSBnY2Nfaml0X2NvbnRleHRf bmV3X2Nhc3QgKGNvbXAuY3R4dCwgTlVMTCwgdG1wLAorCQkJCQkgIGNvbXAudWludHB0cl90eXBl KTsKKwkgIHRtcCA9IGdjY19qaXRfY29udGV4dF9uZXdfYml0Y2FzdCAoY29tcC5jdHh0LCBOVUxM LCB0bXAsCisJCQkJCSAgICAgY29tcC52b2lkX3B0cl90eXBlKTsKKwl9CisgICAgfQorICByZXR1 cm4gZ2NjX2ppdF9jb250ZXh0X25ld19jYXN0IChjb21wLmN0eHQsIE5VTEwsIHRtcCwgbmV3X3R5 cGUpOworI2Vsc2UgLyogIWRlZmluZWQoTElCR0NDSklUX0hBVkVfZ2NjX2ppdF9jb250ZXh0X25l d19iaXRjYXN0KSAqLwogICBpbnQgb2xkX2luZGV4ID0gdHlwZV90b19jYXN0X2luZGV4IChvbGRf dHlwZSk7CiAgIGludCBuZXdfaW5kZXggPSB0eXBlX3RvX2Nhc3RfaW5kZXggKG5ld190eXBlKTsK IAogICAvKiBMb29rdXAgdGhlIGFwcHJvcHJpYXRlIGNhc3QgZnVuY3Rpb24gaW4gdGhlIGNhc3Qg bWF0cml4LiAgKi8KICAgcmV0dXJuIGdjY19qaXRfY29udGV4dF9uZXdfY2FsbCAoY29tcC5jdHh0 LAotICAgICAgICAgICBOVUxMLAotICAgICAgICAgICBjb21wLmNhc3RfZnVuY3Rpb25zX2Zyb21f dG9bb2xkX2luZGV4XVtuZXdfaW5kZXhdLAotICAgICAgICAgICAxLCAmb2JqKTsKKwkJCQkgICBO VUxMLAorCQkJCSAgIGNvbXAuY2FzdF9mdW5jdGlvbnNfZnJvbV90bworCQkJCSAgIFtvbGRfaW5k ZXhdW25ld19pbmRleF0sCisJCQkJICAgMSwgJm9iaik7CisjZW5kaWYKIH0KIAogc3RhdGljIGdj Y19qaXRfcnZhbHVlICoKQEAgLTMzMTgsNiArMzM3Myw3IEBAIGRlZmluZV90aHJlYWRfc3RhdGVf c3RydWN0ICh2b2lkKQogICAgIGdjY19qaXRfdHlwZV9nZXRfcG9pbnRlciAoZ2NjX2ppdF9zdHJ1 Y3RfYXNfdHlwZSAoY29tcC50aHJlYWRfc3RhdGVfcykpOwogfQogCisjaWZuZGVmIExJQkdDQ0pJ VF9IQVZFX2djY19qaXRfY29udGV4dF9uZXdfYml0Y2FzdAogc3RhdGljIGdjY19qaXRfZnVuY3Rp b24gKgogZGVmaW5lX3R5cGVfcHVubmluZyAoY29uc3QgY2hhciAqbmFtZSwKIAkJICAgICBnY2Nf aml0X3R5cGUgKmZyb20sIGdjY19qaXRfZmllbGQgKmZyb21fZmllbGQsCkBAIC0zMzM2LDYgKzMz OTIsNyBAQCBkZWZpbmVfdHlwZV9wdW5uaW5nIChjb25zdCBjaGFyICpuYW1lLAogCiAgIERFQ0xf QkxPQ0sgKGVudHJ5X2Jsb2NrLCByZXN1bHQpOwogCisKICAgZ2NjX2ppdF9sdmFsdWUgKnRtcF91 bmlvbgogICAgID0gZ2NjX2ppdF9mdW5jdGlvbl9uZXdfbG9jYWwgKHJlc3VsdCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLApAQCAtMzQyMiw2ICszNDc5LDcgQEAgZGVm aW5lX2Nhc3RfZnVuY3Rpb25zICh2b2lkKQogICAgICAgICB7IGNvbXAudW5zaWduZWRfbG9uZ190 eXBlLCAidW5zaWduZWRfbG9uZyIsIGZhbHNlIH0sCiAgICAgICAgIHsgY29tcC51bnNpZ25lZF90 eXBlLCAidW5zaWduZWQiLCBmYWxzZSB9LAogICAgICAgICB7IGNvbXAudm9pZF9wdHJfdHlwZSwg InZvaWRfcHRyIiwgdHJ1ZSB9IH07CisKICAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9maWVs ZHNbMl07CiAKICAgLyogRGVmaW5lIHRoZSB1bmlvbiB1c2VkIGZvciB0eXBlIHB1bm5pbmcuICAq LwpAQCAtMzQ1MSw2ICszNTA5LDcgQEAgZGVmaW5lX2Nhc3RfZnVuY3Rpb25zICh2b2lkKQogCQkJ CQkgICAgICBjb21wLnZvaWRfcHRyX3R5cGUsCiAJCQkJCSAgICAgIGNhc3RfdW5pb25fZmllbGRz WzBdKTsKIAorCiAgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVNX0NBU1RfVFlQRVM7ICsraSkKICAg ICBjb21wLmNhc3RfdHlwZXNbaV0gPSBjYXN0X3R5cGVzW2ldLnR5cGU7CiAKQEAgLTM0NjAsNiAr MzUxOSw3IEBAIGRlZmluZV9jYXN0X2Z1bmN0aW9ucyAodm9pZCkKICAgICAgICAgY29tcC5jYXN0 X2Z1bmN0aW9uc19mcm9tX3RvW2ldW2pdID0KICAgICAgICAgICBkZWZpbmVfY2FzdF9mcm9tX3Rv IChjYXN0X3R5cGVzW2ldLCBjYXN0X3R5cGVzW2pdKTsKIH0KKyNlbmRpZiAvKiAhZGVmaW5lZChM SUJHQ0NKSVRfSEFWRV9nY2Nfaml0X2NvbnRleHRfbmV3X2JpdGNhc3QpICovCiAKIHN0YXRpYyB2 b2lkCiBkZWZpbmVfQ0hFQ0tfVFlQRSAodm9pZCkKQEAgLTQ2NjAsNyArNDcyMCw5IEBAIERFRlVO ICgiY29tcC0taW5pdC1jdHh0IiwgRmNvbXBfX2luaXRfY3R4dCwgU2NvbXBfX2luaXRfY3R4dCwK ICAgZGVmaW5lX2ptcF9idWYgKCk7CiAgIGRlZmluZV9oYW5kbGVyX3N0cnVjdCAoKTsKICAgZGVm aW5lX3RocmVhZF9zdGF0ZV9zdHJ1Y3QgKCk7CisjaWZuZGVmIExJQkdDQ0pJVF9IQVZFX2djY19q aXRfY29udGV4dF9uZXdfYml0Y2FzdAogICBkZWZpbmVfY2FzdF9mdW5jdGlvbnMgKCk7CisjZW5k aWYKIAogICByZXR1cm4gUXQ7CiB9Cg== --=-80jATtK9bUbL8jlt2vdF-- --=-JzuyKryzXMw/BpVjmGV/ Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEftHUjFE8oCS+Onhf4/soy2q1lZgFAmMzPakACgkQ4/soy2q1 lZg3uwgAtcsE8aGiHK3ypN1cKJI4hIyJaywNwPPQOldRpR2H4clIiEfGXhXNzdjN huZYxJNyaK6Elxgo2rZMUe9oHzGZ8FiQO8Y6WrBXAKdyvzxG3zA4RdV8DJcS0BY9 eH//Sj1JRdWRGug4Zq6E6zBAxlvOFvh7y1DUIR1DQd1iwNBEmTkK2HXjaU5mdA5t AsAXCKjmaNbd5+Wp3KVHsz5g6hGK2mK9ZeZEr10qXEvV4p+h1HKlYmk9Y9kHTEBw NRqB7Ev27iloy1toaYoHuIPUMOo1GBdMAkzZpTlqkzB+5aKfjaRd7jAh+zI1pI4U c+v9Ehx6Pj8zJEO76kHbBBAuBg/mqw== =lNMS -----END PGP SIGNATURE----- --=-JzuyKryzXMw/BpVjmGV/--