From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 56130 invoked by alias); 4 Sep 2017 13:44:56 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 48849 invoked by uid 89); 4 Sep 2017 13:44:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-23.7 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=swi, blink, H*c:HHH X-HELO: smtprelay.synopsys.com Received: from smtprelay2.synopsys.com (HELO smtprelay.synopsys.com) (198.182.60.111) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 04 Sep 2017 13:44:49 +0000 Received: from mailhost.synopsys.com (mailhost1.synopsys.com [10.12.238.239]) by smtprelay.synopsys.com (Postfix) with ESMTP id A5AAC10C14B4; Mon, 4 Sep 2017 06:44:47 -0700 (PDT) Received: from mailhost.synopsys.com (localhost [127.0.0.1]) by mailhost.synopsys.com (Postfix) with ESMTP id 3B08E835; Mon, 4 Sep 2017 06:44:47 -0700 (PDT) Received: from US01WXQAHTC1.internal.synopsys.com (us01wxqahtc1.internal.synopsys.com [10.12.238.230]) by mailhost.synopsys.com (Postfix) with ESMTP id 1516B832; Mon, 4 Sep 2017 06:44:46 -0700 (PDT) Received: from DE02WEHTCB.internal.synopsys.com (10.225.19.94) by US01WXQAHTC1.internal.synopsys.com (10.12.238.230) with Microsoft SMTP Server (TLS) id 14.3.266.1; Mon, 4 Sep 2017 06:44:46 -0700 Received: from DE02WEMBXB.internal.synopsys.com ([fe80::95ce:118a:8321:a099]) by DE02WEHTCB.internal.synopsys.com ([::1]) with mapi id 14.03.0266.001; Mon, 4 Sep 2017 15:44:43 +0200 From: Cupertino Miranda To: "gcc-patches@gcc.gnu.org" CC: Claudiu Zissulescu , Andrew Burgess , Francois Bedard Subject: [ARC] Fix stack unwinding for ARC Date: Mon, 04 Sep 2017 13:44:00 -0000 Message-ID: Content-Type: multipart/mixed; boundary="_002_EB86EB452ADE4B44B294F7149B8A277702711AD9DE02WEMBXBinter_" MIME-Version: 1.0 X-SW-Source: 2017-09/txt/msg00180.txt.bz2 --_002_EB86EB452ADE4B44B294F7149B8A277702711AD9DE02WEMBXBinter_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 395 Hi everyone, Here is patch to stack unwinding for ARC. - Fix to unwinding. Now is is possible to unwind from syscall wrappers, signals and functions with dynamic stack allocation. - Patch also fixes millicode. Although millicode save and restore functions would change blink, the calls to those functions were not clobbering blink. Looking forward to your reviews. Best regards, Cupertino --_002_EB86EB452ADE4B44B294F7149B8A277702711AD9DE02WEMBXBinter_ Content-Type: text/x-patch; name="0001-Fix-to-unwinding.-Now-is-is-possible-to-unwind-from-.patch" Content-Description: 0001-Fix-to-unwinding.-Now-is-is-possible-to-unwind-from-.patch Content-Disposition: attachment; filename="0001-Fix-to-unwinding.-Now-is-is-possible-to-unwind-from-.patch"; size=9685; creation-date="Mon, 04 Sep 2017 13:44:42 GMT"; modification-date="Mon, 04 Sep 2017 13:44:42 GMT" Content-Transfer-Encoding: base64 Content-length: 13132 RnJvbSAyMTNhMGYxMTViMmM3NDU5YjJhNjU3MjhmNGM1YTc0ZDJlZDg5Yzlk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDdXBlcnRpbm8gTWly YW5kYSA8Y21pcmFuZGFAc3lub3BzeXMuY29tPgpEYXRlOiBNb24sIDQgU2Vw IDIwMTcgMTQ6MjQ6NTEgKzAyMDAKU3ViamVjdDogW1BBVENIXSBGaXggdG8g dW53aW5kaW5nLiBOb3cgaXMgaXMgcG9zc2libGUgdG8gdW53aW5kIGZyb20g c3lzY2FsbAogd3JhcHBlcnMsIHNpZ25hbHMgYW5kIGZ1bmN0aW9ucyB3aXRo IGR5bmFtaWMgc3RhY2sgYWxsb2NhdGlvbi4KClBhdGNoIGFsc28gZml4ZXMg bWlsbGljb2RlLiBBbHRob3VnaCBtaWxsaWNvZGUgc2F2ZSBhbmQgcmVzdG9y ZSBmdW5jdGlvbnMKd291bGQgY2hhbmdlIGJsaW5rLCB0aGUgY2FsbHMgdG8g dGhvc2UgZnVuY3Rpb25zIHdlcmUgbm90IGNsb2JiZXJpbmcgYmxpbmsuCgpn Y2MvQ2hhbmdlTG9nOgoKMjAxNy0wOS0wNCAgQ3VwZXJ0aW5vIE1pcmFuZGEg IDxjbWlyYW5kYUBzeW5vcHN5cy5jb20+CgoJKiBjb25maWcvYXJjL2FyYy5j IChhcmNfc2F2ZV9yZXN0b3JlKTogQ29ycmVjdGVkIENGQSBub3RlLgoJKGFy Y19leHBhbmRfcHJvbG9ndWUpOiBSZXN0b3JlIGJsaW5rIGZvciBtaWxsaWNv ZGUuCgkqIGNvbmZpZy9hcmMvbGludXguaCAoTElOS19FSF9TUEVDKTogRGVm aW5lZC4KCmxpYmdjYy9DaGFuZ2VMb2c6CgoyMDE3LTA5LTA0ICBDdXBlcnRp bm8gTWlyYW5kYSAgPGNtaXJhbmRhQHN5bm9wc3lzLmNvbT4KCgkqIGNvbmZp Zy9hcmMvbGludXgtdW53aW5kLXJlZy5kZWY6IENyZWF0ZWQgd2l0aCByZWdp c3RlciBpbmRleGVzIGluZm8uCgkqIGNvbmZpZy9hcmMvbGludXgtdW53aW5k LXJlZy5oIChyZWdpc3RlcnNfc3RhY2tfb3JkZXIpOiBEZWZpbmVkLgoJKHJl Z2lzdGVyX3Bvc2l0aW9uKTogTGlrZXdpc2UuCgkocmVnaXN0ZXJfaWRfZm9y X2luZGV4KTogTGlrZXdpc2UuCgkoYXJjX2ZhbGxiYWNrX2ZyYW1lX3N0YXRl KTogTmV3IGZ1bmN0aW9uIHRvIGRlZmluZSBmcmFtZSB3aGVyZSBmcmFtZQoJ aW5mb3JtYXRpb24gaXMgbWlzc2luZyBhbmQgaXQgcmVmZXJzIHRvIGEgc3lz Y2FsbCB3cmFwcGVyLgoJKCthcmNfZnJvYl91cGRhdGVfY29udGV4dCk6IE5l dyBmdW5jdGlvbiB0byBjb3JyZWN0IGNvbnRleHQgaW5mb3JtYXRpb24gaW4K CWNhc2UgdW53aW5kaW5nIGhhcHBlbnMgdGhyb3VnaCBmcCByZWdpc3Rlci4K LS0tCiBnY2MvY29uZmlnL2FyYy9hcmMuYyAgICAgICAgICAgICAgICAgICB8 ICAzNiArKysrKystLQogZ2NjL2NvbmZpZy9hcmMvbGludXguaCAgICAgICAg ICAgICAgICAgfCAgIDggKysKIGxpYmdjYy9jb25maWcuaG9zdCAgICAgICAg ICAgICAgICAgICAgIHwgICAxICsKIGxpYmdjYy9jb25maWcvYXJjL2xpbnV4 LXVud2luZC1yZWcuZGVmIHwgIDIzICsrKysrCiBsaWJnY2MvY29uZmlnL2Fy Yy9saW51eC11bndpbmQuaCAgICAgICB8IDE1NCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMjE2IGluc2Vy dGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg bGliZ2NjL2NvbmZpZy9hcmMvbGludXgtdW53aW5kLXJlZy5kZWYKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBsaWJnY2MvY29uZmlnL2FyYy9saW51eC11bndpbmQu aAoKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJjL2FyYy5jIGIvZ2NjL2Nv bmZpZy9hcmMvYXJjLmMKaW5kZXggZDUxOTA2My4uZmYyZjhhZSAxMDA2NDQK LS0tIGEvZ2NjL2NvbmZpZy9hcmMvYXJjLmMKKysrIGIvZ2NjL2NvbmZpZy9h cmMvYXJjLmMKQEAgLTI4NDksMTIgKzI4NDksMjMgQEAgYXJjX3NhdmVfcmVz dG9yZSAocnR4IGJhc2VfcmVnLAogCSAgZWxzZQogCSAgICB7CiAJICAgICAg aW5zbiA9IGZyYW1lX2luc24gKGluc24pOwotCSAgICAgIGlmIChlcGlsb2d1 ZV9wKQotCQlmb3IgKHIgPSBzdGFydF9jYWxsOyByIDw9IGVuZF9jYWxsOyBy KyspCi0JCSAgewotCQkgICAgcnR4IHJlZyA9IGdlbl9ydHhfUkVHIChTSW1v ZGUsIHIpOwotCQkgICAgYWRkX3JlZ19ub3RlIChpbnNuLCBSRUdfQ0ZBX1JF U1RPUkUsIHJlZyk7Ci0JCSAgfQorCSAgICAgIGZvciAociA9IHN0YXJ0X2Nh bGwsIG9mZiA9IDA7CisJCSAgIHIgPD0gZW5kX2NhbGw7CisJCSAgIHIrKywg b2ZmICs9IFVOSVRTX1BFUl9XT1JEKQorCQl7CisJCSAgcnR4IHJlZyA9IGdl bl9ydHhfUkVHIChTSW1vZGUsIHIpOworCQkgIGlmIChlcGlsb2d1ZV9wKQor CQkgICAgICBhZGRfcmVnX25vdGUgKGluc24sIFJFR19DRkFfUkVTVE9SRSwg cmVnKTsKKwkJICBlbHNlCisJCSAgICB7CisJCSAgICAgIHJ0eCBtZW0gPSBn ZW5fcnR4X01FTSAoU0ltb2RlLCBwbHVzX2NvbnN0YW50IChQbW9kZSwKKwkJ CQkJCQkJICAgIGJhc2VfcmVnLAorCQkJCQkJCQkgICAgb2ZmKSk7CisKKwkJ ICAgICAgYWRkX3JlZ19ub3RlIChpbnNuLCBSRUdfQ0ZBX09GRlNFVCwKKwkJ CQkgICAgZ2VuX3J0eF9TRVQgKG1lbSwgcmVnKSk7CisJCSAgICB9CisJCX0K IAkgICAgfQogCSAgb2Zmc2V0ICs9IG9mZjsKIAl9CkBAIC0zMDkyLDYgKzMx MDMsMTkgQEAgYXJjX2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkKICAgICAgIGZy YW1lX3NpemVfdG9fYWxsb2NhdGUgLT0gY2Z1bi0+bWFjaGluZS0+ZnJhbWVf aW5mby5yZWdfc2l6ZTsKICAgICB9CiAKKyAgLyogSW4gdGhlIGNhc2Ugb2Yg bWlsbGljb2RlIHRodW5rLCB3ZSBuZWVkIHRvIHJlc3RvcmUgdGhlIGNsb2Ji ZXJlZAorICAgICBibGluayByZWdpc3Rlci4gICovCisgIGlmIChjZnVuLT5t YWNoaW5lLT5mcmFtZV9pbmZvLm1pbGxpY29kZV9lbmRfcmVnID4gMAorICAg ICAgJiYgYXJjX211c3Rfc2F2ZV9yZXR1cm5fYWRkciAoY2Z1bikpCisgICAg eworICAgICAgSE9TVF9XSURFX0lOVCB0bXAgPSBjZnVuLT5tYWNoaW5lLT5m cmFtZV9pbmZvLnJlZ19zaXplOworICAgICAgZW1pdF9pbnNuIChnZW5fcnR4 X1NFVCAoZ2VuX3J0eF9SRUcgKFBtb2RlLCBSRVRVUk5fQUREUl9SRUdOVU0p LAorCQkJICAgICAgZ2VuX3J0eF9NRU0gKFBtb2RlLAorCQkJCQkgICBwbHVz X2NvbnN0YW50IChQbW9kZSwKKwkJCQkJCQkgIHN0YWNrX3BvaW50ZXJfcnR4 LAorCQkJCQkJCSAgdG1wKSkpKTsKKyAgICB9CisKICAgLyogU2F2ZSBmcmFt ZSBwb2ludGVyIGlmIG5lZWRlZC4gIEZpcnN0IHNhdmUgdGhlIEZQIG9uIHN0 YWNrLCBpZiBub3QKICAgICAgYXV0b3NhdmVkLiAgKi8KICAgaWYgKGFyY19m cmFtZV9wb2ludGVyX25lZWRlZCAoKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9hcmMvbGludXguaCBiL2djYy9jb25maWcvYXJjL2xpbnV4LmgKaW5kZXgg ZDhlMDA2My4uNzA3MzQ3MSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hcmMv bGludXguaAorKysgYi9nY2MvY29uZmlnL2FyYy9saW51eC5oCkBAIC05MSwz ICs5MSwxMSBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJ TkczLiAgSWYgbm90IHNlZQogLyogUHJlL3Bvc3QgbW9kaWZ5IHdpdGggcmVn aXN0ZXIgZGlzcGxhY2VtZW50IGFyZSBkZWZhdWx0IG9mZi4gICovCiAjdW5k ZWYgVEFSR0VUX0FVVE9fTU9ESUZZX1JFR19ERUZBVUxUCiAjZGVmaW5lIFRB UkdFVF9BVVRPX01PRElGWV9SRUdfREVGQVVMVCAwCisKKyNpZiBERUZBVUxU X0xJQkMgPT0gTElCQ19HTElCQworLyogT3ZlcnJpZGUgbGludXguaCBMSU5L X0VIX1NQRUMgZGVmaW5pdGlvbi4KKyAgIFNpZ25hbGl6ZSB0aGF0IGJlY2F1 c2Ugd2UgaGF2ZSBmZGUtZ2xpYmMsIHdlIGRvbid0IG5lZWQgYWxsIEMgc2hh cmVkIGxpYnMKKyAgIGxpbmtlZCBhZ2FpbnN0IC1sZ2NjX3MuICAqLworI3Vu ZGVmIExJTktfRUhfU1BFQworI2RlZmluZSBMSU5LX0VIX1NQRUMgIi0tZWgt ZnJhbWUtaGRyIgorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJnY2MvY29uZmln Lmhvc3QgYi9saWJnY2MvY29uZmlnLmhvc3QKaW5kZXggMjY4NmQ1OS4uZDA1 ZWQ0NSAxMDA2NDQKLS0tIGEvbGliZ2NjL2NvbmZpZy5ob3N0CisrKyBiL2xp YmdjYy9jb25maWcuaG9zdApAQCAtMzg1LDYgKzM4NSw3IEBAIGFyYyotKi1l bGYqKQogCXRtYWtlX2ZpbGU9ImFyYy90LWFyYyIKIAlleHRyYV9wYXJ0cz0i Y3J0aS5vIGNydG4ubyBjcnRlbmQubyBjcnRiZWdpbi5vIGNydGVuZFMubyBj cnRiZWdpblMubyIKIAlleHRyYV9wYXJ0cz0iJGV4dHJhX3BhcnRzIGNydHRs cy5vIgorCW1kX3Vud2luZF9oZWFkZXI9YXJjL2xpbnV4LXVud2luZC5oCiAJ OzsKIGFyYyotKi1saW51eCopCiAJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxl fSB0LXNsaWJnY2MtbGliZ2NjIHQtc2xpYmdjYy1ub2xjLW92ZXJyaWRlIGFy Yy90LWFyYy11Q2xpYmMgYXJjL3QtYXJjIgpkaWZmIC0tZ2l0IGEvbGliZ2Nj L2NvbmZpZy9hcmMvbGludXgtdW53aW5kLXJlZy5kZWYgYi9saWJnY2MvY29u ZmlnL2FyYy9saW51eC11bndpbmQtcmVnLmRlZgpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi43NjNhMzJmCi0tLSAvZGV2L251bGwKKysr IGIvbGliZ2NjL2NvbmZpZy9hcmMvbGludXgtdW53aW5kLXJlZy5kZWYKQEAg LTAsMCArMSwyMyBAQAorUkVHSVNURVJfSU5fU1RBQ0soYnRhLCAtMSkKK1JF R0lTVEVSX0lOX1NUQUNLKGxwX3N0YXJ0LCAtMSkKK1JFR0lTVEVSX0lOX1NU QUNLKGxwX2VuZCwgLTEpCitSRUdJU1RFUl9JTl9TVEFDSyhscF9jb3VudCwg LTEpCitSRUdJU1RFUl9JTl9TVEFDSyhzdGF0dXMzMiwgLTEpCitSRUdJU1RF Ul9JTl9TVEFDSyhyZXQsIC0xKQorUkVHSVNURVJfSU5fU1RBQ0soYmxpbmss IDMxKQorUkVHSVNURVJfSU5fU1RBQ0soZnAsIDI3KQorUkVHSVNURVJfSU5f U1RBQ0soZ3AsIDI2KQorUkVHSVNURVJfSU5fU1RBQ0socjEyLCAxMikKK1JF R0lTVEVSX0lOX1NUQUNLKHIxMSwgMTEpCitSRUdJU1RFUl9JTl9TVEFDSyhy MTAsIDEwKQorUkVHSVNURVJfSU5fU1RBQ0socjksIDkpCitSRUdJU1RFUl9J Tl9TVEFDSyhyOCwgOCkKK1JFR0lTVEVSX0lOX1NUQUNLKHI3LCA3KQorUkVH SVNURVJfSU5fU1RBQ0socjYsIDYpCitSRUdJU1RFUl9JTl9TVEFDSyhyNSwg NSkKK1JFR0lTVEVSX0lOX1NUQUNLKHI0LCA0KQorUkVHSVNURVJfSU5fU1RB Q0socjMsIDMpCitSRUdJU1RFUl9JTl9TVEFDSyhyMiwgMikKK1JFR0lTVEVS X0lOX1NUQUNLKHIxLCAxKQorUkVHSVNURVJfSU5fU1RBQ0socjAsIDApCitS RUdJU1RFUl9JTl9TVEFDSyhzcCwgMjgpCmRpZmYgLS1naXQgYS9saWJnY2Mv Y29uZmlnL2FyYy9saW51eC11bndpbmQuaCBiL2xpYmdjYy9jb25maWcvYXJj L2xpbnV4LXVud2luZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjdiOTcxNDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJnY2MvY29u ZmlnL2FyYy9saW51eC11bndpbmQuaApAQCAtMCwwICsxLDE1NCBAQAorLyog RFdBUkYyIEVIIHVud2luZGluZyBzdXBwb3J0IGZvciBBUkMgTGludXguCisg ICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKworVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0NDLgorCitH Q0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQoraXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKK3RoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9y IChhdCB5b3VyIG9wdGlvbikKK2FueSBsYXRlciB2ZXJzaW9uLgorCitHQ0Mg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKK2J1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCitNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCitH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor CitVbmRlciBTZWN0aW9uIDcgb2YgR1BMIHZlcnNpb24gMywgeW91IGFyZSBn cmFudGVkIGFkZGl0aW9uYWwKK3Blcm1pc3Npb25zIGRlc2NyaWJlZCBpbiB0 aGUgR0NDIFJ1bnRpbWUgTGlicmFyeSBFeGNlcHRpb24sIHZlcnNpb24KKzMu MSwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24uCisKK1lvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFuZAorYSBjb3B5IG9mIHRo ZSBHQ0MgUnVudGltZSBMaWJyYXJ5IEV4Y2VwdGlvbiBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbTsKK3NlZSB0aGUgZmlsZXMgQ09QWUlORzMgYW5kIENPUFlJ TkcuUlVOVElNRSByZXNwZWN0aXZlbHkuICBJZiBub3QsIHNlZQorPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworLyogVGhpcyBvcmRl ciBpcyBkZWZpbmVkIGJ5IGEgc3RydWN0dXJlIGluIHRoZSBrZXJuZWwsCisg ICBpbiBmaWxlIGFyY2gvYXJjL2tlcm5lbC9zaWduYWwuYy4gICovCisKKyNk ZWZpbmUgUkVHSVNURVJfSU5fU1RBQ0soUkVHX05BTUUsIElEKSBcCisgIFJF R19OQU1FLAorZW51bSByZWdpc3RlcnNfc3RhY2tfb3JkZXIgeworICBSRUdJ U1RFUl9TVEFDS19PUkRFUl9TVEFSVCA9IC0xLAorICAjaW5jbHVkZSAiY29u ZmlnL2FyYy9saW51eC11bndpbmQtcmVnLmRlZiIKKyAgUkVHSVNURVJfU1RB Q0tfT1JERVJfU0laRSwKK307CisKK3N0cnVjdCByZWdpc3Rlcl9wb3NpdGlv biB7CisgIGludCByZWdfaWQ7CisgIGludCBvZmZzZXRfaW5fc3RhY2s7Cit9 OworI3VuZGVmIFJFR0lTVEVSX0lOX1NUQUNLCisKKyNkZWZpbmUgUkVHSVNU RVJfU0laRV9JTl9XT1JEUyA0CisjZGVmaW5lIFJFR0lTVEVSX0lOX1NUQUNL KFJFR19OQU1FLCBJRCkgKGludCkgSUQsCitpbnQKK3JlZ2lzdGVyX2lkX2Zv cl9pbmRleFtSRUdJU1RFUl9TVEFDS19PUkRFUl9TSVpFXSA9IHsKKyAgI2lu Y2x1ZGUgImNvbmZpZy9hcmMvbGludXgtdW53aW5kLXJlZy5kZWYiCit9Owor I3VuZGVmIFJFR0lTVEVSX0lOX1NUQUNLCisKKyNpZm5kZWYgaW5oaWJpdF9s aWJjCisvKiBEbyBjb2RlIHJlYWRpbmcgdG8gaWRlbnRpZnkgYSBzaWduYWwg ZnJhbWUsIGFuZCBzZXQgdGhlIGZyYW1lCisgICBzdGF0ZSBkYXRhIGFwcHJv cHJpYXRlbHkuICBTZWUgdW53aW5kLWR3Mi5jIGZvciB0aGUgc3RydWN0cy4g ICovCisKKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxhc20vdW5p c3RkLmg+CisKKy8qCiswMDAxMGVkYyA8X19kZWZhdWx0X3J0X3NhX3Jlc3Rv cmVyPjoKKyAgIDEwZWRjOgkyMDhhIDEyYzIJCW1vdiAgICAgcjgsMTM5Cisg ICAxMGVlMDoJNzgxZQkJCXRyYXBfcyAgMAorICAgMTBlZTI6CTdlZTAJCQlq X3MgICAgIFtibGlua10KKyovCisKKyNpZiBfX0JJR19FTkRJQU5fXworI2Rl ZmluZSBNT1ZfUjhfMTM5CSAgMHg4YTIwYzIxMgorI2RlZmluZSBUUkFQX1Nf Sl9TX0JMSU5LICAweDFlNzhlMDdlCisjZGVmaW5lIFNXSQkJICAweDZmMjIz ZjAwCisjZWxpZiBfX0xJVFRMRV9FTkRJQU5fXworI2RlZmluZSBNT1ZfUjhf MTM5CSAgMHgxMmMyMjA4YQorI2RlZmluZSBUUkFQX1NfSl9TX0JMSU5LICAw eDdlZTA3ODFlCisjZGVmaW5lIFNXSQkJICAweDAwM2YyMjZmCisjZW5kaWYK KworI2RlZmluZSBNRF9GQUxMQkFDS19GUkFNRV9TVEFURV9GT1IgYXJjX2Zh bGxiYWNrX2ZyYW1lX3N0YXRlCisKK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKChu b2lubGluZSkpIF9VbndpbmRfUmVhc29uX0NvZGUKK2FyY19mYWxsYmFja19m cmFtZV9zdGF0ZSAoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqY29udGV4dCwK KwkJCSAgIF9VbndpbmRfRnJhbWVTdGF0ZSAqZnMpCit7CisgIHN0cnVjdCBy dF9zaWdmcmFtZSB7CisgICAgc2lnaW5mb190IGluZm87CisgICAgc3RydWN0 IHVjb250ZXh0IHVjOworICAgIHVuc2lnbmVkIGludCBzaWdyZXRfbWFnaWM7 CisgIH07CisKKyAgc3RydWN0IHJ0X3NpZ2ZyYW1lICpydF87CisgIHVfaW50 MzJfdCAqcGMgPSAodV9pbnQzMl90ICopIGNvbnRleHQtPnJhOworICBzdHJ1 Y3Qgc2lnY29udGV4dCAqc2M7CisgIF9VbndpbmRfUHRyIG5ld19jZmE7Cisg IGludCBpOworCisjaWZkZWYgX19BUkM3MDBfXworICBpZiAocGNbMV0gIT0g U1dJKQorICAgIHJldHVybiBfVVJDX0VORF9PRl9TVEFDSzsKKyNlbHNlCisg IGlmIChwY1sxXSAhPSBUUkFQX1NfSl9TX0JMSU5LKQorICAgIHJldHVybiBf VVJDX0VORF9PRl9TVEFDSzsKKyNlbmRpZgorCisgIGlmIChwY1swXSA9PSBN T1ZfUjhfMTM5KQorICAgIHsKKyAgICAgIHJ0XyA9IGNvbnRleHQtPmNmYTsK KyAgICAgIHNjID0gJnJ0Xy0+dWMudWNfbWNvbnRleHQ7CisgICAgfQorICBl bHNlCisgICAgcmV0dXJuIF9VUkNfRU5EX09GX1NUQUNLOworCisgIG5ld19j ZmEgPSAoX1Vud2luZF9QdHIpIHNjOworICBmcy0+cmVncy5jZmFfaG93ID0g Q0ZBX1JFR19PRkZTRVQ7CisgIGZzLT5yZWdzLmNmYV9yZWcgPSBfX0xJQkdD Q19TVEFDS19QT0lOVEVSX1JFR05VTV9fOworICBmcy0+cmVncy5jZmFfb2Zm c2V0ID0gbmV3X2NmYSAtIChfVW53aW5kX1B0cikgY29udGV4dC0+Y2ZhOwor CisgIHVuc2lnbmVkIGxvbmcgKnJlZ3MgPSAmc2MtPnJlZ3Muc2NyYXRjaC5i dGE7CisgIGZvciAoaSA9IDA7IGkgPCBSRUdJU1RFUl9TVEFDS19PUkRFUl9T SVpFOyBpKyspCisgICAgeworICAgICAgaWYgKHJlZ2lzdGVyX2lkX2Zvcl9p bmRleFtpXSA9PSAtMSkKKwljb250aW51ZTsKKyAgICAgIGZzLT5yZWdzLnJl Z1tyZWdpc3Rlcl9pZF9mb3JfaW5kZXhbaV1dLmhvdyA9IFJFR19TQVZFRF9P RkZTRVQ7CisgICAgICBmcy0+cmVncy5yZWdbcmVnaXN0ZXJfaWRfZm9yX2lu ZGV4W2ldXS5sb2Mub2Zmc2V0CisJPSAoKF9VbndpbmRfUHRyKSAmKHJlZ3Nb aV0pKSAtIG5ld19jZmE7CisgICAgfQorCisgIGZzLT5yZWdzLnJlZ1szMV0u aG93ID0gUkVHX1NBVkVEX1ZBTF9PRkZTRVQ7CisgIGZzLT5yZWdzLnJlZ1sz MV0ubG9jLm9mZnNldCA9ICgoX1Vud2luZF9QdHIpIChyZWdzW3JldF0pKSAt IG5ld19jZmE7CisKKyAgZnMtPnJldGFkZHJfY29sdW1uID0gMzE7CisKKyAg cmV0dXJuIF9VUkNfTk9fUkVBU09OOworfQorI2VuZGlmCisKKyNkZWZpbmUg TURfRlJPQl9VUERBVEVfQ09OVEVYVCBhcmNfZnJvYl91cGRhdGVfY29udGV4 dAorLyogU2F2ZSBmcCByZWdpc3RlciBmb3IgdW53aW5kaW5nIHRvIHdvcmsu ICAqLworCitzdGF0aWMgdm9pZAorYXJjX2Zyb2JfdXBkYXRlX2NvbnRleHQg KHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKmNvbnRleHQsCisJCQkgX1Vud2lu ZF9GcmFtZVN0YXRlICpmcykKK3sKKyAgICAvL3JlZ2lzdGVyIF9VbndpbmRf V29yZCBmcF92YWwgYXNtICgiZnAiKTsKKyAgICBfVW53aW5kX1dvcmQgZnBf dmFsOworICAgIGFzbSAoIm1vdiAlMCxmcCIgOiAiPXIiIChmcF92YWwpKTsK KworICAgIHN3aXRjaCAoZnMtPnJlZ3MucmVnWzI3XS5ob3cpCisgICAgICB7 CisgICAgICBjYXNlIFJFR19VTlNBVkVEOgorICAgICAgY2FzZSBSRUdfVU5E RUZJTkVEOgorCWlmIChjb250ZXh0LT5yZWdbMjddID09IE5VTEwpCisJICBf VW53aW5kX1NldEdSVmFsdWUgKGNvbnRleHQsIDI3LCBmcF92YWwpOworCWJy ZWFrOworCisgICAgICBkZWZhdWx0OgorCWJyZWFrOworICAgICAgfQorfQot LSAKMi45LjAKCg== --_002_EB86EB452ADE4B44B294F7149B8A277702711AD9DE02WEMBXBinter_--