From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23932 invoked by alias); 19 Aug 2012 22:19:39 -0000 Received: (qmail 23915 invoked by uid 22791); 19 Aug 2012 22:19:36 -0000 X-SWARE-Spam-Status: No, hits=-5.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-wi0-f177.google.com (HELO mail-wi0-f177.google.com) (209.85.212.177) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 19 Aug 2012 22:19:21 +0000 Received: by wibhn17 with SMTP id hn17so2799002wib.12 for ; Sun, 19 Aug 2012 15:19:19 -0700 (PDT) MIME-Version: 1.0 Received: by 10.180.107.2 with SMTP id gy2mr22618240wib.2.1345414759772; Sun, 19 Aug 2012 15:19:19 -0700 (PDT) Received: by 10.216.2.4 with HTTP; Sun, 19 Aug 2012 15:19:19 -0700 (PDT) In-Reply-To: References: <5A31B467E5043B4C9104F558E9137E4E324F3E7025@VA3DIAXVS3E1.RED001.local> Date: Sun, 19 Aug 2012 22:19:00 -0000 Message-ID: Subject: Re: [PATCH/MIPS] Add support Octeon's bbit instructions From: Andrew Pinski To: "Maciej W. Rozycki" Cc: "gdb-patches@sourceware.org" Content-Type: multipart/mixed; boundary=e89a8f3b9f65d4f39a04c7a5c8b2 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-08/txt/msg00535.txt.bz2 --e89a8f3b9f65d4f39a04c7a5c8b2 Content-Type: text/plain; charset=UTF-8 Content-length: 1551 On Tue, Apr 24, 2012 at 12:27 PM, Maciej W. Rozycki wrote: > On Fri, 20 Apr 2012, Pinski, Andrew wrote: > >> Here is the updated patch with the style fixes and one extra change as I >> noticed itype_op (inst) was being called a few times in mips32_next_pc, >> I merged all of them into one variable. > > Thanks for doing this, I meant to do such a change as the next step. > However I'd prefer functionally separate changes to be made as separate > commits, so please split this change into two, first that eliminates the > repetitive itype_op (inst) operations, and second that adds your new > feature. > >> And renamed is_octeon_bit_op to >> is_octeon_bbit_op since the instructions are named bbit and not bit. > > Thanks, that looks reasonable to me. Please also take into account my > previous comment about function documentation that Joel has been kind > enough to reiterate. > > OK with these changes. These are the three patches I committed in the end. I also added a testcase for testing bbit. Thanks, Andrew Pinski Patch 1: ChangeLog: * mips-tdep.c (mips32_next_pc): Consolidate calls to itype_op. Patch 2: ChangeLog: * mips-tdep.c (mips32_next_pc): Fix line spacing of the comment before the function. Patch 3: ChangeLog: * mips-tdep.c (is_octeon): New function. (is_octeon_bbit_op): New function. (mips32_next_pc): Handle Octeon's bbit instructions. (mips32_instruction_has_delay_slot): Likewise. testsuite/ChangeLog: * gdb.arch/mips-octeon-bbit.c: New file. * gdb.arch/mips-octeon-bbit.exp: New Test. --e89a8f3b9f65d4f39a04c7a5c8b2 Content-Type: text/x-patch; charset=US-ASCII; name="0001-mips-tdep.c-mips32_next_pc-Consolidate-calls-to-ityp.patch" Content-Disposition: attachment; filename="0001-mips-tdep.c-mips32_next_pc-Consolidate-calls-to-ityp.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h62p3nxd0 Content-length: 3197 RnJvbSBhOTBlNmM5Y2FjNjIyNzIyYTBkYzA0NmExOWFiNjNlOGZjMjNkOWZl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgUGluc2tp IDxhcGluc2tpQGNhdml1bS5jb20+CkRhdGU6IFN1biwgMTkgQXVnIDIwMTIg MTE6MjQ6NDggLTA3MDAKU3ViamVjdDogW1BBVENIIDEvM10gCSogbWlwcy10 ZGVwLmMgKG1pcHMzMl9uZXh0X3BjKTogQ29uc29saWRhdGUgY2FsbHMgdG8g aXR5cGVfb3AuCgotLS0KIGdkYi9taXBzLXRkZXAuYyB8ICAgMTYgKysrKysr KystLS0tLS0tLQogMSBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyks IDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2RiL21pcHMtdGRlcC5j IGIvZ2RiL21pcHMtdGRlcC5jCmluZGV4IGEwMDE0MjQuLjA3YWU0MDUgMTAw NjQ0Ci0tLSBhL2dkYi9taXBzLXRkZXAuYworKysgYi9nZGIvbWlwcy10ZGVw LmMKQEAgLTE0NzUsMTQgKzE0NzUsMTQgQEAgbWlwczMyX25leHRfcGMgKHN0 cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgQ09SRV9BRERSIHBjKQogICB1bnNp Z25lZCBsb25nIGluc3Q7CiAgIGludCBvcDsKICAgaW5zdCA9IG1pcHNfZmV0 Y2hfaW5zdHJ1Y3Rpb24gKGdkYmFyY2gsIElTQV9NSVBTLCBwYywgTlVMTCk7 CisgIG9wID0gaXR5cGVfb3AgKGluc3QpOwogICBpZiAoKGluc3QgJiAweGUw MDAwMDAwKSAhPSAwKQkJLyogTm90IGEgc3BlY2lhbCwganVtcCBvciBicmFu Y2gKIAkJCQkJICAgaW5zdHJ1Y3Rpb24uICAqLwogICAgIHsKLSAgICAgIGlm IChpdHlwZV9vcCAoaW5zdCkgPj4gMiA9PSA1KQorICAgICAgaWYgKG9wID4+ IDIgPT0gNSkKIAkvKiBCRVFMLCBCTkVMLCBCTEVaTCwgQkdUWkw6IGJpdHMg MDEwMXh4ICovCiAJewotCSAgb3AgPSAoaXR5cGVfb3AgKGluc3QpICYgMHgw Myk7Ci0JICBzd2l0Y2ggKG9wKQorCSAgc3dpdGNoIChvcCAmIDB4MDMpCiAJ ICAgIHsKIAkgICAgY2FzZSAwOgkJLyogQkVRTCAqLwogCSAgICAgIGdvdG8g ZXF1YWxfYnJhbmNoOwpAQCAtMTQ5NiwxOCArMTQ5NiwxOCBAQCBtaXBzMzJf bmV4dF9wYyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBDT1JFX0FERFIg cGMpCiAJICAgICAgcGMgKz0gNDsKIAkgICAgfQogCX0KLSAgICAgIGVsc2Ug aWYgKGl0eXBlX29wIChpbnN0KSA9PSAxNyAmJiBpdHlwZV9ycyAoaW5zdCkg PT0gOCkKKyAgICAgIGVsc2UgaWYgKG9wID09IDE3ICYmIGl0eXBlX3JzIChp bnN0KSA9PSA4KQogCS8qIEJDMUYsIEJDMUZMLCBCQzFULCBCQzFUTDogMDEw MDAxIDAxMDAwICovCiAJcGMgPSBtaXBzMzJfYmMxX3BjIChnZGJhcmNoLCBm cmFtZSwgaW5zdCwgcGMgKyA0LCAxKTsKLSAgICAgIGVsc2UgaWYgKGl0eXBl X29wIChpbnN0KSA9PSAxNyAmJiBpdHlwZV9ycyAoaW5zdCkgPT0gOQorICAg ICAgZWxzZSBpZiAob3AgPT0gMTcgJiYgaXR5cGVfcnMgKGluc3QpID09IDkK IAkgICAgICAgJiYgKGl0eXBlX3J0IChpbnN0KSAmIDIpID09IDApCiAJLyog QkMxQU5ZMkYsIEJDMUFOWTJUOiAwMTAwMDEgMDEwMDEgeHh4MHggKi8KIAlw YyA9IG1pcHMzMl9iYzFfcGMgKGdkYmFyY2gsIGZyYW1lLCBpbnN0LCBwYyAr IDQsIDIpOwotICAgICAgZWxzZSBpZiAoaXR5cGVfb3AgKGluc3QpID09IDE3 ICYmIGl0eXBlX3JzIChpbnN0KSA9PSAxMAorICAgICAgZWxzZSBpZiAob3Ag PT0gMTcgJiYgaXR5cGVfcnMgKGluc3QpID09IDEwCiAJICAgICAgICYmIChp dHlwZV9ydCAoaW5zdCkgJiAyKSA9PSAwKQogCS8qIEJDMUFOWTRGLCBCQzFB Tlk0VDogMDEwMDAxIDAxMDEwIHh4eDB4ICovCiAJcGMgPSBtaXBzMzJfYmMx X3BjIChnZGJhcmNoLCBmcmFtZSwgaW5zdCwgcGMgKyA0LCA0KTsKLSAgICAg IGVsc2UgaWYgKGl0eXBlX29wIChpbnN0KSA9PSAyOSkKKyAgICAgIGVsc2Ug aWYgKG9wID09IDI5KQogCS8qIEpBTFg6IDAxMTEwMSAqLwogCS8qIFRoZSBu ZXcgUEMgd2lsbCBiZSBhbHRlcm5hdGUgbW9kZS4gICovCiAJewpAQCAtMTUy NCw3ICsxNTI0LDcgQEAgbWlwczMyX25leHRfcGMgKHN0cnVjdCBmcmFtZV9p bmZvICpmcmFtZSwgQ09SRV9BRERSIHBjKQogICAgIHsJCQkJLyogVGhpcyBn ZXRzIHdheSBtZXNzeS4gICovCiAKICAgICAgIC8qIEZ1cnRoZXIgc3ViZGl2 aWRlIGludG8gU1BFQ0lBTCwgUkVHSU1NIGFuZCBvdGhlci4gICovCi0gICAg ICBzd2l0Y2ggKG9wID0gaXR5cGVfb3AgKGluc3QpICYgMHgwNykJLyogRXh0 cmFjdCBiaXRzIDI4LDI3LDI2LiAgKi8KKyAgICAgIHN3aXRjaCAob3AgJiAw eDA3KQkvKiBFeHRyYWN0IGJpdHMgMjgsMjcsMjYuICAqLwogCXsKIAljYXNl IDA6CQkvKiBTUEVDSUFMICovCiAJICBvcCA9IHJ0eXBlX2Z1bmN0IChpbnN0 KTsKLS0gCjEuNy4yLjUKCg== --e89a8f3b9f65d4f39a04c7a5c8b2 Content-Type: text/x-patch; charset=US-ASCII; name="0002-mips-tdep.c-mips32_next_pc-Fix-line-spacing-of-the-c.patch" Content-Disposition: attachment; filename="0002-mips-tdep.c-mips32_next_pc-Fix-line-spacing-of-the-c.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h62p3xs11 Content-length: 1009 RnJvbSBlNjJiOTc4Njc3ZTllYWI3MGI3MWE0OWYzOTVhYWJjY2EyZmFlMTA5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgUGluc2tp IDxhcGluc2tpQGNhdml1bS5jb20+CkRhdGU6IFN1biwgMTkgQXVnIDIwMTIg MTE6NTc6MzkgLTA3MDAKU3ViamVjdDogW1BBVENIIDIvM10gCSogbWlwcy10 ZGVwLmMgKG1pcHMzMl9uZXh0X3BjKTogRml4IGxpbmUgc3BhY2luZyBvZiB0 aGUgY29tbWVudAogCWJlZm9yZSB0aGUgZnVuY3Rpb24uCgotLS0KIGdkYi9t aXBzLXRkZXAuYyB8ICAgIDEgKwogMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2Vy dGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2RiL21p cHMtdGRlcC5jIGIvZ2RiL21pcHMtdGRlcC5jCmluZGV4IDA3YWU0MDUuLjc1 MWQ3ZDYgMTAwNjQ0Ci0tLSBhL2dkYi9taXBzLXRkZXAuYworKysgYi9nZGIv bWlwcy10ZGVwLmMKQEAgLTE0NjgsNiArMTQ2OCw3IEBAIG1pcHMzMl9iYzFf cGMgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgZnJhbWVfaW5m byAqZnJhbWUsCiAKIC8qIERldGVybWluZSB3aGVyZSB0byBzZXQgYSBzaW5n bGUgc3RlcCBicmVha3BvaW50IHdoaWxlIGNvbnNpZGVyaW5nCiAgICBicmFu Y2ggcHJlZGljdGlvbi4gICovCisKIHN0YXRpYyBDT1JFX0FERFIKIG1pcHMz Ml9uZXh0X3BjIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsIENPUkVfQURE UiBwYykKIHsKLS0gCjEuNy4yLjUKCg== --e89a8f3b9f65d4f39a04c7a5c8b2 Content-Type: text/x-patch; charset=US-ASCII; name="0003-mips-tdep.c-is_octeon-New-function.patch" Content-Disposition: attachment; filename="0003-mips-tdep.c-is_octeon-New-function.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h62p410w2 Content-length: 10700 RnJvbSAyYTQ2ZDRlNWVhNzM0OWZmZTFkZWFiZWU2NTM3OWJmZWJmNGVjZTQ2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgUGluc2tp IDxhcGluc2tpQGNhdml1bS5jb20+CkRhdGU6IFN1biwgMTkgQXVnIDIwMTIg MTI6MDU6NTYgLTA3MDAKU3ViamVjdDogW1BBVENIIDMvM10gCSogbWlwcy10 ZGVwLmMgKGlzX29jdGVvbik6IE5ldyBmdW5jdGlvbi4KIAkoaXNfb2N0ZW9u X2JiaXRfb3ApOiBOZXcgZnVuY3Rpb24uCiAJKG1pcHMzMl9uZXh0X3BjKTog SGFuZGxlIE9jdGVvbidzIGJiaXQgaW5zdHJ1Y3Rpb25zLgogCShtaXBzMzJf aW5zdHJ1Y3Rpb25faGFzX2RlbGF5X3Nsb3QpOiBMaWtld2lzZS4KCgkqIGdk Yi5hcmNoL21pcHMtb2N0ZW9uLWJiaXQuYzogTmV3IGZpbGUuCgkqIGdkYi5h cmNoL21pcHMtb2N0ZW9uLWJiaXQuZXhwOiBOZXcgVGVzdC4KLS0tCiBnZGIv bWlwcy10ZGVwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1 MSArKysrKysrKysrKystCiBnZGIvdGVzdHN1aXRlL2dkYi5hcmNoL21pcHMt b2N0ZW9uLWJiaXQuYyAgIHwgICA0OSArKysrKysrKysrKysKIGdkYi90ZXN0 c3VpdGUvZ2RiLmFyY2gvbWlwcy1vY3Rlb24tYmJpdC5leHAgfCAgMTEyICsr KysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAy MTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5hcmNoL21pcHMtb2N0ZW9uLWJi aXQuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmFy Y2gvbWlwcy1vY3Rlb24tYmJpdC5leHAKCmRpZmYgLS1naXQgYS9nZGIvbWlw cy10ZGVwLmMgYi9nZGIvbWlwcy10ZGVwLmMKaW5kZXggNzUxZDdkNi4uNTZm YTU2YyAxMDA2NDQKLS0tIGEvZ2RiL21pcHMtdGRlcC5jCisrKyBiL2dkYi9t aXBzLXRkZXAuYwpAQCAtMTQ2Niw2ICsxNDY2LDM1IEBAIG1pcHMzMl9iYzFf cGMgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgZnJhbWVfaW5m byAqZnJhbWUsCiAgIHJldHVybiBwYzsKIH0KIAorLyogUmV0dXJuIG5vbnpl cm8gaWYgdGhlIGdkYmFyY2ggaXMgYW4gT2N0ZW9uIHNlcmllcy4gICovCisK K3N0YXRpYyBpbnQKK2lzX29jdGVvbiAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gpCit7CisgIGNvbnN0IHN0cnVjdCBiZmRfYXJjaF9pbmZvICppbmZvID0g Z2RiYXJjaF9iZmRfYXJjaF9pbmZvIChnZGJhcmNoKTsKKworICByZXR1cm4g KGluZm8tPm1hY2ggPT0gYmZkX21hY2hfbWlwc19vY3Rlb24KKyAgICAgICAg IHx8IGluZm8tPm1hY2ggPT0gYmZkX21hY2hfbWlwc19vY3Rlb25wCisgICAg ICAgICB8fCBpbmZvLT5tYWNoID09IGJmZF9tYWNoX21pcHNfb2N0ZW9uMik7 Cit9CisKKy8qIFJldHVybiB0cnVlIGlmIHRoZSBPUCByZXByZXNlbnRzIHRo ZSBPY3Rlb24ncyBCQklUIGluc3RydWN0aW9uLiAgKi8KKworc3RhdGljIGlu dAoraXNfb2N0ZW9uX2JiaXRfb3AgKGludCBvcCwgc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gpCit7CisgIGlmICghaXNfb2N0ZW9uIChnZGJhcmNoKSkKKyAg ICByZXR1cm4gMDsKKyAgLyogQkJJVDAgaXMgZW5jb2RlZCBhcyBMV0MyOiAx MTAgMDEwLiAgKi8KKyAgLyogQkJJVDAzMiBpcyBlbmNvZGVkIGFzIExEQzI6 IDExMCAxMTAuICAqLworICAvKiBCQklUMSBpcyBlbmNvZGVkIGFzIFNXQzI6 IDExMSAwMTAuICAqLworICAvKiBCQklUMTMyIGlzIGVuY29kZWQgYXMgU0RD MjogMTExIDExMC4gICovCisgIGlmIChvcCA9PSA1MCB8fCBvcCA9PSA1NCB8 fCBvcCA9PSA1OCB8fCBvcCA9PSA2MikKKyAgICByZXR1cm4gMTsKKyAgcmV0 dXJuIDA7Cit9CisKKwogLyogRGV0ZXJtaW5lIHdoZXJlIHRvIHNldCBhIHNp bmdsZSBzdGVwIGJyZWFrcG9pbnQgd2hpbGUgY29uc2lkZXJpbmcKICAgIGJy YW5jaCBwcmVkaWN0aW9uLiAgKi8KIApAQCAtMTUxOCw2ICsxNTQ3LDI1IEBA IG1pcHMzMl9uZXh0X3BjIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsIENP UkVfQUREUiBwYykKIAkgIC8qIEFkZCAxIHRvIGluZGljYXRlIDE2LWJpdCBt b2RlIC0tIGludmVydCBJU0EgbW9kZS4gICovCiAJICBwYyA9ICgocGMgKyA0 KSAmIH4oQ09SRV9BRERSKSAweDBmZmZmZmZmKSArIHJlZyArIDE7CiAJfQor ICAgICAgZWxzZSBpZiAoaXNfb2N0ZW9uX2JiaXRfb3AgKG9wLCBnZGJhcmNo KSkKKwl7CisJICBpbnQgYml0LCBicmFuY2hfaWY7CisKKwkgIGJyYW5jaF9p ZiA9IG9wID09IDU4IHx8IG9wID09IDYyOworCSAgYml0ID0gaXR5cGVfcnQg KGluc3QpOworCisJICAvKiBUYWtlIGludG8gYWNjb3VudCB0aGUgKjMyIGlu c3RydWN0aW9ucy4gICovCisJICBpZiAob3AgPT0gNTQgfHwgb3AgPT0gNjIp CisJICAgIGJpdCArPSAzMjsKKworCSAgaWYgKCgoZ2V0X2ZyYW1lX3JlZ2lz dGVyX3NpZ25lZCAoZnJhbWUsCisJCQkJCSAgIGl0eXBlX3JzIChpbnN0KSkg Pj4gYml0KSAmIDEpCisgICAgICAgICAgICAgID09IGJyYW5jaF9pZikKKwkg ICAgcGMgKz0gbWlwczMyX3JlbGF0aXZlX29mZnNldCAoaW5zdCkgKyA0Owor ICAgICAgICAgIGVsc2UKKwkgICAgcGMgKz0gODsgICAgICAgIC8qIEFmdGVy IHRoZSBkZWxheSBzbG90LiAgKi8KKwl9CisKICAgICAgIGVsc2UKIAlwYyAr PSA0OwkJLyogTm90IGEgYnJhbmNoLCBuZXh0IGluc3RydWN0aW9uIGlzIGVh c3kuICAqLwogICAgIH0KQEAgLTY5NDcsNyArNjk5NSw4IEBAIG1pcHMzMl9p bnN0cnVjdGlvbl9oYXNfZGVsYXlfc2xvdCAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsIENPUkVfQUREUiBhZGRyKQogICAgIHsKICAgICAgIHJzID0gaXR5 cGVfcnMgKGluc3QpOwogICAgICAgcnQgPSBpdHlwZV9ydCAoaW5zdCk7Ci0g ICAgICByZXR1cm4gKG9wID4+IDIgPT0gNQkvKiBCRVFMLCBCTkVMLCBCTEVa TCwgQkdUWkw6IGJpdHMgMDEwMXh4ICAqLworICAgICAgcmV0dXJuIChpc19v Y3Rlb25fYmJpdF9vcCAob3AsIGdkYmFyY2gpIAorCSAgICAgIHx8IG9wID4+ IDIgPT0gNQkvKiBCRVFMLCBCTkVMLCBCTEVaTCwgQkdUWkw6IGJpdHMgMDEw MXh4ICAqLwogCSAgICAgIHx8IG9wID09IDI5CS8qIEpBTFg6IGJpdHMgMDEx MTAxICAqLwogCSAgICAgIHx8IChvcCA9PSAxNwogCQkgICYmIChycyA9PSA4 CmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL21pcHMtb2N0 ZW9uLWJiaXQuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvbWlwcy1vY3Rl b24tYmJpdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmUzZGY0YTQKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5hcmNoL21pcHMtb2N0ZW9uLWJiaXQuYwpAQCAtMCwwICsxLDQ5IEBACit0 eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1aW50NjRfdDsKK3ZvaWQgYWJv cnQgKHZvaWQpOworCisjZGVmaW5lIEJBU0UgMHgxMjM0NTY3ODEyMzQ1Njc4 dWxsCisKKyNkZWZpbmUgREVGX0JCSVRfVEFLRU4oQlJBTkNIX0lGLCBCSVQp CQkJCQlcCisgIGludCBiYml0X2lzX3Rha2VuXyMjQlJBTkNIX0lGIyNfIyNC SVQgKHZvbGF0aWxlIHVpbnQ2NF90ICpwKQkJXAorICB7CQkJCQkJCQkJXAor ICAgIGludCByZXQ7CQkJCQkJCQlcCisgICAgYXNtICgiLnNldCBwdXNoCQkJ CVxuXHQiCQkJXAorCSAiLnNldCBub3Jlb3JkZXIJCQlcblx0IgkJCVwKKwkg ImJiaXQiICNCUkFOQ0hfSUYgIiAlMSwgIiAjQklUICIsIDFmCVxuXHQiCQkJ XAorCSAibm9wCQkJCQlcblx0IgkJCVwKKwkgImxpICUwLCAwCQkJCVxuXHQi CQkJXAorCSAiYiAyZgkJCQkJXG5cdCIJCQlcCisJICJub3AJCQkJCVxuXHQi CQkJXAorCSAiMToJCQkJCVxuXHQiCQkJXAorCSAibGkgJTAsIDEJCQkJXG5c dCIJCQlcCisJICIyOgkJCQkJXG5cdCIJCQlcCisJICIuc2V0IHBvcCIJCQkJ CQkJXAorCSA6ICI9ciIocmV0KSA6ICJyIigqcCkpOwkJCQkJXAorICAgIHJl dHVybiByZXQ7CQkJCQkJCQlcCisgIH0JCQkJCQkJCQlcCisgIHZvbGF0aWxl IHVpbnQ2NF90IHRha2VuXyMjQlJBTkNIX0lGIyNfIyNCSVQgPQkJCQlcCisg ICAgQkFTRSAmICh+KDF1bGwgPDwgQklUKSkgfCAoKHVpbnQ2NF90KSBCUkFO Q0hfSUYgPDwgQklUKTsJCVwKKyAgdm9sYXRpbGUgdWludDY0X3Qgbm90X3Rh a2VuXyMjQlJBTkNIX0lGIyNfIyNCSVQgPQkJCVwKKyAgICBCQVNFICYgKH4o MXVsbCA8PCBCSVQpKSB8ICgoKHVpbnQ2NF90KSAhQlJBTkNIX0lGKSA8PCBC SVQpOyAgCisKK0RFRl9CQklUX1RBS0VOICgwLCAxMCk7CitERUZfQkJJVF9U QUtFTiAoMCwgMzYpOworREVGX0JCSVRfVEFLRU4gKDEsIDIwKTsKK0RFRl9C QklUX1RBS0VOICgxLCA0OSk7CisKKyNkZWZpbmUgRVhQRUNUKFgpIGlmICgh KFgpKSBhYm9ydCAoKTsKKworbWFpbiAoKQoreworICBFWFBFQ1QgKGJiaXRf aXNfdGFrZW5fMF8xMCAoJnRha2VuXzBfMTApKTsKKyAgRVhQRUNUICghYmJp dF9pc190YWtlbl8wXzEwICgmbm90X3Rha2VuXzBfMTApKTsKKworICBFWFBF Q1QgKGJiaXRfaXNfdGFrZW5fMF8zNiAoJnRha2VuXzBfMzYpKTsKKyAgRVhQ RUNUICghYmJpdF9pc190YWtlbl8wXzM2ICgmbm90X3Rha2VuXzBfMzYpKTsK KworICBFWFBFQ1QgKGJiaXRfaXNfdGFrZW5fMV8yMCAoJnRha2VuXzFfMjAp KTsKKyAgRVhQRUNUICghYmJpdF9pc190YWtlbl8xXzIwICgmbm90X3Rha2Vu XzFfMjApKTsKKworICBFWFBFQ1QgKGJiaXRfaXNfdGFrZW5fMV80OSAoJnRh a2VuXzFfNDkpKTsKKyAgRVhQRUNUICghYmJpdF9pc190YWtlbl8xXzQ5ICgm bm90X3Rha2VuXzFfNDkpKTsKK30KZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmFyY2gvbWlwcy1vY3Rlb24tYmJpdC5leHAgYi9nZGIvdGVzdHN1 aXRlL2dkYi5hcmNoL21pcHMtb2N0ZW9uLWJiaXQuZXhwCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlNmRiMGYKLS0tIC9kZXYvbnVs bAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL21pcHMtb2N0ZW9uLWJi aXQuZXhwCkBAIC0wLDAgKzEsMTEyIEBACisjIENvcHlyaWdodCAyMDA3IENh dml1bSBOZXR3b3JrcywgSW5jLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExp Y2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisjIAorIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIyAKKyMgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5v dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwg SW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1B IDAyMTExLTEzMDcsIFVTQS4gIAorCisjIFRlc3Qgc2luZ2xlLXN0ZXAgb24g YmJpdC4gIAorCitpZiAhW2lzdGFyZ2V0ICIqb2N0ZW9uKiJdIHsKKyAgcmV0 dXJuIC0xCit9CisKK3Byb2MgY3VycmVudF9pbnNuIHt9IHsKKyAgICBnbG9i YWwgZ2RiX3Byb21wdAorCisgICAgc2VuZF9nZGIgIngvaSBcJHBjXG4iCisg ICAgZ2RiX2V4cGVjdCB7CisJLXJlICIuKj86XFxzK1woLio/XClcXHMqJGdk Yl9wcm9tcHQgJCIgeworCSAgICBzZXQgaW5zbiAkZXhwZWN0X291dCgxLHN0 cmluZykKKwkgICAgcmV0dXJuICRpbnNuCisJfQorICAgIH0KKyAgICByZXR1 cm4gIiIKK30KKworcHJvYyBzaW5nbGVfc3RlcCB7fSB7CisgICAgZ2xvYmFs IGdkYl9wcm9tcHQKKworICAgIHNlbmRfZ2RiICJzaVxuIgorICAgIGdkYl9l eHBlY3QgeworCS1yZSAiJGdkYl9wcm9tcHQgXCQiIHsKKwkgICAgcmV0dXJu IDEKKwl9CisgICAgfQorICAgIHJldHVybiAwOworfQorCitwcm9jIHNpbmds ZV9zdGVwX3VudGlsIHsgbWF0Y2ggfSB7CisgICAgZ2xvYmFsIHRpbWVvdXQK KworICAgIHNldCBpbnNuIFtjdXJyZW50X2luc25dCisgICAgc2V0IHN0YXJ0 IFt0aW1lc3RhbXBdCisgICAgd2hpbGUgeyAkaW5zbiAhPSAiIiAmJiBbdGlt ZXN0YW1wXSAtICRzdGFydCA8IDMqJHRpbWVvdXQgfSB7CisJaWYgW3JlZ2V4 cCAkbWF0Y2ggJGluc25dIHsKKwkgICAgcmV0dXJuIDEKKwl9CisJaWYgeyFb c2luZ2xlX3N0ZXBdfSB7CisJICAgIHJldHVybiAwCisJfQorCXNldCBpbnNu IFtjdXJyZW50X2luc25dCisgICAgfQorICAgIHJldHVybiAwOworfQorCitw cm9jIHRlc3RfYmJpdCB7IG5hbWUgdGFrZW4gfSB7CisgICAgaWYgeyFbc2lu Z2xlX3N0ZXBfdW50aWwgImJiaXQiXX0geworCWZhaWwgIiRuYW1lIHNpbmds ZS1zdGVwIHVudGlsIGJiaXQiCisJcmV0dXJuCisgICAgfQorICAgIHBhc3Mg IiRuYW1lIHNpbmdsZS1zdGVwIHVudGlsIGJiaXQiCisgICAgZ2RiX3Rlc3Qg InNpIiAiIiAiJG5hbWUgc2luZ2xlLXN0ZXAgb24gYmJpdCIKKyAgICBpZiBb cmVnZXhwICJsaVxccytcW3N2XF0wLCR0YWtlbiIgW2N1cnJlbnRfaW5zbl1d IHsKKwlwYXNzICIkbmFtZSBjaGVjayBpbnNuIGFmdGVyIGJiaXQiCisgICAg fSBlbHNlIHsKKwlzZW5kX2xvZyAiZXhwZWN0ZWQ6IGxpXFxzK1xbc3ZcXTAs JHRha2VuIGZvdW5kIFtjdXJyZW50X2luc25dXG4iCisJZmFpbCAiJG5hbWUg Y2hlY2sgaW5zbiBhZnRlciBiYml0IgorICAgIH0KK30KKworc2V0IHRlc3Rm aWxlICJtaXBzLW9jdGVvbi1iYml0Igorc2V0IHNyY2ZpbGUgJHt0ZXN0Zmls ZX0uYworc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3Rm aWxlfQorCitpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRp cn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFibGUgXAorICAg ICAgIHtkZWJ1ZyBub3dhcm5pbmdzfV0gIT0gIiIgfSB7CisgICAgIGZhaWwg ImNvbXBpbGF0aW9uIgorICAgICByZXR1cm4KK30KKworcGFzcyAiY29tcGls YXRpb24iCisKK2dkYl9leGl0CitnZGJfc3RhcnQKK2dkYl9yZWluaXRpYWxp emVfZGlyICRzcmNkaXIvJHN1YmRpcgorZ2RiX2xvYWQgJHtiaW5maWxlfQor IyBOYXRpdmUgbmVlZHMgcnVuLgorcnVudG9fbWFpbgorCitzZXQgdGVzdHMg IiIKK2ZvcmVhY2ggbiBbbGlzdCAiMF8xMCIgIjBfMzYiICIxXzIwIiAiMV80 OSJdIHsKKyAgICBsYXBwZW5kIHRlc3RzICJiYml0X2lzX3Rha2VuXyRuIgor fQorZm9yZWFjaCBmdW5jICR0ZXN0cyB7CisgICAgZ2RiX3Rlc3QgImJyZWFr ICRmdW5jIiAiQnJlYWtwb2ludC4qYXQuKiIgInNldCBicmVha3BvaW50IG9u ICRmdW5jIgorfQorCitmb3JlYWNoIGZ1bmMgJHRlc3RzIHsKKyAgICBnZGJf dGVzdCAiY29udGludWUiICJDb250aW51aW5nLipCcmVha3BvaW50LiokZnVu Yy4qIiAiaGl0ICRmdW5jIGZpcnN0IgorICAgIHRlc3RfYmJpdCAiJGZ1bmMg YnJhbmNoIHRha2VuIiAxCisgICAgZ2RiX3Rlc3QgImNvbnRpbnVlIiAiQ29u dGludWluZy4qQnJlYWtwb2ludC4qJGZ1bmMuKiIgImhpdCAkZnVuYyBzZWNv bmQiCisgICAgdGVzdF9iYml0ICIkZnVuYyBicmFuY2ggbm90IHRha2VuIiAw Cit9Ci0tIAoxLjcuMi41Cgo= --e89a8f3b9f65d4f39a04c7a5c8b2--