From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27604 invoked by alias); 30 Dec 2012 16:05:28 -0000 Received: (qmail 27587 invoked by uid 22791); 30 Dec 2012 16:05:26 -0000 X-SWARE-Spam-Status: No, hits=-5.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_AV,TW_ZJ X-Spam-Check-By: sourceware.org Received: from mail-vb0-f43.google.com (HELO mail-vb0-f43.google.com) (209.85.212.43) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 30 Dec 2012 16:05:19 +0000 Received: by mail-vb0-f43.google.com with SMTP id fs19so12046755vbb.16 for ; Sun, 30 Dec 2012 08:05:18 -0800 (PST) MIME-Version: 1.0 Received: by 10.58.247.132 with SMTP id ye4mr62403579vec.9.1356883518515; Sun, 30 Dec 2012 08:05:18 -0800 (PST) Received: by 10.58.237.202 with HTTP; Sun, 30 Dec 2012 08:05:17 -0800 (PST) In-Reply-To: References: Date: Sun, 30 Dec 2012 16:05:00 -0000 Message-ID: Subject: Re: [RFC, x86] Changes for AVX and AVX2 processors From: Vladimir Yakovlev To: Uros Bizjak Cc: gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary=047d7bf0ecc81f6b0904d2141039 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-12/txt/msg01480.txt.bz2 --047d7bf0ecc81f6b0904d2141039 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 2941 I fixed typos and added CalangeLog. 2012-12-27 Vladimir Yakovlev : > On Sat, Dec 29, 2012 at 5:57 PM, Vladimir Yakovlev wrote: >> I did changes. Please take a look. >> >> 2012/12/29, Uros Bizjak : >>> On Sat, Dec 29, 2012 at 6:26 AM, Vladimir Yakovlev >>> wrote: >>> >>>> processor_alias_table contains the same processor type for all >>>> "corei7", "corei7-avx", "core-avx-i" and "core-avx2". At least, it has >>>> consequence on checking x86_avx256_split_unaligned_load & >>>> ix86_tune_mask: for all these processors it results the same. Moreover >>>> we cannot turn new features on for AVX/AVX2 using >>>> initial_ix86_tune_features. >>> >>> corei7, corei7-avx and core-avx-i are all based on sandybridge (= >>> PROCESSOR_COREI7) architecture. The only problematic entry is >>> core-avx2, which should be based on new architecture. I propose >>> PROCESSOR_HASWELL, in the same way as we have PROCESSOR_NOCONA. > > @@ -2467,6 +2470,7 @@ > "nocona", > "core2", > "corei7", > + "coreavx2", > "atom", > "geode", > "k6", > > This string should match processor_alias_table name, so "core-avx2". > > @@ -28709,6 +28716,10 @@ > arg_str = "corei7"; > priority = P_PROC_SSE4_2; > break; > + case PROCESSOR_HASWELL: > + arg_str = "core_avx2"; > + priority = P_PROC_SSE4_2; > + break; > case PROCESSOR_ATOM: > arg_str = "atom"; > priority = P_PROC_SSSE3; > > This is part of a processor dispatcher functionality. To support this > functionality, some more changes are needed, so it is IMO best to > leave this part out for now. I would also like the author of processor > dispatcher to review changes in this area. > > On a related note, it looks to me that corei7 should declare > P_PROC_AVX here (this change should be part of another patch). > > Other than that , the patch looks OK, but please repost final version > with a correct ChangeLog. > > Uros. --047d7bf0ecc81f6b0904d2141039 Content-Type: application/octet-stream; name=patch Content-Disposition: attachment; filename=patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_hbcdanqt0 Content-length: 17751 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2LWMuYyBiL2djYy9j b25maWcvaTM4Ni9pMzg2LWMuYw0KaW5kZXggMjJlNWU5Yi4uMmQ4YWJkNSAx MDA2NDQNCi0tLSBhL2djYy9jb25maWcvaTM4Ni9pMzg2LWMuYw0KKysrIGIv Z2NjL2NvbmZpZy9pMzg2L2kzODYtYy5jDQpAQCAtMTQyLDYgKzE0MiwxMCBA QCBpeDg2X3RhcmdldF9tYWNyb3NfaW50ZXJuYWwgKEhPU1RfV0lERV9JTlQg aXNhX2ZsYWcsDQogICAgICAgZGVmX29yX3VuZGVmIChwYXJzZV9pbiwgIl9f Y29yZWk3Iik7DQogICAgICAgZGVmX29yX3VuZGVmIChwYXJzZV9pbiwgIl9f Y29yZWk3X18iKTsNCiAgICAgICBicmVhazsNCisgICAgY2FzZSBQUk9DRVNT T1JfSEFTV0VMTDoNCisgICAgICBkZWZfb3JfdW5kZWYgKHBhcnNlX2luLCAi X19jb3JlX2F2eDIiKTsNCisgICAgICBkZWZfb3JfdW5kZWYgKHBhcnNlX2lu LCAiX19jb3JlX2F2eDJfXyIpOw0KKyAgICAgIGJyZWFrOw0KICAgICBjYXNl IFBST0NFU1NPUl9BVE9NOg0KICAgICAgIGRlZl9vcl91bmRlZiAocGFyc2Vf aW4sICJfX2F0b20iKTsNCiAgICAgICBkZWZfb3JfdW5kZWYgKHBhcnNlX2lu LCAiX19hdG9tX18iKTsNCkBAIC0yMzIsNiArMjM2LDkgQEAgaXg4Nl90YXJn ZXRfbWFjcm9zX2ludGVybmFsIChIT1NUX1dJREVfSU5UIGlzYV9mbGFnLA0K ICAgICBjYXNlIFBST0NFU1NPUl9DT1JFSTc6DQogICAgICAgZGVmX29yX3Vu ZGVmIChwYXJzZV9pbiwgIl9fdHVuZV9jb3JlaTdfXyIpOw0KICAgICAgIGJy ZWFrOw0KKyAgICBjYXNlIFBST0NFU1NPUl9IQVNXRUxMOg0KKyAgICAgIGRl Zl9vcl91bmRlZiAocGFyc2VfaW4sICJfX3R1bmVfY29yZV9hdngyX18iKTsN CisgICAgICBicmVhazsNCiAgICAgY2FzZSBQUk9DRVNTT1JfQVRPTToNCiAg ICAgICBkZWZfb3JfdW5kZWYgKHBhcnNlX2luLCAiX190dW5lX2F0b21fXyIp Ow0KICAgICAgIGJyZWFrOw0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4 Ni9pMzg2LmMgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5jDQppbmRleCA2OWY0 NGFhLi5jZGFiZmY2IDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2kz ODYuYw0KKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYuYw0KQEAgLTE3MzIs NyArMTczMiw4IEBAIGNvbnN0IHN0cnVjdCBwcm9jZXNzb3JfY29zdHMgKml4 ODZfY29zdCA9ICZwZW50aXVtX2Nvc3Q7DQogI2RlZmluZSBtX1A0X05PQ09O QSAobV9QRU5UNCB8IG1fTk9DT05BKQ0KICNkZWZpbmUgbV9DT1JFMiAoMTw8 UFJPQ0VTU09SX0NPUkUyKQ0KICNkZWZpbmUgbV9DT1JFSTcgKDE8PFBST0NF U1NPUl9DT1JFSTcpDQotI2RlZmluZSBtX0NPUkUySTcgKG1fQ09SRTIgfCBt X0NPUkVJNykNCisjZGVmaW5lIG1fSEFTV0VMTCAoMTw8UFJPQ0VTU09SX0hB U1dFTEwpDQorI2RlZmluZSBtX0NPUkVfQUxMIChtX0NPUkUyIHwgbV9DT1JF STcgIHwgbV9IQVNXRUxMKQ0KICNkZWZpbmUgbV9BVE9NICgxPDxQUk9DRVNT T1JfQVRPTSkNCiANCiAjZGVmaW5lIG1fR0VPREUgKDE8PFBST0NFU1NPUl9H RU9ERSkNCkBAIC0xNzY4LDE2ICsxNzY5LDE2IEBAIHN0YXRpYyB1bnNpZ25l ZCBpbnQgaW5pdGlhbF9peDg2X3R1bmVfZmVhdHVyZXNbWDg2X1RVTkVfTEFT VF0gPSB7DQogICAgICBuZWdhdGl2ZWx5LCBzbyBlbmFibGluZyBmb3IgR2Vu ZXJpYzY0IHNlZW1zIGxpa2UgZ29vZCBjb2RlIHNpemUNCiAgICAgIHRyYWRl b2ZmLiAgV2UgY2FuJ3QgZW5hYmxlIGl0IGZvciAzMmJpdCBnZW5lcmljIGJl Y2F1c2UgaXQgZG9lcyBub3QNCiAgICAgIHdvcmsgd2VsbCB3aXRoIFBQcm8g YmFzZSBjaGlwcy4gICovDQotICBtXzM4NiB8IG1fQ09SRTJJNyB8IG1fSzZf R0VPREUgfCBtX0FNRF9NVUxUSVBMRSB8IG1fR0VORVJJQzY0LA0KKyAgbV8z ODYgfCBtX0NPUkVfQUxMIHwgbV9LNl9HRU9ERSB8IG1fQU1EX01VTFRJUExF IHwgbV9HRU5FUklDNjQsDQogDQogICAvKiBYODZfVFVORV9QVVNIX01FTU9S WSAqLw0KLSAgbV8zODYgfCBtX1A0X05PQ09OQSB8IG1fQ09SRTJJNyB8IG1f SzZfR0VPREUgfCBtX0FNRF9NVUxUSVBMRSB8IG1fR0VORVJJQywNCisgIG1f Mzg2IHwgbV9QNF9OT0NPTkEgfCBtX0NPUkVfQUxMIHwgbV9LNl9HRU9ERSB8 IG1fQU1EX01VTFRJUExFIHwgbV9HRU5FUklDLA0KIA0KICAgLyogWDg2X1RV TkVfWkVST19FWFRFTkRfV0lUSF9BTkQgKi8NCiAgIG1fNDg2IHwgbV9QRU5U LA0KIA0KICAgLyogWDg2X1RVTkVfVU5ST0xMX1NUUkxFTiAqLw0KLSAgbV80 ODYgfCBtX1BFTlQgfCBtX1BQUk8gfCBtX0FUT00gfCBtX0NPUkUySTcgfCBt X0s2IHwgbV9BTURfTVVMVElQTEUgfCBtX0dFTkVSSUMsDQorICBtXzQ4NiB8 IG1fUEVOVCB8IG1fUFBSTyB8IG1fQVRPTSB8IG1fQ09SRV9BTEwgfCBtX0s2 IHwgbV9BTURfTVVMVElQTEUgfCBtX0dFTkVSSUMsDQogDQogICAvKiBYODZf VFVORV9CUkFOQ0hfUFJFRElDVElPTl9ISU5UUzogQnJhbmNoIGhpbnRzIHdl cmUgcHV0IGluIFA0IGJhc2VkDQogICAgICBvbiBzaW11bGF0aW9uIHJlc3Vs dC4gQnV0IGFmdGVyIFA0IHdhcyBtYWRlLCBubyBwZXJmb3JtYW5jZSBiZW5l Zml0DQpAQCAtMTc4OSwxMSArMTc5MCwxMSBAQCBzdGF0aWMgdW5zaWduZWQg aW50IGluaXRpYWxfaXg4Nl90dW5lX2ZlYXR1cmVzW1g4Nl9UVU5FX0xBU1Rd ID0gew0KICAgfm1fMzg2LA0KIA0KICAgLyogWDg2X1RVTkVfVVNFX1NBSEYg Ki8NCi0gIG1fUFBSTyB8IG1fUDRfTk9DT05BIHwgbV9DT1JFMkk3IHwgbV9B VE9NIHwgbV9LNl9HRU9ERSB8IG1fSzggfCBtX0FNREZBTTEwIHwgbV9CRFZF UiB8IG1fQlRWRVIgfCBtX0dFTkVSSUMsDQorICBtX1BQUk8gfCBtX1A0X05P Q09OQSB8IG1fQ09SRV9BTEwgfCBtX0FUT00gfCBtX0s2X0dFT0RFIHwgbV9L OCB8IG1fQU1ERkFNMTAgfCBtX0JEVkVSIHwgbV9CVFZFUiB8IG1fR0VORVJJ QywNCiANCiAgIC8qIFg4Nl9UVU5FX01PVlg6IEVuYWJsZSB0byB6ZXJvIGV4 dGVuZCBpbnRlZ2VyIHJlZ2lzdGVycyB0byBhdm9pZA0KICAgICAgcGFydGlh bCBkZXBlbmRlbmNpZXMuICAqLw0KLSAgbV9QUFJPIHwgbV9QNF9OT0NPTkEg fCBtX0NPUkUySTcgfCBtX0FUT00gfCBtX0dFT0RFIHwgbV9BTURfTVVMVElQ TEUgIHwgbV9HRU5FUklDLA0KKyAgbV9QUFJPIHwgbV9QNF9OT0NPTkEgfCBt X0NPUkVfQUxMIHwgbV9BVE9NIHwgbV9HRU9ERSB8IG1fQU1EX01VTFRJUExF ICB8IG1fR0VORVJJQywNCiANCiAgIC8qIFg4Nl9UVU5FX1BBUlRJQUxfUkVH X1NUQUxMOiBXZSBwcm9iYWJseSBvdWdodCB0byB3YXRjaCBmb3IgcGFydGlh bA0KICAgICAgcmVnaXN0ZXIgc3RhbGxzIG9uIEdlbmVyaWMzMiBjb21waWxh dGlvbiBzZXR0aW5nIGFzIHdlbGwuICBIb3dldmVyDQpAQCAtMTgwNiwxNyAr MTgwNywxNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGluaXRpYWxfaXg4Nl90 dW5lX2ZlYXR1cmVzW1g4Nl9UVU5FX0xBU1RdID0gew0KICAgbV9QUFJPLA0K IA0KICAgLyogWDg2X1RVTkVfUEFSVElBTF9GTEFHX1JFR19TVEFMTCAqLw0K LSAgbV9DT1JFMkk3IHwgbV9HRU5FUklDLA0KKyAgbV9DT1JFX0FMTCB8IG1f R0VORVJJQywNCiANCiAgIC8qIFg4Nl9UVU5FX0xDUF9TVEFMTDogQXZvaWQg YW4gZXhwZW5zaXZlIGxlbmd0aC1jaGFuZ2luZyBwcmVmaXggc3RhbGwNCiAg ICAqIG9uIDE2LWJpdCBpbW1lZGlhdGUgbW92ZXMgaW50byBtZW1vcnkgb24g Q29yZTIgYW5kIENvcmVpNy4gICovDQotICBtX0NPUkUySTcgfCBtX0dFTkVS SUMsDQorICBtX0NPUkVfQUxMIHwgbV9HRU5FUklDLA0KIA0KICAgLyogWDg2 X1RVTkVfVVNFX0hJTU9ERV9GSU9QICovDQogICBtXzM4NiB8IG1fNDg2IHwg bV9LNl9HRU9ERSwNCiANCiAgIC8qIFg4Nl9UVU5FX1VTRV9TSU1PREVfRklP UCAqLw0KLSAgfihtX1BFTlQgfCBtX1BQUk8gfCBtX0NPUkUySTcgfCBtX0FU T00gfCBtX0FNRF9NVUxUSVBMRSB8IG1fR0VORVJJQyksDQorICB+KG1fUEVO VCB8IG1fUFBSTyB8IG1fQ09SRV9BTEwgfCBtX0FUT00gfCBtX0FNRF9NVUxU SVBMRSB8IG1fR0VORVJJQyksDQogDQogICAvKiBYODZfVFVORV9VU0VfTU9W MCAqLw0KICAgbV9LNiwNCkBAIC0xODM3LDcgKzE4MzgsNyBAQCBzdGF0aWMg dW5zaWduZWQgaW50IGluaXRpYWxfaXg4Nl90dW5lX2ZlYXR1cmVzW1g4Nl9U VU5FX0xBU1RdID0gew0KICAgfihtX1BFTlQgfCBtX1BQUk8pLA0KIA0KICAg LyogWDg2X1RVTkVfUFJPTU9URV9RSU1PREUgKi8NCi0gIG1fMzg2IHwgbV80 ODYgfCBtX1BFTlQgfCBtX0NPUkUySTcgfCBtX0FUT00gfCBtX0s2X0dFT0RF IHwgbV9BTURfTVVMVElQTEUgfCBtX0dFTkVSSUMsDQorICBtXzM4NiB8IG1f NDg2IHwgbV9QRU5UIHwgbV9DT1JFX0FMTCB8IG1fQVRPTSB8IG1fSzZfR0VP REUgfCBtX0FNRF9NVUxUSVBMRSB8IG1fR0VORVJJQywNCiANCiAgIC8qIFg4 Nl9UVU5FX0ZBU1RfUFJFRklYICovDQogICB+KG1fMzg2IHwgbV80ODYgfCBt X1BFTlQpLA0KQEAgLTE4NzgsMTAgKzE4NzksMTAgQEAgc3RhdGljIHVuc2ln bmVkIGludCBpbml0aWFsX2l4ODZfdHVuZV9mZWF0dXJlc1tYODZfVFVORV9M QVNUXSA9IHsNCiANCiAgIC8qIFg4Nl9UVU5FX0lOVEVHRVJfREZNT0RFX01P VkVTOiBFbmFibGUgaWYgaW50ZWdlciBtb3ZlcyBhcmUgcHJlZmVycmVkDQog ICAgICBmb3IgREZtb2RlIGNvcGllcyAqLw0KLSAgfihtX1BQUk8gfCBtX1A0 X05PQ09OQSB8IG1fQ09SRTJJNyB8IG1fQVRPTSB8IG1fR0VPREUgfCBtX0FN RF9NVUxUSVBMRSB8IG1fQVRPTSB8IG1fR0VORVJJQyksDQorICB+KG1fUFBS TyB8IG1fUDRfTk9DT05BIHwgbV9DT1JFX0FMTCB8IG1fQVRPTSB8IG1fR0VP REUgfCBtX0FNRF9NVUxUSVBMRSB8IG1fQVRPTSB8IG1fR0VORVJJQyksDQog DQogICAvKiBYODZfVFVORV9QQVJUSUFMX1JFR19ERVBFTkRFTkNZICovDQot ICBtX1A0X05PQ09OQSB8IG1fQ09SRTJJNyB8IG1fQVRPTSB8IG1fQU1EX01V TFRJUExFIHwgbV9HRU5FUklDLA0KKyAgbV9QNF9OT0NPTkEgfCBtX0NPUkVf QUxMIHwgbV9BVE9NIHwgbV9BTURfTVVMVElQTEUgfCBtX0dFTkVSSUMsDQog DQogICAvKiBYODZfVFVORV9TU0VfUEFSVElBTF9SRUdfREVQRU5ERU5DWTog SW4gdGhlIEdlbmVyaWMgbW9kZWwgd2UgaGF2ZSBhDQogICAgICBjb25mbGlj dCBoZXJlIGluIGJldHdlZW4gUFByby9QZW50aXVtNCBiYXNlZCBjaGlwcyB0 aGF0IHRocmVhZCAxMjhiaXQNCkBAIC0xODkyLDcgKzE4OTMsNyBAQCBzdGF0 aWMgdW5zaWduZWQgaW50IGluaXRpYWxfaXg4Nl90dW5lX2ZlYXR1cmVzW1g4 Nl9UVU5FX0xBU1RdID0gew0KICAgICAgc2hvd3MgdGhhdCBkaXNhYmxpbmcg dGhpcyBvcHRpb24gb24gUDQgYnJpbmdzIG92ZXIgMjAlIFNQRUNmcCByZWdy ZXNzaW9uLA0KICAgICAgd2hpbGUgZW5hYmxpbmcgaXQgb24gSzggYnJpbmdz IHJvdWdobHkgMi40JSByZWdyZXNzaW9uIHRoYXQgY2FuIGJlIHBhcnRseQ0K ICAgICAgbWFza2VkIGJ5IGNhcmVmdWwgc2NoZWR1bGluZyBvZiBtb3Zlcy4g ICovDQotICBtX1BQUk8gfCBtX1A0X05PQ09OQSB8IG1fQ09SRTJJNyB8IG1f QVRPTSAgfCBtX0FNREZBTTEwIHwgbV9CRFZFUiB8IG1fR0VORVJJQywNCisg IG1fUFBSTyB8IG1fUDRfTk9DT05BIHwgbV9DT1JFX0FMTCB8IG1fQVRPTSAg fCBtX0FNREZBTTEwIHwgbV9CRFZFUiB8IG1fR0VORVJJQywNCiANCiAgIC8q IFg4Nl9UVU5FX1NTRV9VTkFMSUdORURfTE9BRF9PUFRJTUFMICovDQogICBt X0NPUkVJNyB8IG1fQU1ERkFNMTAgfCBtX0JEVkVSIHwgbV9CVFZFUiwNCkBA IC0xOTE2LDcgKzE5MTcsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGluaXRp YWxfaXg4Nl90dW5lX2ZlYXR1cmVzW1g4Nl9UVU5FX0xBU1RdID0gew0KICAg bV9QUFJPIHwgbV9QNF9OT0NPTkEsDQogDQogICAvKiBYODZfVFVORV9NRU1P UllfTUlTTUFUQ0hfU1RBTEwgKi8NCi0gIG1fUDRfTk9DT05BIHwgbV9DT1JF Mkk3IHwgbV9BVE9NIHwgbV9BTURfTVVMVElQTEUgfCBtX0dFTkVSSUMsDQor ICBtX1A0X05PQ09OQSB8IG1fQ09SRV9BTEwgfCBtX0FUT00gfCBtX0FNRF9N VUxUSVBMRSB8IG1fR0VORVJJQywNCiANCiAgIC8qIFg4Nl9UVU5FX1BST0xP R1VFX1VTSU5HX01PVkUgKi8NCiAgIG1fUFBSTyB8IG1fQVRITE9OX0s4LA0K QEAgLTE5MzgsMjggKzE5MzksMjggQEAgc3RhdGljIHVuc2lnbmVkIGludCBp bml0aWFsX2l4ODZfdHVuZV9mZWF0dXJlc1tYODZfVFVORV9MQVNUXSA9IHsN CiANCiAgIC8qIFg4Nl9UVU5FX0ZPVVJfSlVNUF9MSU1JVDogU29tZSBDUFUg Y29yZXMgYXJlIG5vdCBhYmxlIHRvIHByZWRpY3QgbW9yZQ0KICAgICAgdGhh biA0IGJyYW5jaCBpbnN0cnVjdGlvbnMgaW4gdGhlIDE2IGJ5dGUgd2luZG93 LiAgKi8NCi0gIG1fUFBSTyB8IG1fUDRfTk9DT05BIHwgbV9DT1JFMkk3IHwg bV9BVE9NIHwgbV9BTURfTVVMVElQTEUgfCBtX0dFTkVSSUMsDQorICBtX1BQ Uk8gfCBtX1A0X05PQ09OQSB8IG1fQ09SRV9BTEwgfCBtX0FUT00gfCBtX0FN RF9NVUxUSVBMRSB8IG1fR0VORVJJQywNCiANCiAgIC8qIFg4Nl9UVU5FX1ND SEVEVUxFICovDQotICBtX1BFTlQgfCBtX1BQUk8gfCBtX0NPUkUySTcgfCBt X0FUT00gfCBtX0s2X0dFT0RFIHwgbV9BTURfTVVMVElQTEUgfCBtX0dFTkVS SUMsDQorICBtX1BFTlQgfCBtX1BQUk8gfCBtX0NPUkVfQUxMIHwgbV9BVE9N IHwgbV9LNl9HRU9ERSB8IG1fQU1EX01VTFRJUExFIHwgbV9HRU5FUklDLA0K IA0KICAgLyogWDg2X1RVTkVfVVNFX0JUICovDQotICBtX0NPUkUySTcgfCBt X0FUT00gfCBtX0FNRF9NVUxUSVBMRSB8IG1fR0VORVJJQywNCisgIG1fQ09S RV9BTEwgfCBtX0FUT00gfCBtX0FNRF9NVUxUSVBMRSB8IG1fR0VORVJJQywN CiANCiAgIC8qIFg4Nl9UVU5FX1VTRV9JTkNERUMgKi8NCi0gIH4obV9QNF9O T0NPTkEgfCBtX0NPUkUySTcgfCBtX0FUT00gfCBtX0dFTkVSSUMpLA0KKyAg fihtX1A0X05PQ09OQSB8IG1fQ09SRV9BTEwgfCBtX0FUT00gfCBtX0dFTkVS SUMpLA0KIA0KICAgLyogWDg2X1RVTkVfUEFEX1JFVFVSTlMgKi8NCi0gIG1f Q09SRTJJNyB8IG1fQU1EX01VTFRJUExFIHwgbV9HRU5FUklDLA0KKyAgbV9D T1JFX0FMTCB8IG1fQU1EX01VTFRJUExFIHwgbV9HRU5FUklDLA0KIA0KICAg LyogWDg2X1RVTkVfUEFEX1NIT1JUX0ZVTkNUSU9OOiBQYWQgc2hvcnQgZnVu dGlvbi4gICovDQogICBtX0FUT00sDQogDQogICAvKiBYODZfVFVORV9FWFRf ODAzODdfQ09OU1RBTlRTICovDQotICBtX1BQUk8gfCBtX1A0X05PQ09OQSB8 IG1fQ09SRTJJNyB8IG1fQVRPTSB8IG1fSzZfR0VPREUgfCBtX0FUSExPTl9L OCB8IG1fR0VORVJJQywNCisgIG1fUFBSTyB8IG1fUDRfTk9DT05BIHwgbV9D T1JFX0FMTCB8IG1fQVRPTSB8IG1fSzZfR0VPREUgfCBtX0FUSExPTl9LOCB8 IG1fR0VORVJJQywNCiANCiAgIC8qIFg4Nl9UVU5FX0FWT0lEX1ZFQ1RPUl9E RUNPREUgKi8NCi0gIG1fQ09SRTJJNyB8IG1fSzggfCBtX0dFTkVSSUM2NCwN CisgIG1fQ09SRV9BTEwgfCBtX0s4IHwgbV9HRU5FUklDNjQsDQogDQogICAv KiBYODZfVFVORV9QUk9NT1RFX0hJTU9ERV9JTVVMOiBNb2Rlcm4gQ1BVcyBo YXZlIHNhbWUgbGF0ZW5jeSBmb3IgSEltb2RlDQogICAgICBhbmQgU0ltb2Rl IG11bHRpcGx5LCBidXQgMzg2IGFuZCA0ODYgZG8gSEltb2RlIG11bHRpcGx5 IGZhc3Rlci4gICovDQpAQCAtMTk2NywxMSArMTk2OCwxMSBAQCBzdGF0aWMg dW5zaWduZWQgaW50IGluaXRpYWxfaXg4Nl90dW5lX2ZlYXR1cmVzW1g4Nl9U VU5FX0xBU1RdID0gew0KIA0KICAgLyogWDg2X1RVTkVfU0xPV19JTVVMX0lN TTMyX01FTTogSW11bCBvZiAzMi1iaXQgY29uc3RhbnQgYW5kIG1lbW9yeSBp cw0KICAgICAgdmVjdG9yIHBhdGggb24gQU1EIG1hY2hpbmVzLiAgKi8NCi0g IG1fQ09SRTJJNyB8IG1fSzggfCBtX0FNREZBTTEwIHwgbV9CRFZFUiB8IG1f QlRWRVIgfCBtX0dFTkVSSUM2NCwNCisgIG1fQ09SRV9BTEwgfCBtX0s4IHwg bV9BTURGQU0xMCB8IG1fQkRWRVIgfCBtX0JUVkVSIHwgbV9HRU5FUklDNjQs DQogDQogICAvKiBYODZfVFVORV9TTE9XX0lNVUxfSU1NODogSW11bCBvZiA4 LWJpdCBjb25zdGFudCBpcyB2ZWN0b3IgcGF0aCBvbiBBTUQNCiAgICAgIG1h Y2hpbmVzLiAgKi8NCi0gIG1fQ09SRTJJNyB8IG1fSzggfCBtX0FNREZBTTEw IHwgbV9CRFZFUiB8IG1fQlRWRVIgfCBtX0dFTkVSSUM2NCwNCisgIG1fQ09S RV9BTEwgfCBtX0s4IHwgbV9BTURGQU0xMCB8IG1fQkRWRVIgfCBtX0JUVkVS IHwgbV9HRU5FUklDNjQsDQogDQogICAvKiBYODZfVFVORV9NT1ZFX00xX1ZJ QV9PUjogT24gcGVudGl1bXMsIGl0IGlzIGZhc3RlciB0byBsb2FkIC0xIHZp YSBPUg0KICAgICAgdGhhbiBhIE1PVi4gICovDQpAQCAtMTk4OCw3ICsxOTg5 LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbml0aWFsX2l4ODZfdHVuZV9m ZWF0dXJlc1tYODZfVFVORV9MQVNUXSA9IHsNCiANCiAgIC8qIFg4Nl9UVU5F X1VTRV9WRUNUT1JfRlBfQ09OVkVSVFM6IFByZWZlciB2ZWN0b3IgcGFja2Vk IFNTRSBjb252ZXJzaW9uDQogICAgICBmcm9tIEZQIHRvIEZQLiAqLw0KLSAg bV9DT1JFMkk3IHwgbV9BTURGQU0xMCB8IG1fR0VORVJJQywNCisgIG1fQ09S RV9BTEwgfCBtX0FNREZBTTEwIHwgbV9HRU5FUklDLA0KIA0KICAgLyogWDg2 X1RVTkVfVVNFX1ZFQ1RPUl9DT05WRVJUUzogUHJlZmVyIHZlY3RvciBwYWNr ZWQgU1NFIGNvbnZlcnNpb24NCiAgICAgIGZyb20gaW50ZWdlciB0byBGUC4g Ki8NCkBAIC0yMDI2LDcgKzIwMjcsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50 IGluaXRpYWxfaXg4Nl90dW5lX2ZlYXR1cmVzW1g4Nl9UVU5FX0xBU1RdID0g ew0KIA0KICAgLyogWDg2X1RVTkVfR0VORVJBTF9SRUdTX1NTRV9TUElMTDog VHJ5IHRvIHNwaWxsIGdlbmVyYWwgcmVncyB0byBTU0UNCiAgICAgIHJlZ3Mg aW5zdGVhZCBvZiBtZW1vcnkuICAqLw0KLSAgbV9DT1JFSTcgfCBtX0NPUkUy STcNCisgIG1fQ09SRV9BTEwNCiB9Ow0KIA0KIC8qIEZlYXR1cmUgdGVzdHMg YWdhaW5zdCB0aGUgdmFyaW91cyBhcmNoaXRlY3R1cmUgdmFyaWF0aW9ucy4g ICovDQpAQCAtMjA1MiwxMCArMjA1MywxMCBAQCBzdGF0aWMgdW5zaWduZWQg aW50IGluaXRpYWxfaXg4Nl9hcmNoX2ZlYXR1cmVzW1g4Nl9BUkNIX0xBU1Rd ID0gew0KIH07DQogDQogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCB4ODZf YWNjdW11bGF0ZV9vdXRnb2luZ19hcmdzDQotICA9IG1fUFBSTyB8IG1fUDRf Tk9DT05BIHwgbV9BVE9NIHwgbV9DT1JFMkk3IHwgbV9BTURfTVVMVElQTEUg fCBtX0dFTkVSSUM7DQorICA9IG1fUFBSTyB8IG1fUDRfTk9DT05BIHwgbV9B VE9NIHwgbV9DT1JFX0FMTCB8IG1fQU1EX01VTFRJUExFIHwgbV9HRU5FUklD Ow0KIA0KIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgeDg2X2FyY2hfYWx3 YXlzX2ZhbmN5X21hdGhfMzg3DQotICA9IG1fUEVOVCB8IG1fUFBSTyB8IG1f UDRfTk9DT05BIHwgbV9DT1JFMkk3IHwgbV9BVE9NIHwgbV9BTURfTVVMVElQ TEUgfCBtX0dFTkVSSUM7DQorICA9IG1fUEVOVCB8IG1fUFBSTyB8IG1fUDRf Tk9DT05BIHwgbV9DT1JFX0FMTCB8IG1fQVRPTSB8IG1fQU1EX01VTFRJUExF IHwgbV9HRU5FUklDOw0KIA0KIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQg eDg2X2F2eDI1Nl9zcGxpdF91bmFsaWduZWRfbG9hZA0KICAgPSBtX0NPUkVJ NyB8IG1fR0VORVJJQzsNCkBAIC0yNDM2LDYgKzI0MzcsOCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHB0dCBwcm9jZXNzb3JfdGFyZ2V0X3RhYmxlW1BST0NF U1NPUl9tYXhdID0NCiAgIHsmY29yZV9jb3N0LCAxNiwgMTAsIDE2LCAxMCwg MTZ9LA0KICAgLyogQ29yZSBpNyAgKi8NCiAgIHsmY29yZV9jb3N0LCAxNiwg MTAsIDE2LCAxMCwgMTZ9LA0KKyAgLyogQ29yZSBhdngyICAqLw0KKyAgeyZj b3JlX2Nvc3QsIDE2LCAxMCwgMTYsIDEwLCAxNn0sDQogICB7JmdlbmVyaWMz Ml9jb3N0LCAxNiwgNywgMTYsIDcsIDE2fSwNCiAgIHsmZ2VuZXJpYzY0X2Nv c3QsIDE2LCAxMCwgMTYsIDEwLCAxNn0sDQogICB7JmFtZGZhbTEwX2Nvc3Qs IDMyLCAyNCwgMzIsIDcsIDMyfSwNCkBAIC0yNDYzLDYgKzI0NjYsNyBAQCBz dGF0aWMgY29uc3QgY2hhciAqY29uc3QgY3B1X25hbWVzW1RBUkdFVF9DUFVf REVGQVVMVF9tYXhdID0NCiAgICJub2NvbmEiLA0KICAgImNvcmUyIiwNCiAg ICJjb3JlaTciLA0KKyAgImNvcmUtYXZ4MiIsDQogICAiYXRvbSIsDQogICAi Z2VvZGUiLA0KICAgIms2IiwNCkBAIC0yOTE0LDcgKzI5MTgsNyBAQCBpeDg2 X29wdGlvbl9vdmVycmlkZV9pbnRlcm5hbCAoYm9vbCBtYWluX2FyZ3NfcCkN CiAJfCBQVEFfU1NTRTMgfCBQVEFfU1NFNF8xIHwgUFRBX1NTRTRfMiB8IFBU QV9BVlgNCiAJfCBQVEFfQ1gxNiB8IFBUQV9QT1BDTlQgfCBQVEFfQUVTIHwg UFRBX1BDTE1VTCB8IFBUQV9GU0dTQkFTRQ0KIAl8IFBUQV9SRFJORCB8IFBU QV9GMTZDIHwgUFRBX0ZYU1IgfCBQVEFfWFNBVkUgfCBQVEFfWFNBVkVPUFR9 LA0KLSAgICAgIHsiY29yZS1hdngyIiwgUFJPQ0VTU09SX0NPUkVJNywgQ1BV X0NPUkVJNywNCisgICAgICB7ImNvcmUtYXZ4MiIsIFBST0NFU1NPUl9IQVNX RUxMLCBDUFVfQ09SRUk3LA0KIAlQVEFfNjRCSVQgfCBQVEFfTU1YIHwgUFRB X1NTRSB8IFBUQV9TU0UyIHwgUFRBX1NTRTMNCiAJfCBQVEFfU1NTRTMgfCBQ VEFfU1NFNF8xIHwgUFRBX1NTRTRfMiB8IFBUQV9BVlggfCBQVEFfQVZYMg0K IAl8IFBUQV9DWDE2IHwgUFRBX1BPUENOVCB8IFBUQV9BRVMgfCBQVEFfUENM TVVMIHwgUFRBX0ZTR1NCQVNFDQpAQCAtMjQwNjEsNiArMjQwNjUsNyBAQCBp eDg2X2lzc3VlX3JhdGUgKHZvaWQpDQogICAgIGNhc2UgUFJPQ0VTU09SX1BF TlRJVU00Og0KICAgICBjYXNlIFBST0NFU1NPUl9DT1JFMjoNCiAgICAgY2Fz ZSBQUk9DRVNTT1JfQ09SRUk3Og0KKyAgICBjYXNlIFBST0NFU1NPUl9IQVNX RUxMOg0KICAgICBjYXNlIFBST0NFU1NPUl9BVEhMT046DQogICAgIGNhc2Ug UFJPQ0VTU09SX0s4Og0KICAgICBjYXNlIFBST0NFU1NPUl9BTURGQU0xMDoN CkBAIC0yNDMxNyw2ICsyNDMyMiw3IEBAIGlhMzJfbXVsdGlwYXNzX2RmYV9s b29rYWhlYWQgKHZvaWQpDQogDQogICAgIGNhc2UgUFJPQ0VTU09SX0NPUkUy Og0KICAgICBjYXNlIFBST0NFU1NPUl9DT1JFSTc6DQorICAgIGNhc2UgUFJP Q0VTU09SX0hBU1dFTEw6DQogICAgIGNhc2UgUFJPQ0VTU09SX0FUT006DQog ICAgICAgLyogR2VuZXJhbGx5LCB3ZSB3YW50IGhhaWZhLXNjaGVkOm1heF9p c3N1ZSgpIHRvIGxvb2sgYWhlYWQgYXMgZmFyDQogCSBhcyBtYW55IGluc3Ry dWN0aW9ucyBjYW4gYmUgZXhlY3V0ZWQgb24gYSBjeWNsZSwgaS5lLiwNCkBA IC0yNDg2MSw2ICsyNDg2Nyw3IEBAIGl4ODZfc2NoZWRfaW5pdF9nbG9iYWwg KEZJTEUgKmR1bXAgQVRUUklCVVRFX1VOVVNFRCwNCiAgICAgew0KICAgICBj YXNlIFBST0NFU1NPUl9DT1JFMjoNCiAgICAgY2FzZSBQUk9DRVNTT1JfQ09S RUk3Og0KKyAgICBjYXNlIFBST0NFU1NPUl9IQVNXRUxMOg0KICAgICAgIC8q IERvIG5vdCBwZXJmb3JtIG11bHRpcGFzcyBzY2hlZHVsaW5nIGZvciBwcmUt cmVsb2FkIHNjaGVkdWxlDQogICAgICAgICAgdG8gc2F2ZSBjb21waWxlIHRp bWUuICAqLw0KICAgICAgIGlmIChyZWxvYWRfY29tcGxldGVkKQ0KQEAgLTI4 NzA1LDYgKzI4NzEyLDEwIEBAIGdldF9idWlsdGluX2NvZGVfZm9yX3ZlcnNp b24gKHRyZWUgZGVjbCwgdHJlZSAqcHJlZGljYXRlX2xpc3QpDQogCSAgICAg IGFyZ19zdHIgPSAiY29yZWk3IjsNCiAJICAgICAgcHJpb3JpdHkgPSBQX1BS T0NfU1NFNF8yOw0KIAkgICAgICBicmVhazsNCisJICAgIGNhc2UgUFJPQ0VT U09SX0hBU1dFTEw6DQorCSAgICAgIGFyZ19zdHIgPSAiY29yZS1hdngyIjsN CisJICAgICAgcHJpb3JpdHkgPSBQX1BST0NfU1NFNF8yOw0KKwkgICAgICBi cmVhazsNCiAJICAgIGNhc2UgUFJPQ0VTU09SX0FUT006DQogCSAgICAgIGFy Z19zdHIgPSAiYXRvbSI7DQogCSAgICAgIHByaW9yaXR5ID0gUF9QUk9DX1NT U0UzOw0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2LmggYi9n Y2MvY29uZmlnL2kzODYvaTM4Ni5oDQppbmRleCAzYWMzNDUxLi5lZTIxYzQ3 IDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYuaA0KKysrIGIv Z2NjL2NvbmZpZy9pMzg2L2kzODYuaA0KQEAgLTI0OCw2ICsyNDgsNyBAQCBl eHRlcm4gY29uc3Qgc3RydWN0IHByb2Nlc3Nvcl9jb3N0cyBpeDg2X3NpemVf Y29zdDsNCiAjZGVmaW5lIFRBUkdFVF9OT0NPTkEgKGl4ODZfdHVuZSA9PSBQ Uk9DRVNTT1JfTk9DT05BKQ0KICNkZWZpbmUgVEFSR0VUX0NPUkUyIChpeDg2 X3R1bmUgPT0gUFJPQ0VTU09SX0NPUkUyKQ0KICNkZWZpbmUgVEFSR0VUX0NP UkVJNyAoaXg4Nl90dW5lID09IFBST0NFU1NPUl9DT1JFSTcpDQorI2RlZmlu ZSBUQVJHRVRfSEFTV0VMTCAoaXg4Nl90dW5lID09IFBST0NFU1NPUl9IQVNX RUxMKQ0KICNkZWZpbmUgVEFSR0VUX0dFTkVSSUMzMiAoaXg4Nl90dW5lID09 IFBST0NFU1NPUl9HRU5FUklDMzIpDQogI2RlZmluZSBUQVJHRVRfR0VORVJJ QzY0IChpeDg2X3R1bmUgPT0gUFJPQ0VTU09SX0dFTkVSSUM2NCkNCiAjZGVm aW5lIFRBUkdFVF9HRU5FUklDIChUQVJHRVRfR0VORVJJQzMyIHx8IFRBUkdF VF9HRU5FUklDNjQpDQpAQCAtNjAzLDYgKzYwNCw3IEBAIGVudW0gdGFyZ2V0 X2NwdV9kZWZhdWx0DQogICBUQVJHRVRfQ1BVX0RFRkFVTFRfbm9jb25hLA0K ICAgVEFSR0VUX0NQVV9ERUZBVUxUX2NvcmUyLA0KICAgVEFSR0VUX0NQVV9E RUZBVUxUX2NvcmVpNywNCisgIFRBUkdFVF9DUFVfREVGQVVMVF9oYXN3ZWxs LA0KICAgVEFSR0VUX0NQVV9ERUZBVUxUX2F0b20sDQogDQogICBUQVJHRVRf Q1BVX0RFRkFVTFRfZ2VvZGUsDQpAQCAtMjA5NSw2ICsyMDk3LDcgQEAgZW51 bSBwcm9jZXNzb3JfdHlwZQ0KICAgUFJPQ0VTU09SX05PQ09OQSwNCiAgIFBS T0NFU1NPUl9DT1JFMiwNCiAgIFBST0NFU1NPUl9DT1JFSTcsDQorICBQUk9D RVNTT1JfSEFTV0VMTCwNCiAgIFBST0NFU1NPUl9HRU5FUklDMzIsDQogICBQ Uk9DRVNTT1JfR0VORVJJQzY0LA0KICAgUFJPQ0VTU09SX0FNREZBTTEwLA0K --047d7bf0ecc81f6b0904d2141039--