From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12744 invoked by alias); 18 Jul 2010 10:42:18 -0000 Received: (qmail 12735 invoked by uid 22791); 18 Jul 2010 10:42:17 -0000 X-SWARE-Spam-Status: No, hits=-0.9 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE X-Spam-Check-By: sourceware.org Received: from mail-bw0-f47.google.com (HELO mail-bw0-f47.google.com) (209.85.214.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 18 Jul 2010 10:42:12 +0000 Received: by bwz10 with SMTP id 10so2573536bwz.20 for ; Sun, 18 Jul 2010 03:42:09 -0700 (PDT) MIME-Version: 1.0 Received: by 10.204.82.6 with SMTP id z6mr2805815bkk.31.1279449729530; Sun, 18 Jul 2010 03:42:09 -0700 (PDT) Received: by 10.204.57.197 with HTTP; Sun, 18 Jul 2010 03:42:09 -0700 (PDT) In-Reply-To: References: Date: Sun, 18 Jul 2010 10:42:00 -0000 Message-ID: Subject: Re: [RFA patch i386]: Prepare x64 prologue using positive offsets for frame-pointer From: Kai Tietz To: Richard Henderson Cc: GCC Patches , NightStrike Content-Type: multipart/mixed; boundary=0016e6d975c7a2fc5c048ba71aef X-IsSubscribed: yes 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 X-SW-Source: 2010-07/txt/msg01430.txt.bz2 --0016e6d975c7a2fc5c048ba71aef Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 946 Hello Richard, here is the follow-up patch about x64-frame-pointer patch. It requires the -mfentry patch to be applied before to apply clean. I allowed this patch just for amd64 architectures, as I see here no much reason to support it for x86 at the moment, too. As this call-frame needs the -mfentry support, which is limited for x86 to non-pic compilation. ChangeLog * config/i386/i386.c (override_options): Add check. (ix86_compute_frame_layout): Set hard_frame_pointer_offset for -mframe-x64. (expand_prologue): Add emit of -mframe-x64. (ix86_expand_epilogue): Likewise. * config/i386/i386.opt (-mframe-x64): New. * doc/invoke.texi (mframe-x64): Add documentation. Tested for x86_64-pc-mingw32, i686-pc-mingw32, and i686-pc-cygwin. Ok to apply after the -mfentry patch got approval? Regards, Kai --=20 |=A0 (\_/) This is Bunny. Copy and paste | (=3D'.'=3D) Bunny into your signature to help | (")_(") him gain world domination --0016e6d975c7a2fc5c048ba71aef Content-Type: application/octet-stream; name="x64_pro.diff" Content-Disposition: attachment; filename="x64_pro.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gbrrb9150 Content-length: 13640 SW5kZXg6IGdjYy9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIGdjYy5vcmlnL2djYy9jb25maWcvaTM4Ni9pMzg2 LmMJMjAxMC0wNy0xOCAxMjoyNTozMy4xMzcyNzA0MDAgKzAyMDAKKysrIGdj Yy9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCTIwMTAtMDctMTggMTI6MjU6MzQu Mjg3MzM2MjAwICswMjAwCkBAIC0zNjkxLDEzICszNjkxLDQxIEBAIG92ZXJy aWRlX29wdGlvbnMgKGJvb2wgbWFpbl9hcmdzX3ApCiAjaWYgZGVmaW5lZChN Q09VTlRfTkFNRSkgJiYgZGVmaW5lZChNQ09VTlRfTkFNRV9CRUZPUkVfUFJP TE9HVUUpCiAgICAgb25seV9kZWZhdWx0ID0gMDsKICNlbmRpZgorICAgIGlm ICghVEFSR0VUXzY0QklUICYmIGZsYWdfZnJhbWV4NjQpCisgICAgICB7CisJ c29ycnkgKCItbWZyYW1lLXg2NCBpc24ndCBzdXBwb3J0ZWQgZm9yIDMyLWJp dCIpOworCisJZmxhZ19mcmFtZXg2NCA9IDA7CisgICAgICB9CisgICAgaWYg KG9ubHlfZGVmYXVsdCAmJiBkZWZhdWx0X3Byb2ZpbGVfdG9wX2ZsYWcgPT0g MCAmJiBwcm9maWxlX2ZsYWcKKwkmJiBmbGFnX2ZyYW1leDY0KQorICAgICAg eworCXNvcnJ5ICgiLW1mcmFtZS14NjQgb3B0aW9uIHJlcXVpcmVzIHVuc3Vw cG9ydGVkIC1tZmVudHJ5Iik7CisJZmxhZ19mcmFtZXg2NCA9IDA7CisgICAg ICB9CisgICAgZWxzZSBpZighb25seV9kZWZhdWx0ICYmIGZsYWdfZnJhbWV4 NjQpCisgICAgICB7CisJZGVmYXVsdF9wcm9maWxlX3RvcF9mbGFnID0gMTsK KyAgICAgIH0KIAogICAgIGlmIChmbGFnX2ZlbnRyeSA9PSAtMSkKICAgICAg IGZsYWdfZmVudHJ5ID0gZGVmYXVsdF9wcm9maWxlX3RvcF9mbGFnOworCisg ICAgaWYgKGZsYWdfZnJhbWV4NjQgJiYgZmxhZ19mZW50cnkgPT0gMCAmJiBw cm9maWxlX2ZsYWcpCisgICAgICB7CisJaWYgKCFvbmx5X2RlZmF1bHQpCisJ ICBzb3JyeSAoIi1tZnJhbWUteDY0IHRvZ2V0aGVyIHdpdGggLXBnIHJlcXVp cmVzIC1tZmVudHJ5Iik7CisJZWxzZQorCSAgc29ycnkgKCItbWZyYW1lLXg2 NCB0b2dldGhlciB3aXRoIC1wZyBpc24ndCBzdXBwb3J0ZWQgYnkgdGhpcyIK KwkgICAgICAgICAiIHRhcmdldCIpOworCWZsYWdfZnJhbWV4NjQgPSAwOwor ICAgICAgfQorCiAgICAgaWYgKGZsYWdfZmVudHJ5ICE9IDAgJiYgZm9yY2Vf ZGVmYXVsdF9wcm9maWxlX3RvcF9mbGFnKQogICAgICAgewogCXNvcnJ5ICgi LW1mZW50cnkgaXNuJ3Qgc3VwcG9ydCBmb3IgeDg2IGluIGNvbWJpbmF0aW9u IHdpdGggLWZwaWMiKTsKIAlmbGFnX2ZlbnRyeSA9IDA7CisJZmxhZ19mcmFt ZXg2NCA9IDA7CiAgICAgICB9CiAgICAgZWxzZSBpZiAoZmxhZ19mZW50cnkg IT0gZGVmYXVsdF9wcm9maWxlX3RvcF9mbGFnICYmIG9ubHlfZGVmYXVsdCkK ICAgICAgIHsKQEAgLTg0NzMsNiArODUwMSwxMiBAQCBpeDg2X2NvbXB1dGVf ZnJhbWVfbGF5b3V0IChzdHJ1Y3QgaXg4Nl9mCiAgIC8qIFdlJ3ZlIHJlYWNo ZWQgZW5kIG9mIHN0YWNrIGZyYW1lLiAgKi8KICAgZnJhbWUtPnN0YWNrX3Bv aW50ZXJfb2Zmc2V0ID0gb2Zmc2V0OwogCisgIC8qIEFkanVzdCBoYXJkX2Zy YW1lX3BvaW50ZXIgc28gdGhhdCBpdCBwb2ludHMKKyAgICAgdG8gZW5kIG9m IGZyYW1lLiAgKi8KKyAgaWYgKGZyYW1lX3BvaW50ZXJfbmVlZGVkICYmIGZs YWdfZnJhbWV4NjQpCisgICAgICBmcmFtZS0+aGFyZF9mcmFtZV9wb2ludGVy X29mZnNldCA9IG9mZnNldDsKKworCiAgIC8qIFNpemUgcHJvbG9ndWUgbmVl ZHMgdG8gYWxsb2NhdGUuICAqLwogICBmcmFtZS0+dG9fYWxsb2NhdGUgPQog ICAgIChzaXplICsgZnJhbWUtPnBhZGRpbmcxICsgZnJhbWUtPnBhZGRpbmcy CkBAIC05MjE3LDYgKzkyNTEsNyBAQCBpeDg2X2V4cGFuZF9wcm9sb2d1ZSAo dm9pZCkKICAgc3RydWN0IGl4ODZfZnJhbWUgZnJhbWU7CiAgIEhPU1RfV0lE RV9JTlQgYWxsb2NhdGU7CiAgIGludCBnZW5fZnJhbWVfcG9pbnRlciA9IGZy YW1lX3BvaW50ZXJfbmVlZGVkOworICBpbnQgYmVfeDY0ZnJhbWUgPSBmcmFt ZV9wb2ludGVyX25lZWRlZCAmJiBmbGFnX2ZyYW1leDY0OwogCiAgIGl4ODZf ZmluYWxpemVfc3RhY2tfcmVhbGlnbl9mbGFncyAoKTsKIApAQCAtOTM0OCwx MSArOTM4MywxNCBAQCBpeDg2X2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkKICAg ICAgIGluc24gPSBlbWl0X2luc24gKGdlbl9wdXNoIChoYXJkX2ZyYW1lX3Bv aW50ZXJfcnR4KSk7CiAgICAgICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNu KSA9IDE7CiAKLSAgICAgIGluc24gPSBlbWl0X21vdmVfaW5zbiAoaGFyZF9m cmFtZV9wb2ludGVyX3J0eCwgc3RhY2tfcG9pbnRlcl9ydHgpOwotICAgICAg UlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSAxOworICAgICAgaWYgKCFi ZV94NjRmcmFtZSkKKwl7CisJICBpbnNuID0gZW1pdF9tb3ZlX2luc24gKGhh cmRfZnJhbWVfcG9pbnRlcl9ydHgsIHN0YWNrX3BvaW50ZXJfcnR4KTsKKwkg IFJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24pID0gMTsKIAotICAgICAgaWYg KGl4ODZfY2ZhX3N0YXRlLT5yZWcgPT0gc3RhY2tfcG9pbnRlcl9ydHgpCi0g ICAgICAgIGl4ODZfY2ZhX3N0YXRlLT5yZWcgPSBoYXJkX2ZyYW1lX3BvaW50 ZXJfcnR4OworCSAgaWYgKGl4ODZfY2ZhX3N0YXRlLT5yZWcgPT0gc3RhY2tf cG9pbnRlcl9ydHgpCisJICAgIGl4ODZfY2ZhX3N0YXRlLT5yZWcgPSBoYXJk X2ZyYW1lX3BvaW50ZXJfcnR4OworCX0KICAgICB9CiAKICAgaWYgKHN0YWNr X3JlYWxpZ25fZnApCkBAIC05NDA3LDcgKzk0NDUsNyBAQCBpeDg2X2V4cGFu ZF9wcm9sb2d1ZSAodm9pZCkKICAgICAgYSByZWQgem9uZSBsb2NhdGlvbiAq LwogICBpZiAoIVRBUkdFVF82NEJJVF9NU19BQkkgJiYgVEFSR0VUX1JFRF9a T05FICYmIGZyYW1lLnNhdmVfcmVnc191c2luZ19tb3YKICAgICAgICYmICgh IFRBUkdFVF9TVEFDS19QUk9CRSB8fCBhbGxvY2F0ZSA8IENIRUNLX1NUQUNL X0xJTUlUKSkKLSAgICBpeDg2X2VtaXRfc2F2ZV9yZWdzX3VzaW5nX21vdiAo KGZyYW1lX3BvaW50ZXJfbmVlZGVkCisgICAgaXg4Nl9lbWl0X3NhdmVfcmVn c191c2luZ19tb3YgKChmcmFtZV9wb2ludGVyX25lZWRlZCAmJiAhYmVfeDY0 ZnJhbWUKIAkJCQkgICAgICYmICFjcnRsLT5zdGFja19yZWFsaWduX25lZWRl ZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBoYXJk X2ZyYW1lX3BvaW50ZXJfcnR4CiAJCQkJICAgOiBzdGFja19wb2ludGVyX3J0 eCwKQEAgLTk0NTEsNyArOTQ4OSw3IEBAIGl4ODZfZXhwYW5kX3Byb2xvZ3Vl ICh2b2lkKQogCiAgICAgICBpZiAoZWF4X2xpdmUpCiAJewotCSAgaWYgKGZy YW1lX3BvaW50ZXJfbmVlZGVkKQorCSAgaWYgKGZyYW1lX3BvaW50ZXJfbmVl ZGVkICYmICFiZV94NjRmcmFtZSkKIAkgICAgdCA9IHBsdXNfY29uc3RhbnQg KGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgsCiAJCQkgICAgICAgYWxsb2NhdGUK IAkJCSAgICAgICAtIGZyYW1lLnRvX2FsbG9jYXRlCkBAIC05NDY2LDcgKzk1 MDQsNyBAQCBpeDg2X2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkKICAgICAgICYm ICEoIVRBUkdFVF82NEJJVF9NU19BQkkgJiYgVEFSR0VUX1JFRF9aT05FCiAg ICAgICAgICAmJiAoISBUQVJHRVRfU1RBQ0tfUFJPQkUgfHwgYWxsb2NhdGUg PCBDSEVDS19TVEFDS19MSU1JVCkpKQogICAgIHsKLSAgICAgIGlmICghZnJh bWVfcG9pbnRlcl9uZWVkZWQKKyAgICAgIGlmICghZnJhbWVfcG9pbnRlcl9u ZWVkZWQgfHwgYmVfeDY0ZnJhbWUKIAkgIHx8ICEoZnJhbWUudG9fYWxsb2Nh dGUgKyBmcmFtZS5wYWRkaW5nMCkKIAkgIHx8IGNydGwtPnN0YWNrX3JlYWxp Z25fbmVlZGVkKQogICAgICAgICBpeDg2X2VtaXRfc2F2ZV9yZWdzX3VzaW5n X21vdiAoc3RhY2tfcG9pbnRlcl9ydHgsCkBAIC05NDc2LDcgKzk1MTQsNyBA QCBpeDg2X2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkKICAgICAgICAgaXg4Nl9l bWl0X3NhdmVfcmVnc191c2luZ19tb3YgKGhhcmRfZnJhbWVfcG9pbnRlcl9y dHgsCiAJCQkJICAgICAgIC1mcmFtZS5ucmVncyAqIFVOSVRTX1BFUl9XT1JE KTsKICAgICB9Ci0gIGlmICghZnJhbWVfcG9pbnRlcl9uZWVkZWQKKyAgaWYg KCFmcmFtZV9wb2ludGVyX25lZWRlZCB8fCBiZV94NjRmcmFtZQogICAgICAg fHwgIShmcmFtZS50b19hbGxvY2F0ZSArIGZyYW1lLnBhZGRpbmcwKQogICAg ICAgfHwgY3J0bC0+c3RhY2tfcmVhbGlnbl9uZWVkZWQpCiAgICAgaXg4Nl9l bWl0X3NhdmVfc3NlX3JlZ3NfdXNpbmdfbW92IChzdGFja19wb2ludGVyX3J0 eCwKQEAgLTk1MzAsNiArOTU2OCwxNSBAQCBpeDg2X2V4cGFuZF9wcm9sb2d1 ZSAodm9pZCkKICAgaWYgKGNydGwtPnByb2ZpbGUgJiYgIWZsYWdfZmVudHJ5 ICYmIHBpY19yZWdfdXNlZCkKICAgICBlbWl0X2luc24gKGdlbl9wcm9sb2d1 ZV91c2UgKHBpY19vZmZzZXRfdGFibGVfcnR4KSk7CiAKKyAgaWYgKGJlX3g2 NGZyYW1lKQorICAgIHsKKyAgICAgIGluc24gPSBlbWl0X21vdmVfaW5zbiAo aGFyZF9mcmFtZV9wb2ludGVyX3J0eCwgc3RhY2tfcG9pbnRlcl9ydHgpOwor ICAgICAgUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSAxOworCisgICAg ICBpZiAoaXg4Nl9jZmFfc3RhdGUtPnJlZyA9PSBzdGFja19wb2ludGVyX3J0 eCkKKwlpeDg2X2NmYV9zdGF0ZS0+cmVnID0gaGFyZF9mcmFtZV9wb2ludGVy X3J0eDsKKyAgICB9CisKICAgaWYgKGNydGwtPmRyYXBfcmVnICYmICFjcnRs LT5zdGFja19yZWFsaWduX25lZWRlZCkKICAgICB7CiAgICAgICAvKiB2RFJB UCBpcyBzZXR1cCBidXQgYWZ0ZXIgcmVsb2FkIGl0IHR1cm5zIG91dCBzdGFj ayByZWFsaWduCkBAIC05NzQyLDE5ICs5Nzg5LDI4IEBAIGl4ODZfZXhwYW5k X2VwaWxvZ3VlIChpbnQgc3R5bGUpCiAgIEhPU1RfV0lERV9JTlQgb2Zmc2V0 LCByZWRfb2Zmc2V0OwogICBzdHJ1Y3QgbWFjaGluZV9jZmFfc3RhdGUgY2Zh X3N0YXRlX3NhdmUgPSAqaXg4Nl9jZmFfc3RhdGU7CiAgIGJvb2wgdXNpbmdf ZHJhcDsKKyAgaW50IGJlX3g2NGZyYW1lID0gZnJhbWVfcG9pbnRlcl9uZWVk ZWQgJiYgZmxhZ19mcmFtZXg2NDsKKwogCiAgIGl4ODZfZmluYWxpemVfc3Rh Y2tfcmVhbGlnbl9mbGFncyAoKTsKIAogIC8qIFdoZW4gc3RhY2sgaXMgcmVh bGlnbmVkLCBTUCBtdXN0IGJlIHZhbGlkLiAgKi8KLSAgc3BfdmFsaWQgPSAo IWZyYW1lX3BvaW50ZXJfbmVlZGVkCisgIHNwX3ZhbGlkID0gKCFmcmFtZV9w b2ludGVyX25lZWRlZCB8fCBiZV94NjRmcmFtZQogCSAgICAgIHx8IGN1cnJl bnRfZnVuY3Rpb25fc3BfaXNfdW5jaGFuZ2luZwogCSAgICAgIHx8IHN0YWNr X3JlYWxpZ25fZnApOwogCiAgIGl4ODZfY29tcHV0ZV9mcmFtZV9sYXlvdXQg KCZmcmFtZSk7CiAKKyBpZiAoYmVfeDY0ZnJhbWUpCisgICB7CisgICAgIHBy b19lcGlsb2d1ZV9hZGp1c3Rfc3RhY2sgKHN0YWNrX3BvaW50ZXJfcnR4LAor ICAgICAJCQkJaGFyZF9mcmFtZV9wb2ludGVyX3J0eCwKKyAgICAgCQkJCWNv bnN0MF9ydHgsIHN0eWxlLCAwKTsKKyAgIH0KKwogICAvKiBTZWUgdGhlIGNv bW1lbnQgYWJvdXQgcmVkIHpvbmUgYW5kIGZyYW1lCiAgICAgIHBvaW50ZXIg dXNhZ2UgaW4gaXg4Nl9leHBhbmRfcHJvbG9ndWUuICAqLwotICBpZiAoZnJh bWVfcG9pbnRlcl9uZWVkZWQgJiYgZnJhbWUucmVkX3pvbmVfc2l6ZSkKKyAg aWYgKGZyYW1lX3BvaW50ZXJfbmVlZGVkICYmIChmcmFtZS5yZWRfem9uZV9z aXplIHx8IGJlX3g2NGZyYW1lKSkKICAgICBlbWl0X2luc24gKGdlbl9tZW1v cnlfYmxvY2thZ2UgKCkpOwogCiAgIHVzaW5nX2RyYXAgPSBjcnRsLT5kcmFw X3JlZyAmJiBjcnRsLT5zdGFja19yZWFsaWduX25lZWRlZDsKQEAgLTk4MDUs NyArOTg2MSw4IEBAIGl4ODZfZXhwYW5kX2VwaWxvZ3VlIChpbnQgc3R5bGUp CiAgICAgICB8fCAoZnJhbWVfcG9pbnRlcl9uZWVkZWQgJiYgVEFSR0VUX1VT RV9MRUFWRQogCSAgJiYgY2Z1bi0+bWFjaGluZS0+dXNlX2Zhc3RfcHJvbG9n dWVfZXBpbG9ndWUKIAkgICYmIChmcmFtZS5ucmVncyArIGZyYW1lLm5zc2Vy ZWdzKSA9PSAxKQotICAgICAgfHwgY3J0bC0+Y2FsbHNfZWhfcmV0dXJuKQor ICAgICAgfHwgY3J0bC0+Y2FsbHNfZWhfcmV0dXJuCisgICAgICB8fCBiZV94 NjRmcmFtZSkKICAgICB7CiAgICAgICAvKiBSZXN0b3JlIHJlZ2lzdGVycy4g IFdlIGNhbiB1c2UgZWJwIG9yIGVzcCB0byBhZGRyZXNzIHRoZSBtZW1vcnkK IAkgbG9jYXRpb25zLiAgSWYgYm90aCBhcmUgYXZhaWxhYmxlLCBkZWZhdWx0 IHRvIGVicCwgc2luY2Ugb2Zmc2V0cwpAQCAtOTgxNiw3ICs5ODczLDcgQEAg aXg4Nl9leHBhbmRfZXBpbG9ndWUgKGludCBzdHlsZSkKIAkgSWYgd2UgYXJl IHJlYWxpZ25pbmcgc3RhY2sgd2l0aCBicCBhbmQgc3AsIHJlZ3MgcmVzdG9y ZSBjYW4ndAogCSBiZSBhZGRyZXNzZWQgYnkgYnAuIHNwIG11c3QgYmUgdXNl ZCBpbnN0ZWFkLiAgKi8KIAotICAgICAgaWYgKCFmcmFtZV9wb2ludGVyX25l ZWRlZAorICAgICAgaWYgKCFmcmFtZV9wb2ludGVyX25lZWRlZCB8fCBiZV94 NjRmcmFtZQogCSAgfHwgKHNwX3ZhbGlkICYmICEoZnJhbWUudG9fYWxsb2Nh dGUgKyBmcmFtZS5wYWRkaW5nMCkpCiAJICB8fCBzdGFja19yZWFsaWduX2Zw KQogCXsKQEAgLTk4NTcsNyArOTkxNCw3IEBAIGl4ODZfZXhwYW5kX2VwaWxv Z3VlIChpbnQgc3R5bGUpCiAJICAvKiBOZWl0aGVyIGRvZXMgcmVncGFybSBu ZXN0ZWQgZnVuY3Rpb25zLiAgKi8KIAkgIGdjY19hc3NlcnQgKCFpeDg2X3N0 YXRpY19jaGFpbl9vbl9zdGFjayk7CiAKLQkgIGlmIChmcmFtZV9wb2ludGVy X25lZWRlZCkKKwkgIGlmIChmcmFtZV9wb2ludGVyX25lZWRlZCAmJiAhYmVf eDY0ZnJhbWUpCiAJICAgIHsKIAkgICAgICB0bXAgPSBnZW5fcnR4X1BMVVMg KFBtb2RlLCBoYXJkX2ZyYW1lX3BvaW50ZXJfcnR4LCBzYSk7CiAJICAgICAg dG1wID0gcGx1c19jb25zdGFudCAodG1wLCBVTklUU19QRVJfV09SRCk7CkBA IC05OTA2LDYgKzk5NjMsMTYgQEAgaXg4Nl9leHBhbmRfZXBpbG9ndWUgKGlu dCBzdHlsZSkKIAkJfQogCSAgICB9CiAJfQorICAgICAgZWxzZSBpZiAoYmVf eDY0ZnJhbWUpCisgICAgICAgIHsKKwkgIHByb19lcGlsb2d1ZV9hZGp1c3Rf c3RhY2sgKHN0YWNrX3BvaW50ZXJfcnR4LCBzdGFja19wb2ludGVyX3J0eCwK KwkJCQkgICAgIEdFTl9JTlQgKGZyYW1lLnRvX2FsbG9jYXRlCisJCQkJCSAg ICAgICsgZnJhbWUubnJlZ3MgKiBVTklUU19QRVJfV09SRAorCQkJCQkgICAg ICArIGZyYW1lLm5zc2VyZWdzICogMTYKKwkJCQkJICAgICAgKyBmcmFtZS5w YWRkaW5nMCksCisJCQkJICAgICBzdHlsZSwgMCk7CisJICBpeDg2X2VtaXRf cmVzdG9yZV9yZWdfdXNpbmdfcG9wIChoYXJkX2ZyYW1lX3BvaW50ZXJfcnR4 LCByZWRfb2Zmc2V0KTsKKwl9CiAgICAgICBlbHNlIGlmICghZnJhbWVfcG9p bnRlcl9uZWVkZWQpCiAJcHJvX2VwaWxvZ3VlX2FkanVzdF9zdGFjayAoc3Rh Y2tfcG9pbnRlcl9ydHgsIHN0YWNrX3BvaW50ZXJfcnR4LAogCQkJCSAgIEdF Tl9JTlQgKGZyYW1lLnRvX2FsbG9jYXRlCkBAIC05OTM1LDcgKzEwMDAyLDcg QEAgaXg4Nl9leHBhbmRfZXBpbG9ndWUgKGludCBzdHlsZSkKICAgICAgICAg IHdvbid0IGJlIGFibGUgdG8gcmVjb3ZlciB2aWEgbGVhICRvZmZzZXQoJWJw KSwgJXNwLCBiZWNhdXNlCiAgICAgICAgICB0aGVyZSBpcyBhIHBhZGRpbmcg YXJlYSBiZXR3ZWVuIGJwIGFuZCBzcCBmb3IgcmVhbGlnbi4KICAgICAgICAg ICJhZGQgJHRvX2FsbG9jYXRlLCAlc3AiIG11c3QgYmUgdXNlZCBpbnN0ZWFk LiAgKi8KLSAgICAgIGlmICghc3BfdmFsaWQpCisgICAgICBpZiAoIXNwX3Zh bGlkICYmICFiZV94NjRmcmFtZSkKIAl7CiAJICBnY2NfYXNzZXJ0IChmcmFt ZV9wb2ludGVyX25lZWRlZCk7CiAgICAgICAgICAgZ2NjX2Fzc2VydCAoIXN0 YWNrX3JlYWxpZ25fZnApOwpAQCAtOTk2Niw3ICsxMDAzMyw3IEBAIGl4ODZf ZXhwYW5kX2VwaWxvZ3VlIChpbnQgc3R5bGUpCiAJCQkJCSsgZnJhbWUucGFk ZGluZzApOwogICAgICAgcmVkX29mZnNldCAtPSBvZmZzZXQ7CiAKLSAgICAg IGlmIChmcmFtZV9wb2ludGVyX25lZWRlZCkKKyAgICAgIGlmIChmcmFtZV9w b2ludGVyX25lZWRlZCAmJiAhYmVfeDY0ZnJhbWUpCiAJewogCSAgLyogTGVh dmUgcmVzdWx0cyBpbiBzaG9ydGVyIGRlcGVuZGVuY3kgY2hhaW5zIG9uIENQ VXMgdGhhdCBhcmUKIAkgICAgIGFibGUgdG8gZ3JvayBpdCBmYXN0LiAgKi8K SW5kZXg6IGdjYy9nY2MvY29uZmlnL2kzODYvaTM4Ni5vcHQKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gZ2NjLm9yaWcvZ2NjL2NvbmZpZy9pMzg2L2kz ODYub3B0CTIwMTAtMDctMTggMTI6MjU6MzMuMTQwMjcwNjAwICswMjAwCisr KyBnY2MvZ2NjL2NvbmZpZy9pMzg2L2kzODYub3B0CTIwMTAtMDctMTggMTI6 MjU6MzQuMjkzMzM2NjAwICswMjAwCkBAIC0zNzksMyArMzc5LDggQEAgU3Vw cG9ydCBGMTZDIGJ1aWx0LWluIGZ1bmN0aW9ucyBhbmQgY29kZQogbWZlbnRy eQogVGFyZ2V0IFJlcG9ydCBWYXIoZmxhZ19mZW50cnkpIEluaXQoLTEpCiBF bWl0IHByb2ZpbGluZyBjb3VudGVyIGNhbGwgYXQgZnVuY3Rpb24gZW50cnkg YmVmb3JlIHByb2xvZ3VlLgorCittZnJhbWUteDY0CitUYXJnZXQgUmVwb3J0 IFZhcihmbGFnX2ZyYW1leDY0KSBJbml0KDApCitTZXQgdGhlIGZyYW1lLXBv aW50ZXIgdG8gdGhlIHN0YWNrIGxvY2F0aW9uIGF0IHRoZSBlbmQgb2YgcHJv bG9ndWUgZm9yIDY0LWJpdC4KKwpJbmRleDogZ2NjL2djYy9kb2MvaW52b2tl LnRleGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjLm9yaWcvZ2Nj L2RvYy9pbnZva2UudGV4aQkyMDEwLTA3LTE4IDEyOjI1OjMzLjE0OTI3MTEw MCArMDIwMAorKysgZ2NjL2djYy9kb2MvaW52b2tlLnRleGkJMjAxMC0wNy0x OCAxMjoyNTozNC4zMjAzMzgxMDAgKzAyMDAKQEAgLTYwMSw3ICs2MDEsNyBA QCBPYmplY3RpdmUtQyBhbmQgT2JqZWN0aXZlLUMrKyBEaWFsZWN0c30uCiAt bW9taXQtbGVhZi1mcmFtZS1wb2ludGVyICAtbW5vLXJlZC16b25lIC1tbm8t dGxzLWRpcmVjdC1zZWctcmVmcyBAZ29sCiAtbWNtb2RlbD1AdmFye2NvZGUt bW9kZWx9IC1tYWJpPUB2YXJ7bmFtZX0gQGdvbAogLW0zMiAgLW02NCAtbWxh cmdlLWRhdGEtdGhyZXNob2xkPUB2YXJ7bnVtfSBAZ29sCi0tbXNzZTJhdngg LW1mZW50cnl9CistbXNzZTJhdnggLW1mZW50cnkgLW1mcmFtZS14NjR9CiAK IEBlbXBoe0lBLTY0IE9wdGlvbnN9CiBAZ2Njb3B0bGlzdHstbWJpZy1lbmRp YW4gIC1tbGl0dGxlLWVuZGlhbiAgLW1nbnUtYXMgIC1tZ251LWxkICAtbW5v LXBpYyBAZ29sCkBAIC0xMjQ3NCw2ICsxMjQ3NCwxNCBAQCBJZiBwcm9maWxp bmcgaXMgYWN0aXZlIEBvcHRpb257LXBnfSBwdXQKIGNvdW50ZXIgY2FsbCBi ZWZvcmUgcHJvbG9ndWUuCiBOb3RlOiBPbiB4ODYgYXJjaGl0ZWN0dXJlcyB0 aGUgYXR0cmlidXRlIEBjb2Rle21zX2hvb2tfcHJvbG9ndWV9CiBpc24ndCBw b3NzaWJsZSBhdCB0aGUgbW9tZW50IGZvciBAb3B0aW9uey1tZmVudHJ5fSBh bmQgQG9wdGlvbnstcGd9LgorCitAaXRlbSAtbWZyYW1lLXg2NAorQGl0ZW14 IC1tbm8tZnJhbWUteDY0CitAb3BpbmRleCBtZnJhbWUteDY0CitTcGVjaWZp ZXMgdGhhdCB0aGUgZnJhbWUtcG9pbnRlciByZWdpc3RlciBwb2ludHMgdG8g dGhlCitzdGFjay1wb2ludGVyIGF0IHRoZSBlbmQgb2YgcHJvbG9ndWUuIEZv ciBwcm9maWxpbmcgdGhpcworb3B0aW9uIHJlcXVpcmVzIHRoYXQgQG9wdGlv bnstbWZlbnRyeX0gaXMgYWN0aXZlLCB0b28uCitOb3RlOiBPbiB4ODYgYXJj aGl0ZWN0dXJlcyB0aGlzIG9wdGlvbiBpcyBkaXNhbGxvd2VkLgogQGVuZCB0 YWJsZQogCiBUaGVzZSBAc2FtcHstbX0gc3dpdGNoZXMgYXJlIHN1cHBvcnRl ZCBpbiBhZGRpdGlvbiB0byB0aGUgYWJvdmUK --0016e6d975c7a2fc5c048ba71aef--