From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9853 invoked by alias); 29 Nov 2012 17:16:30 -0000 Received: (qmail 9820 invoked by uid 22791); 29 Nov 2012 17:16:26 -0000 X-SWARE-Spam-Status: No, hits=-2.2 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_VB X-Spam-Check-By: sourceware.org Received: from mail-qa0-f54.google.com (HELO mail-qa0-f54.google.com) (209.85.216.54) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 29 Nov 2012 17:16:21 +0000 Received: by mail-qa0-f54.google.com with SMTP id j15so518887qaq.20 for ; Thu, 29 Nov 2012 09:16:20 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type :x-gm-message-state; bh=XkGsfWCIJUZTqeBeEGo8drcx7xv7g3QbXj2xOX/CfRI=; b=ZgSe7sQdGKAaWG/ArdXB8d2ednjxR4xn99RLrWNcL4PdKdcCSIDyaiyRjFLi+gNGpX mjHkTeY5UGSayZ5LpKQII49crGHACdfJxJLlUi/ov+DWT1UPxiG+qmLoQb+YcJLvppOz fUl54hbod8+Uch0+8iSAWaNQ1NMoq6qc0kgbsfv/0CCAzR/qlmUzwmtdHhBBtguUCn4x 6d3WiT/LQ7yJMrr+CVTK54pE6QvPMv9E1DfLIpxPiSEiyke11P3nQRbC/yq1R+Ux4Sm0 WlDo4Eg9sWXgeq4k55WGDP5riYr0c0yIxswEqgMkgQTJbScKIBkiYYmIPKCnCdkKg1Ra 3BOA== MIME-Version: 1.0 Received: by 10.49.4.193 with SMTP id m1mr29843530qem.38.1354209380423; Thu, 29 Nov 2012 09:16:20 -0800 (PST) Received: by 10.49.84.106 with HTTP; Thu, 29 Nov 2012 09:16:20 -0800 (PST) Date: Thu, 29 Nov 2012 17:16:00 -0000 Message-ID: Subject: [ARM] Turning off 64bits ops in Neon and gfortran/modulo-scheduling problem From: Christophe Lyon To: "gcc-patches@gcc.gnu.org" Content-Type: multipart/mixed; boundary=047d7bb043ac125a8004cfa57116 X-Gm-Message-State: ALoCoQk4sa8FjOD2IX4ahVI2YuWelXw46xmbSdoY2eXPh2W1Hy4gP8Ep/WTd+Cu2IiR9gpB/UNpQ 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: 2012-11/txt/msg02465.txt.bz2 --047d7bb043ac125a8004cfa57116 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 2416 Hi, I have been working on a patch to avoid using Neon for 64 bits bitops when it's too expensive to move data between core and Neon registers. Benchmarking and validation look OK on the 4.7 branch (compiler configured for thumb and hard FP) - validation on cortex-a9 board OK - bencharking shows 10.5% improvement on spec2k's crafty bench. On other benches we are between -0.5% and +0.5%. On trunk I have noticed a regression in gfortran when using modulo scheduling: sms-1.f90 now fails, but I suspect it's not because of this patch since forcing compilation for armv5t makes the same test fail with and without my patch. Specifically, I have observed that the loop: 862e: 3b01 subs r3, #1 8630: ef70 08a1 vadd.i64 d16, d16, d17 8634: ec51 0b30 vmov r0, r1, d16 8638: e9e2 0102 strd r0, r1, [r2, #8]! 863c: d1f7 bne.n 862e in transformed into: 862e: 3901 subs r1, #1 8630: 1912 adds r2, r2, r4 8632: eb43 0305 adc.w r3, r3, r5 8636: e9e0 2302 strd r2, r3, [r0, #8]! 863a: d1f8 bne.n 862e with my patch. This is wrong because adds/adc clobber the flags used to control the loop. The patch is: 2012-11-28 Christophe Lyon gcc/ * config/arm/arm-protos.h (tune_params): Add prefer_neon_for_64bits field. * config/arm/arm.c (prefer_neon_for_64bits): New variable. (arm_slowmul_tune): Default prefer_neon_for_64bits to false. (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto. (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto. (arm_cortex_a5_tune, arm_cortex_a15_tune): Ditto. (arm_cortex_a9_tune, arm_fa726te_tune): Ditto. (arm_option_override): Handle -mneon-for-64bits new option. * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro. (prefer_neon_for_64bits): Declare new variable. * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to avoid_neon_for_64bits and neon_for_64bits. (arch_enabled): Handle new arch types. (one_cmpldi2): Use new arch names. * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon) (anddi3_neon, xordi3_neon, ashldi3_neon, di3_neon): Use neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead of onlya8. Is it OK for trunk? --047d7bb043ac125a8004cfa57116 Content-Type: text/plain; charset=US-ASCII; name="turn-off-64bits-neon.txt" Content-Disposition: attachment; filename="turn-off-64bits-neon.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ha456h680 Content-length: 15047 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL2FybS1wcm90b3MuaCBiL2dj Yy9jb25maWcvYXJtL2FybS1wcm90b3MuaAppbmRleCBkOTQyYzViLi5jOTJm MDU1IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FybS9hcm0tcHJvdG9zLmgK KysrIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLXByb3Rvcy5oCkBAIC0yNDcsNiAr MjQ3LDggQEAgc3RydWN0IHR1bmVfcGFyYW1zCiAgICAgIHBlcmZvcm1hbmNl LiBUaGUgZmlyc3QgZWxlbWVudCBjb3ZlcnMgVGh1bWIgc3RhdGUgYW5kIHRo ZSBzZWNvbmQgb25lCiAgICAgIGlzIGZvciBBUk0gc3RhdGUuICAqLwogICBi b29sIGxvZ2ljYWxfb3Bfbm9uX3Nob3J0X2NpcmN1aXRbMl07CisgIC8qIFBy ZWZlciBOZW9uIGZvciA2NC1iaXQgYml0b3BzLiAgKi8KKyAgYm9vbCBwcmVm ZXJfbmVvbl9mb3JfNjRiaXRzOwogfTsKIAogZXh0ZXJuIGNvbnN0IHN0cnVj dCB0dW5lX3BhcmFtcyAqY3VycmVudF90dW5lOwpkaWZmIC0tZ2l0IGEvZ2Nj L2NvbmZpZy9hcm0vYXJtLmMgYi9nY2MvY29uZmlnL2FybS9hcm0uYwppbmRl eCAyODZhNmM1Li45ZWZkMjE1IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2Fy bS9hcm0uYworKysgYi9nY2MvY29uZmlnL2FybS9hcm0uYwpAQCAtODE2LDYg KzgxNiwxMCBAQCBpbnQgYXJtX2FyY2hfdGh1bWIyOwogaW50IGFybV9hcmNo X2FybV9od2RpdjsKIGludCBhcm1fYXJjaF90aHVtYl9od2RpdjsKIAorLyog Tm9uemVybyBpZiB3ZSBzaG91bGQgdXNlIE5lb24gdG8gaGFuZGxlIDY0LWJp dHMgb3BlcmF0aW9ucyByYXRoZXIKKyAgIHRoYW4gY29yZSByZWdpc3RlcnMu ICAqLworaW50IHByZWZlcl9uZW9uX2Zvcl82NGJpdHMgPSAwOworCiAvKiBJ biBjYXNlIG9mIGEgUFJFX0lOQywgUE9TVF9JTkMsIFBSRV9ERUMsIFBPU1Rf REVDIG1lbW9yeSByZWZlcmVuY2UsCiAgICB3ZSBtdXN0IHJlcG9ydCB0aGUg bW9kZSBvZiB0aGUgbWVtb3J5IHJlZmVyZW5jZSBmcm9tCiAgICBUQVJHRVRf UFJJTlRfT1BFUkFORCB0byBUQVJHRVRfUFJJTlRfT1BFUkFORF9BRERSRVNT LiAgKi8KQEAgLTg5NSw2ICs4OTksNyBAQCBjb25zdCBzdHJ1Y3QgdHVuZV9w YXJhbXMgYXJtX3Nsb3dtdWxfdHVuZSA9CiAgIGFybV9kZWZhdWx0X2JyYW5j aF9jb3N0LAogICBmYWxzZSwJCQkJCS8qIFByZWZlciBMRFJEL1NUUkQuICAq LwogICB7dHJ1ZSwgdHJ1ZX0sCQkJCQkvKiBQcmVmZXIgbm9uIHNob3J0IGNp cmN1aXQuICAqLworICBmYWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogUHJlZmVyIE5lb24gZm9yIDY0LWJpdHMgYml0 b3BzLiAgKi8KIH07CiAKIGNvbnN0IHN0cnVjdCB0dW5lX3BhcmFtcyBhcm1f ZmFzdG11bF90dW5lID0KQEAgLTkwOCw2ICs5MTMsNyBAQCBjb25zdCBzdHJ1 Y3QgdHVuZV9wYXJhbXMgYXJtX2Zhc3RtdWxfdHVuZSA9CiAgIGFybV9kZWZh dWx0X2JyYW5jaF9jb3N0LAogICBmYWxzZSwJCQkJCS8qIFByZWZlciBMRFJE L1NUUkQuICAqLwogICB7dHJ1ZSwgdHJ1ZX0sCQkJCQkvKiBQcmVmZXIgbm9u IHNob3J0IGNpcmN1aXQuICAqLworICBmYWxzZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogUHJlZmVyIE5lb24gZm9yIDY0 LWJpdHMgYml0b3BzLiAgKi8KIH07CiAKIC8qIFN0cm9uZ0FSTSBoYXMgZWFy bHkgZXhlY3V0aW9uIG9mIGJyYW5jaGVzLCBzbyBhIHNlcXVlbmNlIHRoYXQg aXMgd29ydGgKQEAgLTkyNCw2ICs5MzAsNyBAQCBjb25zdCBzdHJ1Y3QgdHVu ZV9wYXJhbXMgYXJtX3N0cm9uZ2FybV90dW5lID0KICAgYXJtX2RlZmF1bHRf YnJhbmNoX2Nvc3QsCiAgIGZhbHNlLAkJCQkJLyogUHJlZmVyIExEUkQvU1RS RC4gICovCiAgIHt0cnVlLCB0cnVlfSwJCQkJCS8qIFByZWZlciBub24gc2hv cnQgY2lyY3VpdC4gICovCisgIGZhbHNlICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiBQcmVmZXIgTmVvbiBmb3IgNjQtYml0 cyBiaXRvcHMuICAqLwogfTsKIAogY29uc3Qgc3RydWN0IHR1bmVfcGFyYW1z IGFybV94c2NhbGVfdHVuZSA9CkBAIC05MzcsNiArOTQ0LDcgQEAgY29uc3Qg c3RydWN0IHR1bmVfcGFyYW1zIGFybV94c2NhbGVfdHVuZSA9CiAgIGFybV9k ZWZhdWx0X2JyYW5jaF9jb3N0LAogICBmYWxzZSwJCQkJCS8qIFByZWZlciBM RFJEL1NUUkQuICAqLwogICB7dHJ1ZSwgdHJ1ZX0sCQkJCQkvKiBQcmVmZXIg bm9uIHNob3J0IGNpcmN1aXQuICAqLworICBmYWxzZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUHJlZmVyIE5lb24gZm9y IDY0LWJpdHMgYml0b3BzLiAgKi8KIH07CiAKIGNvbnN0IHN0cnVjdCB0dW5l X3BhcmFtcyBhcm1fOWVfdHVuZSA9CkBAIC05NTAsNiArOTU4LDcgQEAgY29u c3Qgc3RydWN0IHR1bmVfcGFyYW1zIGFybV85ZV90dW5lID0KICAgYXJtX2Rl ZmF1bHRfYnJhbmNoX2Nvc3QsCiAgIGZhbHNlLAkJCQkJLyogUHJlZmVyIExE UkQvU1RSRC4gICovCiAgIHt0cnVlLCB0cnVlfSwJCQkJCS8qIFByZWZlciBu b24gc2hvcnQgY2lyY3VpdC4gICovCisgIGZhbHNlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQcmVmZXIgTmVvbiBmb3Ig NjQtYml0cyBiaXRvcHMuICAqLwogfTsKIAogY29uc3Qgc3RydWN0IHR1bmVf cGFyYW1zIGFybV92NnQyX3R1bmUgPQpAQCAtOTYzLDYgKzk3Miw3IEBAIGNv bnN0IHN0cnVjdCB0dW5lX3BhcmFtcyBhcm1fdjZ0Ml90dW5lID0KICAgYXJt X2RlZmF1bHRfYnJhbmNoX2Nvc3QsCiAgIGZhbHNlLAkJCQkJLyogUHJlZmVy IExEUkQvU1RSRC4gICovCiAgIHt0cnVlLCB0cnVlfSwJCQkJCS8qIFByZWZl ciBub24gc2hvcnQgY2lyY3VpdC4gICovCisgIGZhbHNlICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQcmVmZXIgTmVvbiBm b3IgNjQtYml0cyBiaXRvcHMuICAqLwogfTsKIAogLyogR2VuZXJpYyBDb3J0 ZXggdHVuaW5nLiAgVXNlIG1vcmUgc3BlY2lmaWMgdHVuaW5ncyBpZiBhcHBy b3ByaWF0ZS4gICovCkBAIC05NzcsNiArOTg3LDcgQEAgY29uc3Qgc3RydWN0 IHR1bmVfcGFyYW1zIGFybV9jb3J0ZXhfdHVuZSA9CiAgIGFybV9kZWZhdWx0 X2JyYW5jaF9jb3N0LAogICBmYWxzZSwJCQkJCS8qIFByZWZlciBMRFJEL1NU UkQuICAqLwogICB7dHJ1ZSwgdHJ1ZX0sCQkJCQkvKiBQcmVmZXIgbm9uIHNo b3J0IGNpcmN1aXQuICAqLworICBmYWxzZSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogUHJlZmVyIE5lb24gZm9yIDY0LWJp dHMgYml0b3BzLiAgKi8KIH07CiAKIGNvbnN0IHN0cnVjdCB0dW5lX3BhcmFt cyBhcm1fY29ydGV4X2ExNV90dW5lID0KQEAgLTk5MCw2ICsxMDAxLDcgQEAg Y29uc3Qgc3RydWN0IHR1bmVfcGFyYW1zIGFybV9jb3J0ZXhfYTE1X3R1bmUg PQogICBhcm1fZGVmYXVsdF9icmFuY2hfY29zdCwKICAgdHJ1ZSwJCQkJCQkv KiBQcmVmZXIgTERSRC9TVFJELiAgKi8KICAge3RydWUsIHRydWV9LAkJCQkJ LyogUHJlZmVyIG5vbiBzaG9ydCBjaXJjdWl0LiAgKi8KKyAgZmFsc2UgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFByZWZl ciBOZW9uIGZvciA2NC1iaXRzIGJpdG9wcy4gICovCiB9OwogCiAvKiBCcmFu Y2hlcyBjYW4gYmUgZHVhbC1pc3N1ZWQgb24gQ29ydGV4LUE1LCBzbyBjb25k aXRpb25hbCBleGVjdXRpb24gaXMKQEAgLTEwMDYsNiArMTAxOCw3IEBAIGNv bnN0IHN0cnVjdCB0dW5lX3BhcmFtcyBhcm1fY29ydGV4X2E1X3R1bmUgPQog ICBhcm1fY29ydGV4X2E1X2JyYW5jaF9jb3N0LAogICBmYWxzZSwJCQkJCS8q IFByZWZlciBMRFJEL1NUUkQuICAqLwogICB7ZmFsc2UsIGZhbHNlfSwJCQkJ LyogUHJlZmVyIG5vbiBzaG9ydCBjaXJjdWl0LiAgKi8KKyAgZmFsc2UgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFByZWZl ciBOZW9uIGZvciA2NC1iaXRzIGJpdG9wcy4gICovCiB9OwogCiBjb25zdCBz dHJ1Y3QgdHVuZV9wYXJhbXMgYXJtX2NvcnRleF9hOV90dW5lID0KQEAgLTEw MTksNiArMTAzMiw3IEBAIGNvbnN0IHN0cnVjdCB0dW5lX3BhcmFtcyBhcm1f Y29ydGV4X2E5X3R1bmUgPQogICBhcm1fZGVmYXVsdF9icmFuY2hfY29zdCwK ICAgZmFsc2UsCQkJCQkvKiBQcmVmZXIgTERSRC9TVFJELiAgKi8KICAge3Ry dWUsIHRydWV9LAkJCQkJLyogUHJlZmVyIG5vbiBzaG9ydCBjaXJjdWl0LiAg Ki8KKyAgZmFsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIFByZWZlciBOZW9uIGZvciA2NC1iaXRzIGJpdG9wcy4gICov CiB9OwogCiAvKiBUaGUgYXJtX3Y2bV90dW5lIGlzIGR1cGxpY2F0ZWQgZnJv bSBhcm1fY29ydGV4X3R1bmUsIHJhdGhlciB0aGFuCkBAIC0xMDM0LDYgKzEw NDgsNyBAQCBjb25zdCBzdHJ1Y3QgdHVuZV9wYXJhbXMgYXJtX3Y2bV90dW5l ID0KICAgYXJtX2RlZmF1bHRfYnJhbmNoX2Nvc3QsCiAgIGZhbHNlLAkJCQkJ LyogUHJlZmVyIExEUkQvU1RSRC4gICovCiAgIHtmYWxzZSwgZmFsc2V9LAkJ CQkvKiBQcmVmZXIgbm9uIHNob3J0IGNpcmN1aXQuICAqLworICBmYWxzZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUHJl ZmVyIE5lb24gZm9yIDY0LWJpdHMgYml0b3BzLiAgKi8KIH07CiAKIGNvbnN0 IHN0cnVjdCB0dW5lX3BhcmFtcyBhcm1fZmE3MjZ0ZV90dW5lID0KQEAgLTEw NDcsNiArMTA2Miw3IEBAIGNvbnN0IHN0cnVjdCB0dW5lX3BhcmFtcyBhcm1f ZmE3MjZ0ZV90dW5lID0KICAgYXJtX2RlZmF1bHRfYnJhbmNoX2Nvc3QsCiAg IGZhbHNlLAkJCQkJLyogUHJlZmVyIExEUkQvU1RSRC4gICovCiAgIHt0cnVl LCB0cnVlfSwJCQkJCS8qIFByZWZlciBub24gc2hvcnQgY2lyY3VpdC4gICov CisgIGZhbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiBQcmVmZXIgTmVvbiBmb3IgNjQtYml0cyBiaXRvcHMuICAqLwog fTsKIAogCkBAIC0yMDc3LDYgKzIwOTMsMTIgQEAgYXJtX29wdGlvbl9vdmVy cmlkZSAodm9pZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2Jh bF9vcHRpb25zLnhfcGFyYW1fdmFsdWVzLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ2xvYmFsX29wdGlvbnNfc2V0LnhfcGFyYW1fdmFsdWVzKTsK IAorICAvKiBVc2UgTmVvbiB0byBwZXJmb3JtIDY0LWJpdHMgb3BlcmF0aW9u cyByYXRoZXIgdGhhbiBjb3JlCisgICAgIHJlZ2lzdGVycy4gICovCisgIHBy ZWZlcl9uZW9uX2Zvcl82NGJpdHMgPSBjdXJyZW50X3R1bmUtPnByZWZlcl9u ZW9uX2Zvcl82NGJpdHM7CisgIGlmICh1c2VfbmVvbl9mb3JfNjRiaXRzID09 IDEpCisgICAgIHByZWZlcl9uZW9uX2Zvcl82NGJpdHMgPSB0cnVlOworCiAg IC8qIFVzZSB0aGUgYWx0ZXJuYXRpdmUgc2NoZWR1bGluZy1wcmVzc3VyZSBh bGdvcml0aG0gYnkgZGVmYXVsdC4gICovCiAgIG1heWJlX3NldF9wYXJhbV92 YWx1ZSAoUEFSQU1fU0NIRURfUFJFU1NVUkVfQUxHT1JJVEhNLCAyLAogICAg ICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbF9vcHRpb25zLnhfcGFyYW1f dmFsdWVzLApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vYXJtLmggYi9n Y2MvY29uZmlnL2FybS9hcm0uaAppbmRleCBmNTIwY2M3Li5jNzFkODVmIDEw MDY0NAotLS0gYS9nY2MvY29uZmlnL2FybS9hcm0uaAorKysgYi9nY2MvY29u ZmlnL2FybS9hcm0uaApAQCAtMzU2LDYgKzM1Niw5IEBAIGV4dGVybiB2b2lk ICgqYXJtX2xhbmdfb3V0cHV0X29iamVjdF9hdHRyaWJ1dGVzX2hvb2spKHZv aWQpOwogI2RlZmluZSBUQVJHRVRfSURJVgkJKChUQVJHRVRfQVJNICYmIGFy bV9hcmNoX2FybV9od2RpdikgXAogCQkJCSB8fCAoVEFSR0VUX1RIVU1CMiAm JiBhcm1fYXJjaF90aHVtYl9od2RpdikpCiAKKy8qIFNob3VsZCBORU9OIGJl IHVzZWQgZm9yIDY0LWJpdHMgYml0b3BzLiAgKi8KKyNkZWZpbmUgVEFSR0VU X1BSRUZFUl9ORU9OXzY0QklUUyAocHJlZmVyX25lb25fZm9yXzY0Yml0cykK KwogLyogVHJ1ZSBpZmYgdGhlIGZ1bGwgQlBBQkkgaXMgYmVpbmcgdXNlZC4g IElmIFRBUkdFVF9CUEFCSSBpcyB0cnVlLAogICAgdGhlbiBUQVJHRVRfQUFQ Q1NfQkFTRUQgbXVzdCBiZSB0cnVlIC0tIGJ1dCB0aGUgY29udmVyc2UgZG9l cyBub3QKICAgIGhvbGQuICBUQVJHRVRfQlBBQkkgaW1wbGllcyB0aGUgdXNl IG9mIHRoZSBCUEFCSSBydW50aW1lIGxpYnJhcnksCkBAIC01NDEsNiArNTQ0 LDEwIEBAIGV4dGVybiBpbnQgYXJtX2FyY2hfYXJtX2h3ZGl2OwogLyogTm9u emVybyBpZiBjaGlwIHN1cHBvcnRzIGludGVnZXIgZGl2aXNpb24gaW5zdHJ1 Y3Rpb24gaW4gVGh1bWIgbW9kZS4gICovCiBleHRlcm4gaW50IGFybV9hcmNo X3RodW1iX2h3ZGl2OwogCisvKiBOb256ZXJvIGlmIHdlIHNob3VsZCB1c2Ug TmVvbiB0byBoYW5kbGUgNjQtYml0cyBvcGVyYXRpb25zIHJhdGhlcgorICAg dGhhbiBjb3JlIHJlZ2lzdGVycy4gICovCitleHRlcm4gaW50IHByZWZlcl9u ZW9uX2Zvcl82NGJpdHM7CisKICNpZm5kZWYgVEFSR0VUX0RFRkFVTFQKICNk ZWZpbmUgVEFSR0VUX0RFRkFVTFQgIChNQVNLX0FQQ1NfRlJBTUUpCiAjZW5k aWYKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL2FybS5tZCBiL2djYy9j b25maWcvYXJtL2FybS5tZAppbmRleCBhYzUwN2VmLi5hZmRlNjEzIDEwMDY0 NAotLS0gYS9nY2MvY29uZmlnL2FybS9hcm0ubWQKKysrIGIvZ2NjL2NvbmZp Zy9hcm0vYXJtLm1kCkBAIC0yMDIsNyArMjAyLDcgQEAKIDsgZm9yIEFSTSBv ciBUaHVtYi0yIHdpdGggYXJtX2FyY2g2LCBhbmQgbm92NiBmb3IgQVJNIHdp dGhvdXQKIDsgYXJtX2FyY2g2LiAgVGhpcyBhdHRyaWJ1dGUgaXMgdXNlZCB0 byBjb21wdXRlIGF0dHJpYnV0ZSAiZW5hYmxlZCIsCiA7IHVzZSB0eXBlICJh bnkiIHRvIGVuYWJsZSBhbiBhbHRlcm5hdGl2ZSBpbiBhbGwgY2FzZXMuCi0o ZGVmaW5lX2F0dHIgImFyY2giICJhbnksYSx0LDMyLHQxLHQyLHY2LG5vdjYs b25seWE4LG5lb25fb25seWE4LG5vdGE4LG5lb25fbm90YTgsaXdtbXh0LGl3 bW14dDIiCisoZGVmaW5lX2F0dHIgImFyY2giICJhbnksYSx0LDMyLHQxLHQy LHY2LG5vdjYsb25seWE4LG5vdGE4LG5lb25fZm9yXzY0Yml0cyxhdm9pZF9u ZW9uX2Zvcl82NGJpdHMsaXdtbXh0LGl3bW14dDIiCiAgIChjb25zdF9zdHJp bmcgImFueSIpKQogCiAoZGVmaW5lX2F0dHIgImFyY2hfZW5hYmxlZCIgIm5v LHllcyIKQEAgLTI0MSwxOCArMjQxLDE4IEBACiAJICAgICAgKGVxX2F0dHIg InR1bmUiICJjb3J0ZXhhOCIpKQogCSAoY29uc3Rfc3RyaW5nICJ5ZXMiKQog Ci0JIChhbmQgKGVxX2F0dHIgImFyY2giICJuZW9uX29ubHlhOCIpCi0JICAg ICAgKGVxX2F0dHIgInR1bmUiICJjb3J0ZXhhOCIpCi0JICAgICAgKG1hdGNo X3Rlc3QgIlRBUkdFVF9ORU9OIikpCisJIChhbmQgKGVxX2F0dHIgImFyY2gi ICJhdm9pZF9uZW9uX2Zvcl82NGJpdHMiKQorCSAgICAgIChtYXRjaF90ZXN0 ICJUQVJHRVRfTkVPTiIpCisJICAgICAgKG5vdCAobWF0Y2hfdGVzdCAiVEFS R0VUX1BSRUZFUl9ORU9OXzY0QklUUyIpKSkKIAkgKGNvbnN0X3N0cmluZyAi eWVzIikKIAogCSAoYW5kIChlcV9hdHRyICJhcmNoIiAibm90YTgiKQogCSAg ICAgIChub3QgKGVxX2F0dHIgInR1bmUiICJjb3J0ZXhhOCIpKSkKIAkgKGNv bnN0X3N0cmluZyAieWVzIikKIAotCSAoYW5kIChlcV9hdHRyICJhcmNoIiAi bmVvbl9ub3RhOCIpCi0JICAgICAgKG5vdCAoZXFfYXR0ciAidHVuZSIgImNv cnRleGE4IikpCi0JICAgICAgKG1hdGNoX3Rlc3QgIlRBUkdFVF9ORU9OIikp CisJIChhbmQgKGVxX2F0dHIgImFyY2giICJuZW9uX2Zvcl82NGJpdHMiKQor CSAgICAgIChtYXRjaF90ZXN0ICJUQVJHRVRfTkVPTiIpCisJICAgICAgKG1h dGNoX3Rlc3QgIlRBUkdFVF9QUkVGRVJfTkVPTl82NEJJVFMiKSkKIAkgKGNv bnN0X3N0cmluZyAieWVzIikKIAogCSAoYW5kIChlcV9hdHRyICJhcmNoIiAi aXdtbXh0MiIpCkBAIC00MzcwLDcgKzQzNzAsNyBAQAogICBbKHNldF9hdHRy ICJsZW5ndGgiICIqLDgsOCwqIikKICAgIChzZXRfYXR0ciAicHJlZGljYWJs ZSIgIm5vLHllcyx5ZXMsbm8iKQogICAgKHNldF9hdHRyICJuZW9uX3R5cGUi ICJuZW9uX2ludF8xLCosKixuZW9uX2ludF8xIikKLSAgIChzZXRfYXR0ciAi YXJjaCIgIm5lb25fbm90YTgsKiwqLG5lb25fb25seWE4IildCisgICAoc2V0 X2F0dHIgImFyY2giICJuZW9uX2Zvcl82NGJpdHMsKiwqLGF2b2lkX25lb25f Zm9yXzY0Yml0cyIpXQogKQogCiAoZGVmaW5lX2V4cGFuZCAib25lX2NtcGxz aTIiCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS9hcm0ub3B0IGIvZ2Nj L2NvbmZpZy9hcm0vYXJtLm9wdAppbmRleCBmYjEyYzU1Li44M2I2MDAyIDEw MDY0NAotLS0gYS9nY2MvY29uZmlnL2FybS9hcm0ub3B0CisrKyBiL2djYy9j b25maWcvYXJtL2FybS5vcHQKQEAgLTI1MSwzICsyNTEsNyBAQCB0aGF0IG1h eSB0cmlnZ2VyIENvcnRleC1NMyBlcnJhdGEuCiBtdW5hbGlnbmVkLWFjY2Vz cwogVGFyZ2V0IFJlcG9ydCBWYXIodW5hbGlnbmVkX2FjY2VzcykgSW5pdCgy KQogRW5hYmxlIHVuYWxpZ25lZCB3b3JkIGFuZCBoYWxmd29yZCBhY2Nlc3Nl cyB0byBwYWNrZWQgZGF0YS4KKworbW5lb24tZm9yLTY0Yml0cworVGFyZ2V0 IFJlcG9ydCBSZWplY3ROZWdhdGl2ZSBWYXIodXNlX25lb25fZm9yXzY0Yml0 cykgSW5pdCgwKQorVXNlIE5lb24gdG8gcGVyZm9ybSA2NC1iaXRzIG9wZXJh dGlvbnMgcmF0aGVyIHRoYW4gY29yZSByZWdpc3RlcnMuCmRpZmYgLS1naXQg YS9nY2MvY29uZmlnL2FybS9uZW9uLm1kIGIvZ2NjL2NvbmZpZy9hcm0vbmVv bi5tZAppbmRleCAyMTAzNTgwLi44YjBlODc3IDEwMDY0NAotLS0gYS9nY2Mv Y29uZmlnL2FybS9uZW9uLm1kCisrKyBiL2djYy9jb25maWcvYXJtL25lb24u bWQKQEAgLTYxNyw3ICs2MTcsNyBAQAogICBbKHNldF9hdHRyICJuZW9uX3R5 cGUiICJuZW9uX2ludF8xLCosKixuZW9uX2ludF8xLCosKiwqIikKICAgIChz ZXRfYXR0ciAiY29uZHMiICIqLGNsb2IsY2xvYiwqLGNsb2IsY2xvYixjbG9i IikKICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiKiw4LDgsKiw4LDgsOCIpCi0g ICAoc2V0X2F0dHIgImFyY2giICJub3RhOCwqLCosb25seWE4LCosKiwqIild CisgICAoc2V0X2F0dHIgImFyY2giICJuZW9uX2Zvcl82NGJpdHMsKiwqLGF2 b2lkX25lb25fZm9yXzY0Yml0cywqLCosKiIpXQogKQogCiAoZGVmaW5lX2lu c24gIipzdWI8bW9kZT4zX25lb24iCkBAIC02NTQsNyArNjU0LDcgQEAKICAg WyhzZXRfYXR0ciAibmVvbl90eXBlIiAibmVvbl9pbnRfMiwqLCosKixuZW9u X2ludF8yIikKICAgIChzZXRfYXR0ciAiY29uZHMiICIqLGNsb2IsY2xvYixj bG9iLCoiKQogICAgKHNldF9hdHRyICJsZW5ndGgiICIqLDgsOCw4LCoiKQot ICAgKHNldF9hdHRyICJhcmNoIiAibm90YTgsKiwqLCosb25seWE4IildCisg ICAoc2V0X2F0dHIgImFyY2giICJuZW9uX2Zvcl82NGJpdHMsKiwqLCosYXZv aWRfbmVvbl9mb3JfNjRiaXRzIildCiApCiAKIChkZWZpbmVfaW5zbiAiKm11 bDxtb2RlPjNfbmVvbiIKQEAgLTgxNiw3ICs4MTYsNyBAQAogfQogICBbKHNl dF9hdHRyICJuZW9uX3R5cGUiICJuZW9uX2ludF8xLG5lb25faW50XzEsKiwq LG5lb25faW50XzEsbmVvbl9pbnRfMSIpCiAgICAoc2V0X2F0dHIgImxlbmd0 aCIgIiosKiw4LDgsKiwqIikKLSAgIChzZXRfYXR0ciAiYXJjaCIgIm5vdGE4 LG5vdGE4LCosKixvbmx5YTgsb25seWE4IildCisgICAoc2V0X2F0dHIgImFy Y2giICJuZW9uX2Zvcl82NGJpdHMsbmVvbl9mb3JfNjRiaXRzLCosKixhdm9p ZF9uZW9uX2Zvcl82NGJpdHMsYXZvaWRfbmVvbl9mb3JfNjRiaXRzIildCiAp CiAKIDs7IFRoZSBjb25jcmV0ZSBmb3JtcyBvZiB0aGUgTmVvbiBpbW1lZGlh dGUtbG9naWMgaW5zdHJ1Y3Rpb25zIGFyZSB2YmljIGFuZApAQCAtODYxLDcg Kzg2MSw3IEBACiB9CiAgIFsoc2V0X2F0dHIgIm5lb25fdHlwZSIgIm5lb25f aW50XzEsbmVvbl9pbnRfMSwqLCosbmVvbl9pbnRfMSxuZW9uX2ludF8xIikK ICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiKiwqLDgsOCwqLCoiKQotICAgKHNl dF9hdHRyICJhcmNoIiAibm90YTgsbm90YTgsKiwqLG9ubHlhOCxvbmx5YTgi KV0KKyAgIChzZXRfYXR0ciAiYXJjaCIgIm5lb25fZm9yXzY0Yml0cyxuZW9u X2Zvcl82NGJpdHMsKiwqLGF2b2lkX25lb25fZm9yXzY0Yml0cyxhdm9pZF9u ZW9uX2Zvcl82NGJpdHMiKV0KICkKIAogKGRlZmluZV9pbnNuICJvcm48bW9k ZT4zX25lb24iCkBAIC05NTcsNyArOTU3LDcgQEAKICAgIHZlb3JcdCVQMCwg JVAxLCAlUDIiCiAgIFsoc2V0X2F0dHIgIm5lb25fdHlwZSIgIm5lb25faW50 XzEsKiwqLG5lb25faW50XzEiKQogICAgKHNldF9hdHRyICJsZW5ndGgiICIq LDgsOCwqIikKLSAgIChzZXRfYXR0ciAiYXJjaCIgIm5vdGE4LCosKixvbmx5 YTgiKV0KKyAgIChzZXRfYXR0ciAiYXJjaCIgIm5lb25fZm9yXzY0Yml0cywq LCosYXZvaWRfbmVvbl9mb3JfNjRiaXRzIildCiApCiAKIChkZWZpbmVfaW5z biAib25lX2NtcGw8bW9kZT4yIgpAQCAtMTI3OSw3ICsxMjc5LDcgQEAKICAg ICAgIH0KICAgICBET05FOwogICB9IgotICBbKHNldF9hdHRyICJhcmNoIiAi bm90YTgsbm90YTgsKiwqLG9ubHlhOCxvbmx5YTgiKQorICBbKHNldF9hdHRy ICJhcmNoIiAibmVvbl9mb3JfNjRiaXRzLG5lb25fZm9yXzY0Yml0cywqLCos YXZvaWRfbmVvbl9mb3JfNjRiaXRzLGF2b2lkX25lb25fZm9yXzY0Yml0cyIp CiAgICAoc2V0X2F0dHIgIm9wdCIgIiosKixzcGVlZCxzcGVlZCwqLCoiKV0K ICkKIApAQCAtMTM4MCw3ICsxMzgwLDcgQEAKIAogICAgIERPTkU7CiAgIH0i Ci0gIFsoc2V0X2F0dHIgImFyY2giICJub3RhOCxub3RhOCwqLCosb25seWE4 LG9ubHlhOCIpCisgIFsoc2V0X2F0dHIgImFyY2giICJuZW9uX2Zvcl82NGJp dHMsbmVvbl9mb3JfNjRiaXRzLCosKixhdm9pZF9uZW9uX2Zvcl82NGJpdHMs YXZvaWRfbmVvbl9mb3JfNjRiaXRzIikKICAgIChzZXRfYXR0ciAib3B0IiAi KiwqLHNwZWVkLHNwZWVkLCosKiIpXQogKQogCg== --047d7bb043ac125a8004cfa57116--