From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sender4-pp-o91.zoho.com (sender4-pp-o91.zoho.com [136.143.188.91]) by sourceware.org (Postfix) with ESMTPS id 95AFB3858D3C; Tue, 18 Jan 2022 00:24:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 95AFB3858D3C ARC-Seal: i=1; a=rsa-sha256; t=1642465462; cv=none; d=zohomail.com; s=zohoarc; b=HMdbOmTd/Ii2XQ6Cc5d1gs/5Qd9nVjQHPaS+0yKxIzNXD8ERtLMmS+dlaveGInuKJIIdZHDcNEAUKad8Hhcrrpswa6RCrXjJv6eG9rB/kJhZv47IEhsAA86XI2KhthxXM3bvvjx9vv/0McSe3+0Femx7CkaCm6Qpl/FjrvRTtxY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1642465462; h=Content-Type:Date:From:MIME-Version:Message-ID:Subject:To; bh=n2JCbsLr+IypI6//jkUc2k0uDALyzOeCEhG3gdceYrs=; b=SSuBP7OsrSVWg1xVANEB/WbTWjc0z/Stk0Nou9kJBNkGM/eLeV3z1gFWzYD/i3FZmVAktr3UppGC58lCXQ1LBYFKfZtQfutcZaL+flZ0S0yyuctDqwYNAQObV1ezVohoE1bIW6AWxBOYjRYeJNGIMun1T5jjQzTyrbrnW9Ln9qY= 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= Received: from [192.168.1.174] (38.87.11.6 [38.87.11.6]) by mx.zohomail.com with SMTPS id 1642465460706354.125737497307; Mon, 17 Jan 2022 16:24:20 -0800 (PST) Message-ID: Subject: [PATCH] libgccjit: Add support for register variables [PR104072] From: Antoni Boucher To: gcc-patches@gcc.gnu.org, jit@gcc.gnu.org Date: Mon, 17 Jan 2022 19:24:19 -0500 Content-Type: multipart/mixed; boundary="=-3Up5SWVLsc/QQ0YfSiol" User-Agent: Evolution 3.42.3 MIME-Version: 1.0 X-Zoho-Virus-Status: 1 X-ZohoMailClient: External X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP 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: jit@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Jit mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Jan 2022 00:24:28 -0000 --=-3Up5SWVLsc/QQ0YfSiol Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Hi. This patch add supports for register variables in libgccjit. It passes the JIT tests, but since I added a function in reginfo.c, I wonder if I should run the whole testsuite. Thanks for the review. --=-3Up5SWVLsc/QQ0YfSiol Content-Disposition: attachment; filename*0=0001-libgccjit-Add-support-for-register-variables-PR10407.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-libgccjit-Add-support-for-register-variables-PR10407.patch"; charset="UTF-8" RnJvbSAzMjhlY2EyYmU0MzhjNGEwNWMyMTk0MmI0YjJjMzY1MGZmN2RlMGViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmkgQm91Y2hlciA8Ym91YW50b0B6b2hvLmNvbT4KRGF0 ZTogU3VuLCAyOSBBdWcgMjAyMSAxMDo1NDo1NSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIGxpYmdj Y2ppdDogQWRkIHN1cHBvcnQgZm9yIHJlZ2lzdGVyIHZhcmlhYmxlcyBbUFIxMDQwNzJdCgoyMDIy LTAxLTE3ICBBbnRvbmkgQm91Y2hlciA8Ym91YW50b0B6b2hvLmNvbT4KCmdjYy9qaXQvCglQUiB0 YXJnZXQvMTA0MDcyCgkqIGRvY3MvdG9waWNzL2NvbXBhdGliaWxpdHkucnN0IChMSUJHQ0NKSVRf QUJJXzIxKTogTmV3IEFCSSB0YWcuCgkqIGRvY3MvdG9waWNzL2V4cHJlc3Npb25zLnJzdDogQWRk IGRvY3VtZW50YXRpb24gZm9yIHRoZQoJZnVuY3Rpb24gZ2NjX2ppdF9sdmFsdWVfc2V0X3JlZ2lz dGVyX25hbWUuCgkqIGR1bW15LWZyb250ZW5kLmM6IENsZWFyIHRoZSBnbG9iYWxfcmVncyBjYWNo ZSB0byBhdm9pZCBhbgoJaXNzdWUgd2hlcmUgY29tcGlsaW5nIG11bHRpcGxlIHRpbWVzIHRoZSBz YW1lIGNvZGUgZ2l2ZXMgYW4KCWVycm9yIGFib3V0IGFzc2lnbmluZyB0aGUgc2FtZSByZWdpc3Rl ciB0byAyIGdsb2JhbCB2YXJpYWJsZXMuCgkqIGppdC1wbGF5YmFjay5oOiBOZXcgZnVuY3Rpb24g KHNldF9yZWdpc3Rlcl9uYW1lKS4KCSogaml0LXJlY29yZGluZy5jOiBOZXcgZnVuY3Rpb24gKHNl dF9yZWdpc3Rlcl9uYW1lKSBhbmQgYWRkCglzdXBwb3J0IGZvciByZWdpc3RlciB2YXJpYWJsZXMu CgkqIGppdC1yZWNvcmRpbmcuaDogTmV3IGZpZWxkIChtX3JlZ19uYW1lKSBhbmQgbmV3IGZ1bmN0 aW9uCgkoc2V0X3JlZ2lzdGVyX25hbWUpLgoJKiBsaWJnY2NqaXQuYzogTmV3IGZ1bmN0aW9uIChn Y2Nfaml0X2x2YWx1ZV9zZXRfcmVnaXN0ZXJfbmFtZSkuCgkqIGxpYmdjY2ppdC5oOiBOZXcgZnVu Y3Rpb24gKGdjY19qaXRfbHZhbHVlX3NldF9yZWdpc3Rlcl9uYW1lKS4KCSogbGliZ2Njaml0Lm1h cCAoTElCR0NDSklUX0FCSV8yMSk6IE5ldyBBQkkgdGFnLgoKZ2NjLwoJKiByZWdpbmZvLmM6IE5l dyBmdW5jdGlvbiAoY2xlYXJfZ2xvYmFsX3JlZ3NfY2FjaGUpLgoJKiBzeXN0ZW0uaDogTmV3IGZ1 bmN0aW9uIChjbGVhcl9nbG9iYWxfcmVnc19jYWNoZSkuCgpnY2MvdGVzdHN1aXRlLwoJKiBqaXQu ZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3RzLmg6IEFkZCBuZXcKCXRlc3QtcmVnaXN0ZXItdmFyaWFi bGUuCgkqIGppdC5kZy90ZXN0LXJlZ2lzdGVyLXZhcmlhYmxlLmM6IE5ldyB0ZXN0LgotLS0KIGdj Yy9qaXQvZG9jcy90b3BpY3MvY29tcGF0aWJpbGl0eS5yc3QgICAgICAgICB8ICA5ICsrKysKIGdj Yy9qaXQvZG9jcy90b3BpY3MvZXhwcmVzc2lvbnMucnN0ICAgICAgICAgICB8IDIwICsrKysrKysK IGdjYy9qaXQvZHVtbXktZnJvbnRlbmQuYyAgICAgICAgICAgICAgICAgICAgICB8ICAyICsKIGdj Yy9qaXQvaml0LXBsYXliYWNrLmggICAgICAgICAgICAgICAgICAgICAgICB8ICA5ICsrKysKIGdj Yy9qaXQvaml0LXJlY29yZGluZy5jICAgICAgICAgICAgICAgICAgICAgICB8IDE4ICsrKysrLS0K IGdjYy9qaXQvaml0LXJlY29yZGluZy5oICAgICAgICAgICAgICAgICAgICAgICB8ICA5ICsrLS0K IGdjYy9qaXQvbGliZ2Njaml0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyICsrKysr CiBnY2Mvaml0L2xpYmdjY2ppdC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNyArKysK IGdjYy9qaXQvbGliZ2Njaml0Lm1hcCAgICAgICAgICAgICAgICAgICAgICAgICB8ICA5ICsrKysK IGdjYy9yZWdpbmZvLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKwog Z2NjL3N5c3RlbS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKwogZ2Nj L3Rlc3RzdWl0ZS9qaXQuZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3RzLmggIHwgIDMgKysKIGdjYy90 ZXN0c3VpdGUvaml0LmRnL3Rlc3QtcmVnaXN0ZXItdmFyaWFibGUuYyB8IDU0ICsrKysrKysrKysr KysrKysrKysKIDEzIGZpbGVzIGNoYW5nZWQsIDE1NiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtcmVnaXN0 ZXItdmFyaWFibGUuYwoKZGlmZiAtLWdpdCBhL2djYy9qaXQvZG9jcy90b3BpY3MvY29tcGF0aWJp bGl0eS5yc3QgYi9nY2Mvaml0L2RvY3MvdG9waWNzL2NvbXBhdGliaWxpdHkucnN0CmluZGV4IDE2 Y2ViZTMxYTEwLi5jZDBhZTQ4MzhhMiAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9kb2NzL3RvcGljcy9j b21wYXRpYmlsaXR5LnJzdAorKysgYi9nY2Mvaml0L2RvY3MvdG9waWNzL2NvbXBhdGliaWxpdHku cnN0CkBAIC0zMDIsMyArMzAyLDEyIEBAIHRocmVhZC1sb2NhbCBzdG9yYWdlIG1vZGVsIG9mIGEg dmFyaWFibGU6CiBzZWN0aW9uIG9mIGEgdmFyaWFibGU6CiAKICAgKiA6ZnVuYzpgZ2NjX2ppdF9s dmFsdWVfc2V0X2xpbmtfc2VjdGlvbmAKKworLi4gX0xJQkdDQ0pJVF9BQklfMjE6CisKK2BgTElC R0NDSklUX0FCSV8yMWBgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorYGBMSUJHQ0NKSVRfQUJJ XzIxYGAgY292ZXJzIHRoZSBhZGRpdGlvbiBvZiBhbiBBUEkgZW50cnlwb2ludCB0byBzZXQgdGhl CityZWdpc3RlciBuYW1lIG9mIGEgdmFyaWFibGU6CisKKyAgKiA6ZnVuYzpgZ2NjX2ppdF9sdmFs dWVfc2V0X3JlZ2lzdGVyX25hbWVgCmRpZmYgLS1naXQgYS9nY2Mvaml0L2RvY3MvdG9waWNzL2V4 cHJlc3Npb25zLnJzdCBiL2djYy9qaXQvZG9jcy90b3BpY3MvZXhwcmVzc2lvbnMucnN0CmluZGV4 IDc5MWEyMDM5OGNhLi5hZmUzMzNhNTIwZiAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9kb2NzL3RvcGlj cy9leHByZXNzaW9ucy5yc3QKKysrIGIvZ2NjL2ppdC9kb2NzL3RvcGljcy9leHByZXNzaW9ucy5y c3QKQEAgLTczOCw2ICs3MzgsMjYgQEAgd2hlcmUgdGhlIHJ2YWx1ZSBpcyBjb21wdXRlZCBieSBy ZWFkaW5nIGZyb20gdGhlIHN0b3JhZ2UgYXJlYS4KIAogICAgICAgI2lmZGVmIExJQkdDQ0pJVF9I QVZFX2djY19qaXRfbHZhbHVlX3NldF9saW5rX3NlY3Rpb24KIAorLi4gZnVuY3Rpb246OiB2b2lk CisgICAgICAgICAgICAgIGdjY19qaXRfbHZhbHVlX3NldF9yZWdpc3Rlcl9uYW1lIChnY2Nfaml0 X2x2YWx1ZSAqbHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqcmVnX25hbWUpOworCisgICBTZXQgdGhlIHJlZ2lzdGVyIG5h bWUgb2YgYSB2YXJpYWJsZS4KKyAgIFRoZSBwYXJhbWV0ZXIgYGByZWdfbmFtZWBgIG11c3QgYmUg bm9uLU5VTEwuIEFuYWxvZ291cyB0bzoKKworICAgLi4gY29kZS1ibG9jazo6IGMKKworICAgICBy ZWdpc3RlciBpbnQgdmFyaWFibGUgYXNtICgicjEyIik7CisKKyAgIGluIEMuCisKKyAgIFRoaXMg ZW50cnlwb2ludCB3YXMgYWRkZWQgaW4gOnJlZjpgTElCR0NDSklUX0FCSV8yMWA7IHlvdSBjYW4g dGVzdCBmb3IKKyAgIGl0cyBwcmVzZW5jZSB1c2luZworCisgICAuLiBjb2RlLWJsb2NrOjogYwor CisgICAgICAjaWZkZWYgTElCR0NDSklUX0hBVkVfZ2NjX2ppdF9sdmFsdWVfc2V0X3JlZ2lzdGVy X25hbWUKKwogR2xvYmFsIHZhcmlhYmxlcwogKioqKioqKioqKioqKioqKgogCmRpZmYgLS1naXQg YS9nY2Mvaml0L2R1bW15LWZyb250ZW5kLmMgYi9nY2Mvaml0L2R1bW15LWZyb250ZW5kLmMKaW5k ZXggODRmZjM1OWJmZTMuLjA0ZDhmYzZhYjQ4IDEwMDY0NAotLS0gYS9nY2Mvaml0L2R1bW15LWZy b250ZW5kLmMKKysrIGIvZ2NjL2ppdC9kdW1teS1mcm9udGVuZC5jCkBAIC01OTksNiArNTk5LDgg QEAgaml0X2xhbmdob29rX2luaXQgKHZvaWQpCiAKICAgYnVpbGRfY29tbW9uX2J1aWx0aW5fbm9k ZXMgKCk7CiAKKyAgY2xlYXJfZ2xvYmFsX3JlZ3NfY2FjaGUgKCk7CisKICAgLyogVGhlIGRlZmF1 bHQgcHJlY2lzaW9uIGZvciBmbG9hdGluZyBwb2ludCBudW1iZXJzLiAgVGhpcyBpcyB1c2VkCiAg ICAgIGZvciBmbG9hdGluZyBwb2ludCBjb25zdGFudHMgd2l0aCBhYnN0cmFjdCB0eXBlLiAgVGhp cyBtYXkKICAgICAgZXZlbnR1YWxseSBiZSBjb250cm9sbGFibGUgYnkgYSBjb21tYW5kIGxpbmUg b3B0aW9uLiAgKi8KZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXBsYXliYWNrLmggYi9nY2Mvaml0 L2ppdC1wbGF5YmFjay5oCmluZGV4IGM5M2Q3MDU1ZDQzLi5hZjQ0MjdjNDUwMyAxMDA2NDQKLS0t IGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suaAorKysgYi9nY2Mvaml0L2ppdC1wbGF5YmFjay5oCkBA IC0yNCw2ICsyNCw3IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJ ZiBub3Qgc2VlCiAjaW5jbHVkZSA8dXRpbGl0eT4gLy8gZm9yIHN0ZDo6cGFpcgogCiAjaW5jbHVk ZSAidGltZXZhci5oIgorI2luY2x1ZGUgInZhcmFzbS5oIgogCiAjaW5jbHVkZSAiaml0LXJlY29y ZGluZy5oIgogCkBAIC03MDEsNiArNzAyLDE0IEBAIHB1YmxpYzoKICAgICBzZXRfZGVjbF9zZWN0 aW9uX25hbWUgKGFzX3RyZWUgKCksIG5hbWUpOwogICB9CiAKKyAgdm9pZAorICBzZXRfcmVnaXN0 ZXJfbmFtZSAoY29uc3QgY2hhciogcmVnX25hbWUpCisgIHsKKyAgICBzZXRfdXNlcl9hc3NlbWJs ZXJfbmFtZSAoYXNfdHJlZSAoKSwgcmVnX25hbWUpOworICAgIERFQ0xfUkVHSVNURVIgKGFzX3Ry ZWUgKCkpID0gMTsKKyAgICBERUNMX0hBUkRfUkVHSVNURVIgKGFzX3RyZWUgKCkpID0gMTsKKyAg fQorCiBwcml2YXRlOgogICBib29sIG1hcmtfYWRkcmVzc2FibGUgKGxvY2F0aW9uICpsb2MpOwog fTsKZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXJlY29yZGluZy5jIGIvZ2NjL2ppdC9qaXQtcmVj b3JkaW5nLmMKaW5kZXggZWU4OTM0MTMxZDEuLjM5M2Q3MjI5OGE3IDEwMDY0NAotLS0gYS9nY2Mv aml0L2ppdC1yZWNvcmRpbmcuYworKysgYi9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuYwpAQCAtMzgw Nyw2ICszODA3LDExIEBAIHZvaWQgcmVjb3JkaW5nOjpsdmFsdWU6OnNldF9saW5rX3NlY3Rpb24g KGNvbnN0IGNoYXIgKm5hbWUpCiAgIG1fbGlua19zZWN0aW9uID0gbmV3X3N0cmluZyAobmFtZSk7 CiB9CiAKK3ZvaWQgcmVjb3JkaW5nOjpsdmFsdWU6OnNldF9yZWdpc3Rlcl9uYW1lIChjb25zdCBj aGFyICpyZWdfbmFtZSkKK3sKKyAgbV9yZWdfbmFtZSA9IG5ld19zdHJpbmcgKHJlZ19uYW1lKTsK K30KKwogLyogVGhlIGltcGxlbWVudGF0aW9uIG9mIGNsYXNzIGdjYzo6aml0OjpyZWNvcmRpbmc6 OnBhcmFtLiAgKi8KIAogLyogSW1wbGVtZW50YXRpb24gb2YgcHVyZSB2aXJ0dWFsIGhvb2sgcmVj b3JkaW5nOjptZW1lbnRvOjpyZXBsYXlfaW50bwpAQCAtNDY3Myw2ICs0Njc4LDkgQEAgcmVjb3Jk aW5nOjpnbG9iYWw6OnJlcGxheV9pbnRvIChyZXBsYXllciAqcikKICAgaWYgKG1fbGlua19zZWN0 aW9uICE9IE5VTEwpCiAgICAgZ2xvYmFsLT5zZXRfbGlua19zZWN0aW9uIChtX2xpbmtfc2VjdGlv bi0+Y19zdHIgKCkpOwogCisgIGlmIChtX3JlZ19uYW1lICE9IE5VTEwpCisgICAgZ2xvYmFsLT5z ZXRfcmVnaXN0ZXJfbmFtZSAobV9yZWdfbmFtZS0+Y19zdHIgKCkpOworCiAgIHNldF9wbGF5YmFj a19vYmogKGdsb2JhbCk7CiB9CiAKQEAgLTYzNDMsMTEgKzYzNTEsMTUgQEAgcmVjb3JkaW5nOjpm dW5jdGlvbl9wb2ludGVyOjp3cml0ZV9yZXByb2R1Y2VyIChyZXByb2R1Y2VyICZyKQogdm9pZAog cmVjb3JkaW5nOjpsb2NhbDo6cmVwbGF5X2ludG8gKHJlcGxheWVyICpyKQogewotICBzZXRfcGxh eWJhY2tfb2JqICgKLSAgICBtX2Z1bmMtPnBsYXliYWNrX2Z1bmN0aW9uICgpCisgIHBsYXliYWNr OjpsdmFsdWUgKm9iaiA9IG1fZnVuYy0+cGxheWJhY2tfZnVuY3Rpb24gKCkKICAgICAgIC0+bmV3 X2xvY2FsIChwbGF5YmFja19sb2NhdGlvbiAociwgbV9sb2MpLAogCQkgICBtX3R5cGUtPnBsYXli YWNrX3R5cGUgKCksCi0JCSAgIHBsYXliYWNrX3N0cmluZyAobV9uYW1lKSkpOworCQkgICBwbGF5 YmFja19zdHJpbmcgKG1fbmFtZSkpOworCisgIGlmIChtX3JlZ19uYW1lICE9IE5VTEwpCisgICAg b2JqLT5zZXRfcmVnaXN0ZXJfbmFtZSAobV9yZWdfbmFtZS0+Y19zdHIgKCkpOworCisgIHNldF9w bGF5YmFja19vYmogKG9iaik7CiB9CiAKIC8qIE92ZXJyaWRlIHRoZSBkZWZhdWx0IGltcGxlbWVu dGF0aW9uIG9mCmRpZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuaCBiL2djYy9qaXQv aml0LXJlY29yZGluZy5oCmluZGV4IGI2NjNkMGYyMWY1Li5kODU3NTQ4N2RlNCAxMDA2NDQKLS0t IGEvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmgKKysrIGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmgK QEAgLTExNDcsOCArMTE0Nyw5IEBAIHB1YmxpYzoKIAkgIGxvY2F0aW9uICpsb2MsCiAJICB0eXBl ICp0eXBlXykKICAgICA6IHJ2YWx1ZSAoY3R4dCwgbG9jLCB0eXBlXyksCi0gICAgbV90bHNfbW9k ZWwgKEdDQ19KSVRfVExTX01PREVMX05PTkUpLAotICAgIG1fbGlua19zZWN0aW9uIChOVUxMKQor ICAgIG1fbGlua19zZWN0aW9uIChOVUxMKSwKKyAgICBtX3JlZ19uYW1lIChOVUxMKSwKKyAgICBt X3Rsc19tb2RlbCAoR0NDX0pJVF9UTFNfTU9ERUxfTk9ORSkKICAgICB7fQogCiAgIHBsYXliYWNr OjpsdmFsdWUgKgpAQCAtMTE3MiwxMCArMTE3MywxMiBAQCBwdWJsaWM6CiAgIHZpcnR1YWwgYm9v bCBpc19nbG9iYWwgKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgdm9pZCBzZXRfdGxzX21v ZGVsIChlbnVtIGdjY19qaXRfdGxzX21vZGVsIG1vZGVsKTsKICAgdm9pZCBzZXRfbGlua19zZWN0 aW9uIChjb25zdCBjaGFyICpuYW1lKTsKKyAgdm9pZCBzZXRfcmVnaXN0ZXJfbmFtZSAoY29uc3Qg Y2hhciAqcmVnX25hbWUpOwogCiBwcm90ZWN0ZWQ6Ci0gIGVudW0gZ2NjX2ppdF90bHNfbW9kZWwg bV90bHNfbW9kZWw7CiAgIHN0cmluZyAqbV9saW5rX3NlY3Rpb247CisgIHN0cmluZyAqbV9yZWdf bmFtZTsKKyAgZW51bSBnY2Nfaml0X3Rsc19tb2RlbCBtX3Rsc19tb2RlbDsKIH07CiAKIGNsYXNz IHBhcmFtIDogcHVibGljIGx2YWx1ZQpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2NqaXQuYyBi L2djYy9qaXQvbGliZ2Njaml0LmMKaW5kZXggMDM3MDRlZjEwYjguLjE3NTdhZDU4M2ZlIDEwMDY0 NAotLS0gYS9nY2Mvaml0L2xpYmdjY2ppdC5jCisrKyBiL2djYy9qaXQvbGliZ2Njaml0LmMKQEAg LTI2NDksNiArMjY0OSwxOCBAQCBnY2Nfaml0X2x2YWx1ZV9zZXRfbGlua19zZWN0aW9uIChnY2Nf aml0X2x2YWx1ZSAqbHZhbHVlLAogICBsdmFsdWUtPnNldF9saW5rX3NlY3Rpb24gKHNlY3Rpb25f bmFtZSk7CiB9CiAKKy8qIFB1YmxpYyBlbnRyeXBvaW50LiAgU2VlIGRlc2NyaXB0aW9uIGluIGxp YmdjY2ppdC5oLgorCisgICBBZnRlciBlcnJvci1jaGVja2luZywgdGhlIHJlYWwgd29yayBpcyBk b25lIGJ5IHRoZQorICAgZ2NjOjpqaXQ6OnJlY29yZGluZzo6bHZhbHVlOjpzZXRfcmVnaXN0ZXJf bmFtZSBtZXRob2QgaW4gaml0LXJlY29yZGluZy5jLiAgKi8KKwordm9pZAorZ2NjX2ppdF9sdmFs dWVfc2V0X3JlZ2lzdGVyX25hbWUgKGdjY19qaXRfbHZhbHVlICpsdmFsdWUsCisJCQkJICBjb25z dCBjaGFyICpyZWdfbmFtZSkKK3sKKyAgbHZhbHVlLT5zZXRfcmVnaXN0ZXJfbmFtZSAocmVnX25h bWUpOworfQorCiAvKiBQdWJsaWMgZW50cnlwb2ludC4gIFNlZSBkZXNjcmlwdGlvbiBpbiBsaWJn Y2NqaXQuaC4KIAogICAgQWZ0ZXIgZXJyb3ItY2hlY2tpbmcsIHRoZSByZWFsIHdvcmsgaXMgZG9u ZSBieSB0aGUKZGlmZiAtLWdpdCBhL2djYy9qaXQvbGliZ2Njaml0LmggYi9nY2Mvaml0L2xpYmdj Y2ppdC5oCmluZGV4IDJhNWZmYWNiMWZlLi5iZjYzYzEzOTAzZCAxMDA2NDQKLS0tIGEvZ2NjL2pp dC9saWJnY2NqaXQuaAorKysgYi9nY2Mvaml0L2xpYmdjY2ppdC5oCkBAIC0xMjc3LDYgKzEyNzcs MTMgQEAgZXh0ZXJuIHZvaWQKIGdjY19qaXRfbHZhbHVlX3NldF9saW5rX3NlY3Rpb24gKGdjY19q aXRfbHZhbHVlICpsdmFsdWUsCiAJCQkgICAgY29uc3QgY2hhciAqc2VjdGlvbl9uYW1lKTsKIAor I2RlZmluZSBMSUJHQ0NKSVRfSEFWRV9nY2Nfaml0X2x2YWx1ZV9zZXRfcmVnaXN0ZXJfbmFtZQor CisvKiBNYWtlIHRoaXMgdmFyaWFibGUgYSByZWdpc3RlciB2YXJpYWJsZSBhbmQgc2V0IGl0cyBy ZWdpc3RlciBuYW1lLiAgKi8KK3ZvaWQKK2djY19qaXRfbHZhbHVlX3NldF9yZWdpc3Rlcl9uYW1l IChnY2Nfaml0X2x2YWx1ZSAqbHZhbHVlLAorCQkJCSAgY29uc3QgY2hhciAqcmVnX25hbWUpOwor CiBleHRlcm4gZ2NjX2ppdF9sdmFsdWUgKgogZ2NjX2ppdF9mdW5jdGlvbl9uZXdfbG9jYWwgKGdj Y19qaXRfZnVuY3Rpb24gKmZ1bmMsCiAJCQkgICAgZ2NjX2ppdF9sb2NhdGlvbiAqbG9jLApkaWZm IC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2NqaXQubWFwIGIvZ2NjL2ppdC9saWJnY2NqaXQubWFwCmlu ZGV4IGYzNzNmZDM5YWM3Li5mNDVhYmNmNTMwNSAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9saWJnY2Nq aXQubWFwCisrKyBiL2djYy9qaXQvbGliZ2Njaml0Lm1hcApAQCAtMjQzLDMgKzI0MywxMiBAQCBM SUJHQ0NKSVRfQUJJXzE5IHsKICAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3VuaW9uX2NvbnN0cnVj dG9yOwogICAgIGdjY19qaXRfZ2xvYmFsX3NldF9pbml0aWFsaXplcl9ydmFsdWU7CiB9IExJQkdD Q0pJVF9BQklfMTg7CisKK0xJQkdDQ0pJVF9BQklfMjAgeworICBnbG9iYWw6Cit9IExJQkdDQ0pJ VF9BQklfMTk7CisKK0xJQkdDQ0pJVF9BQklfMjEgeworICBnbG9iYWw6CisgICAgZ2NjX2ppdF9s dmFsdWVfc2V0X3JlZ2lzdGVyX25hbWU7Cit9IExJQkdDQ0pJVF9BQklfMjA7CmRpZmYgLS1naXQg YS9nY2MvcmVnaW5mby5jIGIvZ2NjL3JlZ2luZm8uYwppbmRleCAyMzRmNzJlY2VlYi4uNGZlMzc1 YzQ0NjMgMTAwNjQ0Ci0tLSBhL2djYy9yZWdpbmZvLmMKKysrIGIvZ2NjL3JlZ2luZm8uYwpAQCAt OTEsNiArOTEsMTQgQEAgc3RhdGljIGNvbnN0IGNoYXIgaW5pdGlhbF9jYWxsX3VzZWRfcmVnc1td ID0gQ0FMTF9VU0VEX1JFR0lTVEVSUzsKICAgIGFuZCBhcmUgYWxzbyBjb25zaWRlcmVkIGZpeGVk LiAgKi8KIGNoYXIgZ2xvYmFsX3JlZ3NbRklSU1RfUFNFVURPX1JFR0lTVEVSXTsKIAordm9pZCBj bGVhcl9nbG9iYWxfcmVnc19jYWNoZSAodm9pZCkKK3sKKyAgZm9yIChzaXplX3QgaSA9IDAgOyBp IDwgRklSU1RfUFNFVURPX1JFR0lTVEVSIDsgaSsrKQorICB7CisgICAgZ2xvYmFsX3JlZ3NbaV0g PSAwOworICB9Cit9CisKIC8qIFRoZSBzZXQgb2YgZ2xvYmFsIHJlZ2lzdGVycy4gICovCiBIQVJE X1JFR19TRVQgZ2xvYmFsX3JlZ19zZXQ7CiAKZGlmZiAtLWdpdCBhL2djYy9zeXN0ZW0uaCBiL2dj Yy9zeXN0ZW0uaAppbmRleCBjMjVjZDY0MzY2Zi4uOTUwOTY5MzY3YjMgMTAwNjQ0Ci0tLSBhL2dj Yy9zeXN0ZW0uaAorKysgYi9nY2Mvc3lzdGVtLmgKQEAgLTEzMTYsNCArMTMxNiw2IEBAIGVuZHN3 aXRoIChjb25zdCBjaGFyICpzdHIsIGNvbnN0IGNoYXIgKnN1ZmZpeCkKICAgcmV0dXJuIG1lbWNt cCAoc3RyICsgc3RyX2xlbiAtIHN1ZmZpeF9sZW4sIHN1ZmZpeCwgc3VmZml4X2xlbikgPT0gMDsK IH0KIAorZXh0ZXJuIHZvaWQgY2xlYXJfZ2xvYmFsX3JlZ3NfY2FjaGUgKHZvaWQpOworCiAjZW5k aWYgLyogISBHQ0NfU1lTVEVNX0ggKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvaml0LmRn L2FsbC1ub24tZmFpbGluZy10ZXN0cy5oIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvYWxsLW5vbi1m YWlsaW5nLXRlc3RzLmgKaW5kZXggMjlhZmUwNjRkYjYuLjA2MDNhY2UyNTVhIDEwMDY0NAotLS0g YS9nY2MvdGVzdHN1aXRlL2ppdC5kZy9hbGwtbm9uLWZhaWxpbmctdGVzdHMuaAorKysgYi9nY2Mv dGVzdHN1aXRlL2ppdC5kZy9hbGwtbm9uLWZhaWxpbmctdGVzdHMuaApAQCAtMzA2LDYgKzMwNiw5 IEBACiAjdW5kZWYgY3JlYXRlX2NvZGUKICN1bmRlZiB2ZXJpZnlfY29kZQogCisvKiB0ZXN0LXJl Z2lzdGVyLXZhcmlhYmxlLmM6IFRoaXMgY2FuJ3QgYmUgaW4gdGhlIHRlc3RjYXNlcyBhcnJheSBh cyBpdAorICAgZG9lc24ndCBoYXZlIGEgdmVyaWZ5X2NvZGUgaW1wbGVtZW50YXRpb24uICAqLwor CiAvKiB0ZXN0LXN0cmluZy1saXRlcmFsLmMgKi8KICNkZWZpbmUgY3JlYXRlX2NvZGUgY3JlYXRl X2NvZGVfc3RyaW5nX2xpdGVyYWwKICNkZWZpbmUgdmVyaWZ5X2NvZGUgdmVyaWZ5X2NvZGVfc3Ry aW5nX2xpdGVyYWwKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtcmVnaXN0 ZXItdmFyaWFibGUuYyBiL2djYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtcmVnaXN0ZXItdmFyaWFi bGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2NlYTNmMTY2OGYK LS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0LXJlZ2lzdGVyLXZh cmlhYmxlLmMKQEAgLTAsMCArMSw1NCBAQAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUg PHN0ZGlvLmg+CisKKyNpbmNsdWRlICJsaWJnY2NqaXQuaCIKKworLyogV2UgZG9uJ3Qgd2FudCBz ZXRfb3B0aW9ucygpIGluIGhhcm5lc3MuaCB0byBzZXQgLU8zIHNvIG91ciBsaXR0bGUgbG9jYWwK KyAgIGlzIG9wdGltaXplZCBhd2F5LiAqLworI2RlZmluZSBURVNUX0VTQ0hFV1NfU0VUX09QVElP TlMKK3N0YXRpYyB2b2lkIHNldF9vcHRpb25zIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGNvbnN0 IGNoYXIgKmFyZ3YwKQoreworfQorCisjZGVmaW5lIFRFU1RfQ09NUElMSU5HX1RPX0ZJTEUKKyNk ZWZpbmUgT1VUUFVUX0tJTkQgICAgICBHQ0NfSklUX09VVFBVVF9LSU5EX0FTU0VNQkxFUgorI2Rl ZmluZSBPVVRQVVRfRklMRU5BTUUgICJvdXRwdXQtb2YtdGVzdC1saW5rLXNlY3Rpb24tYXNzZW1i bGVyLmMucyIKKyNpbmNsdWRlICJoYXJuZXNzLmgiCisKK3ZvaWQKK2NyZWF0ZV9jb2RlIChnY2Nf aml0X2NvbnRleHQgKmN0eHQsIHZvaWQgKnVzZXJfZGF0YSkKK3sKKyAgLyogTGV0J3MgdHJ5IHRv IGluamVjdCB0aGUgZXF1aXZhbGVudCBvZjoKKyAgICAgcmVnaXN0ZXIgaW50IGdsb2JhbF92YXJp YWJsZSBhc20gKCJyMTMiKTsKKyAgICAgaW50IG1haW4oKSB7CisgICAgICAgIHJlZ2lzdGVyIGlu dCB2YXJpYWJsZSBhc20gKCJyMTIiKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgIH0KKyAgKi8K KyAgZ2NjX2ppdF90eXBlICppbnRfdHlwZSA9CisgICAgZ2NjX2ppdF9jb250ZXh0X2dldF90eXBl IChjdHh0LCBHQ0NfSklUX1RZUEVfSU5UKTsKKyAgZ2NjX2ppdF9sdmFsdWUgKmdsb2JhbF92YXJp YWJsZSA9CisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19nbG9iYWwgKAorICAgICAgY3R4dCwgTlVM TCwgR0NDX0pJVF9HTE9CQUxfRVhQT1JURUQsIGludF90eXBlLCAiZ2xvYmFsX3ZhcmlhYmxlIik7 CisgIGdjY19qaXRfbHZhbHVlX3NldF9yZWdpc3Rlcl9uYW1lKGdsb2JhbF92YXJpYWJsZSwgInIx MyIpOworCisgIGdjY19qaXRfZnVuY3Rpb24gKmZ1bmNfbWFpbiA9CisgICAgZ2NjX2ppdF9jb250 ZXh0X25ld19mdW5jdGlvbiAoY3R4dCwgTlVMTCwKKwkJCQkgIEdDQ19KSVRfRlVOQ1RJT05fRVhQ T1JURUQsCisJCQkJICBpbnRfdHlwZSwKKwkJCQkgICJtYWluIiwKKwkJCQkgIDAsIE5VTEwsCisJ CQkJICAwKTsKKyAgZ2NjX2ppdF9sdmFsdWUgKnZhcmlhYmxlID0gZ2NjX2ppdF9mdW5jdGlvbl9u ZXdfbG9jYWwoZnVuY19tYWluLCBOVUxMLCBpbnRfdHlwZSwgInZhcmlhYmxlIik7CisgIGdjY19q aXRfbHZhbHVlX3NldF9yZWdpc3Rlcl9uYW1lKHZhcmlhYmxlLCAicjEyIik7CisgIGdjY19qaXRf cnZhbHVlICp0d28gPSBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCAoY3R4dCwg aW50X3R5cGUsIDIpOworICBnY2Nfaml0X3J2YWx1ZSAqb25lID0gZ2NjX2ppdF9jb250ZXh0X29u ZSAoY3R4dCwgaW50X3R5cGUpOworICBnY2Nfaml0X2Jsb2NrICpibG9jayA9IGdjY19qaXRfZnVu Y3Rpb25fbmV3X2Jsb2NrIChmdW5jX21haW4sIE5VTEwpOworICBnY2Nfaml0X2Jsb2NrX2FkZF9h c3NpZ25tZW50KGJsb2NrLCBOVUxMLCB2YXJpYWJsZSwgb25lKTsKKyAgZ2NjX2ppdF9ibG9ja19h ZGRfYXNzaWdubWVudChibG9jaywgTlVMTCwgZ2xvYmFsX3ZhcmlhYmxlLCB0d28pOworICBnY2Nf aml0X2Jsb2NrX2VuZF93aXRoX3JldHVybiAoYmxvY2ssIE5VTEwsIGdjY19qaXRfbHZhbHVlX2Fz X3J2YWx1ZSh2YXJpYWJsZSkpOworfQorCisvKiB7IGRnLWZpbmFsIHsgaml0LXZlcmlmeS1vdXRw dXQtZmlsZS13YXMtY3JlYXRlZCAiIiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBqaXQtdmVyaWZ5 LWFzc2VtYmxlci1vdXRwdXQgIm1vdmwJXFxcJDEsICVyMTJkIiB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBqaXQtdmVyaWZ5LWFzc2VtYmxlci1vdXRwdXQgIm1vdmwJXFxcJDIsICVyMTNkIiB9IH0g Ki8KLS0gCjIuMjYuMi43LmcxOWRiOWNmYjY4LmRpcnR5Cgo= --=-3Up5SWVLsc/QQ0YfSiol--