From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10292 invoked by alias); 24 Mar 2008 12:01:21 -0000 Received: (qmail 10283 invoked by uid 22791); 24 Mar 2008 12:01:20 -0000 X-Spam-Check-By: sourceware.org Received: from sohm.kpitcummins.com (HELO sohm.kpit.com) (203.197.93.231) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 24 Mar 2008 12:00:59 +0000 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C88DA6.79C4A548" Subject: RE: [PATCH,SH] Add SH2A new instructions 5/6 Date: Mon, 24 Mar 2008 13:22:00 -0000 Message-ID: <78DE440C4156CC45A35FDBCBF9B830D70241DE07@sohm.kpit.com> In-reply-to: <20080320.101758.71084397.kkojima@rr.iij4u.or.jp> From: "Naveen H.S." To: "Kaz Kojima" Cc: , "Prafulla Thakare" 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: 2008-03/txt/msg01387.txt.bz2 This is a multi-part message in MIME format. ------_=_NextPart_001_01C88DA6.79C4A548 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 1054 Hi Kaz, >> It seems that there is a typo in that test.=20 Thanks for pointing out the mistake. It has been rectified. Please find the revised patch attached "sh2a5.patch" as per the suggestions. 2008-03-24 Naveen.H.S =20=20=20=20=20=20=20=20=20=20=20=20 * config/sh/constraints.md (Pso, Psz): New constraints. * config/sh/sh.c (print_operand): Add %V and %W operand codes. * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns. =09 * gcc.target/sh/sh2a-bclr.c: New test. * gcc.target/sh/sh2a-bset.c: New test. Regards, Naveen.H.S. KPIT Cummins Infosystems Ltd, Pune (INDIA)=20 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=09 Free download of GNU based tool-chains for Renesas' SH, H8, R8C, M16C=09 and M32C Series. The following site also offers free technical support=09 to its users. Visit http://www.kpitgnutools.com for details.=20=09 Latest versions of KPIT GNU tools were released on February 4, 2008.=09 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=09 ------_=_NextPart_001_01C88DA6.79C4A548 Content-Type: application/octet-stream; name="sh2a5.patch" Content-Transfer-Encoding: base64 Content-Description: sh2a5.patch Content-Disposition: attachment; filename="sh2a5.patch" Content-length: 13339 ZGlmZiAtdXByIC9ob21lL25hdmVlbmgvdGFycy9nY2MtNC40LTIwMDgwMjIy L2djYy9jb25maWcvc2gvY29uc3RyYWludHMubWQgbTMyYy9zcmMvZ2NjLTQu NC0yMDA4MDIyMi9nY2MvY29uZmlnL3NoL2NvbnN0cmFpbnRzLm1kCi0tLSAv aG9tZS9uYXZlZW5oL3RhcnMvZ2NjLTQuNC0yMDA4MDIyMi9nY2MvY29uZmln L3NoL2NvbnN0cmFpbnRzLm1kCTIwMDgtMDMtMjQgMTI6NTM6MDIuMDAwMDAw MDAwICswNTMwCisrKyBtMzJjL3NyYy9nY2MtNC40LTIwMDgwMjIyL2djYy9j b25maWcvc2gvY29uc3RyYWludHMubWQJMjAwOC0wMy0yMCAwOTo1OTo1OC4w MDAwMDAwMDAgKzA1MzAKQEAgLTM1LDYgKzM1LDggQEAKIDs7ICBNOiAxCiA7 OyAgTjogMAogOzsgIFAyNzogMSB8IDIgfCA4IHwgMTYKKzs7ICBQc286IDEg fCAyIHwgNCB8IDggfCAxNiB8IDMyIHwgNjQgfCAxMjgKKzs7ICBQc3o6IH4x IHwgfjIgfCB+NCB8IH44IHwgfjE2IHwgfjMyIHwgfjY0IHwgfjEyOAogOzsg UTogcGMgcmVsYXRpdmUgbG9hZCBvcGVyYW5kCiA7OyBSeHg6IHJlc2VydmVk IGZvciBleG90aWMgcmVnaXN0ZXIgY2xhc3Nlcy4KIDs7IFN4eDogZXh0cmEg bWVtb3J5IChzdG9yYWdlKSBjb25zdHJhaW50cwpAQCAtMjA0LDYgKzIwNiwz MCBAQAogICAgUElDX0RJUkVDVF9BRERSX1AuIgogICAobWF0Y2hfdGVzdCAi SVNfTk9OX0VYUExJQ0lUX0NPTlNUQU5UX1AgKG9wKSIpKQogCisoZGVmaW5l X2NvbnN0cmFpbnQgIlBzbyIKKyAgIkludGVnZXIgY29uc3RhbnQgd2l0aCBh IHNpbmdsZSBiaXQgc2V0IGluIGl0cyBsb3dlciA4LWJpdC4iCisgIChhbmQg KG1hdGNoX2NvZGUgImNvbnN0X2ludCIpCisgICAgICAgKGlvciAobWF0Y2hf dGVzdCAiaXZhbCA9PSAxIikKKwkgICAgKG1hdGNoX3Rlc3QgIml2YWwgPT0g MiIpCisJICAgIChtYXRjaF90ZXN0ICJpdmFsID09IDQiKQorCSAgICAobWF0 Y2hfdGVzdCAiaXZhbCA9PSA4IikKKwkgICAgKG1hdGNoX3Rlc3QgIml2YWwg PT0gMTYiKQorCSAgICAobWF0Y2hfdGVzdCAiaXZhbCA9PSAzMiIpCisJICAg IChtYXRjaF90ZXN0ICJpdmFsID09IDY0IikKKwkgICAgKG1hdGNoX3Rlc3Qg Iml2YWwgPT0gMTI4IikpKSkKKworKGRlZmluZV9jb25zdHJhaW50ICJQc3oi CisgICJJbnRlZ2VyIGNvbnN0YW50IHdpdGggYSBzaW5nbGUgemVybyBiaXQg aW4gdGhlIGxvd2VyIDgtYml0LiIKKyAgKGFuZCAobWF0Y2hfY29kZSAiY29u c3RfaW50IikKKyAgICAgICAoaW9yIChtYXRjaF90ZXN0ICJ+aXZhbCA9PSAx IikKKwkgICAgKG1hdGNoX3Rlc3QgIn5pdmFsID09IDIiKQorCSAgICAobWF0 Y2hfdGVzdCAifml2YWwgPT0gNCIpCisJICAgIChtYXRjaF90ZXN0ICJ+aXZh bCA9PSA4IikKKwkgICAgKG1hdGNoX3Rlc3QgIn5pdmFsID09IDE2IikKKwkg ICAgKG1hdGNoX3Rlc3QgIn5pdmFsID09IDMyIikKKwkgICAgKG1hdGNoX3Rl c3QgIn5pdmFsID09IDY0IikKKwkgICAgKG1hdGNoX3Rlc3QgIn5pdmFsID09 IDEyOCIpKSkpCisKIChkZWZpbmVfbWVtb3J5X2NvbnN0cmFpbnQgIlNyMCIK ICAgIkBpbnRlcm5hbCIKICAgKGFuZCAobWF0Y2hfdGVzdCAibWVtb3J5X29w ZXJhbmQgKG9wLCBHRVRfTU9ERSAob3ApKSIpCk9ubHkgaW4gbTMyYy9zcmMv Z2NjLTQuNC0yMDA4MDIyMi9nY2MvY29uZmlnL3NoLzogY29uc3RyYWludHMu bWQub3JpZwpPbmx5IGluIG0zMmMvc3JjL2djYy00LjQtMjAwODAyMjIvZ2Nj L2NvbmZpZy9zaC86IHByZWRpY2F0ZXMubWQub3JpZwpkaWZmIC11cHIgL2hv bWUvbmF2ZWVuaC90YXJzL2djYy00LjQtMjAwODAyMjIvZ2NjL2NvbmZpZy9z aC9zaC5jIG0zMmMvc3JjL2djYy00LjQtMjAwODAyMjIvZ2NjL2NvbmZpZy9z aC9zaC5jCi0tLSAvaG9tZS9uYXZlZW5oL3RhcnMvZ2NjLTQuNC0yMDA4MDIy Mi9nY2MvY29uZmlnL3NoL3NoLmMJMjAwOC0wMy0yNCAxMjo1NToyNC4wMDAw MDAwMDAgKzA1MzAKKysrIG0zMmMvc3JjL2djYy00LjQtMjAwODAyMjIvZ2Nj L2NvbmZpZy9zaC9zaC5jCTIwMDgtMDMtMjAgMDk6NTk6NTkuMDAwMDAwMDAw ICswNTMwCkBAIC02NzgsNiArNjc4LDggQEAgcHJpbnRfb3BlcmFuZF9hZGRy ZXNzIChGSUxFICpzdHJlYW0sIHJ0eAogICAgJ2QnICBwcmludCBhIFYyU0Yg cmVnIGFzIGROIGluc3RlYWQgb2YgZnBOLgogICAgJ20nICBwcmludCBhIHBh aXIgYGJhc2Usb2Zmc2V0JyBvciBgYmFzZSxpbmRleCcsIGZvciBMRCBhbmQg U1QuCiAgICAnVScgIExpa2V3aXNlIGZvciB7TEQsU1R9e0hJLExPfS4KKyAg ICdWJyAgcHJpbnQgdGhlIHBvc2l0aW9uIG9mIGEgc2luZ2xlIGJpdCBzZXQu CisgICAnVycgIHByaW50IHRoZSBwb3NpdGlvbiBvZiBhIHNpbmdsZSBiaXQg Y2xlYXJlZC4KICAgICd1JyAgcHJpbnRzIHRoZSBsb3dlc3QgMTYgYml0cyBv ZiBDT05TVF9JTlQsIGFzIGFuIHVuc2lnbmVkIHZhbHVlLgogICAgJ28nICBv dXRwdXQgYW4gb3BlcmF0b3IuICAqLwogCkBAIC04ODQsNiArODg2LDIyIEBA IHByaW50X29wZXJhbmQgKEZJTEUgKnN0cmVhbSwgcnR4IHgsIGludCAKIAl9 CiAgICAgICBicmVhazsKIAorICAgIGNhc2UgJ1YnOgorICAgICAgeworCWlu dCBudW0gPSBleGFjdF9sb2cyIChJTlRWQUwgKHgpKTsKKwlnY2NfYXNzZXJ0 IChudW0gPj0gMCk7CisJZnByaW50ZiAoc3RyZWFtLCAiIyVkIiwgbnVtKTsK KyAgICAgIH0KKyAgICAgIGJyZWFrOworCisgICAgY2FzZSAnVyc6CisgICAg ICB7CisJaW50IG51bSA9IGV4YWN0X2xvZzIgKH5JTlRWQUwgKHgpKTsKKwln Y2NfYXNzZXJ0IChudW0gPj0gMCk7CisJZnByaW50ZiAoc3RyZWFtLCAiIyVk IiwgbnVtKTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworCiAgICAgY2FzZSAn ZCc6CiAgICAgICBnY2NfYXNzZXJ0IChHRVRfQ09ERSAoeCkgPT0gUkVHICYm IEdFVF9NT0RFICh4KSA9PSBWMlNGbW9kZSk7CiAKZGlmZiAtdXByIC9ob21l L25hdmVlbmgvdGFycy9nY2MtNC40LTIwMDgwMjIyL2djYy9jb25maWcvc2gv c2guYy5vcmlnIG0zMmMvc3JjL2djYy00LjQtMjAwODAyMjIvZ2NjL2NvbmZp Zy9zaC9zaC5jLm9yaWcKLS0tIC9ob21lL25hdmVlbmgvdGFycy9nY2MtNC40 LTIwMDgwMjIyL2djYy9jb25maWcvc2gvc2guYy5vcmlnCTIwMDgtMDMtMjQg MTI6NTM6MDIuMDAwMDAwMDAwICswNTMwCisrKyBtMzJjL3NyYy9nY2MtNC40 LTIwMDgwMjIyL2djYy9jb25maWcvc2gvc2guYy5vcmlnCTIwMDgtMDMtMTkg MTQ6MzU6NTUuMDAwMDAwMDAwICswNTMwCkBAIC02NzgsNiArNjc4LDExIEBA IHByaW50X29wZXJhbmRfYWRkcmVzcyAoRklMRSAqc3RyZWFtLCBydHgKICAg ICdkJyAgcHJpbnQgYSBWMlNGIHJlZyBhcyBkTiBpbnN0ZWFkIG9mIGZwTi4K ICAgICdtJyAgcHJpbnQgYSBwYWlyIGBiYXNlLG9mZnNldCcgb3IgYGJhc2Us aW5kZXgnLCBmb3IgTEQgYW5kIFNULgogICAgJ1UnICBMaWtld2lzZSBmb3Ig e0xELFNUfXtISSxMT30uCisgICAnVicgIHByaW50IHRoZSBwb3NpdGlvbiBv ZiBhIHNpbmdsZSBiaXQgc2V0LgorICAgJ1cnICBwcmludCB0aGUgcG9zaXRp b24gb2YgYSBzaW5nbGUgYml0IGNsZWFyZWQuCisgICAnZicgIG91dHB1dCB0 aGUgYml0IG9wZXJhdG9yLgorICAgJ2UnICBvdXRwdXQgdGhlIGJpdG5vdCBv cGVyYXRvci4KKyAgICd0JyAgcHJpbnQgYSBtZW1vcnkgYWRkcmVzcyB3aGlj aCBpcyBhIHJlZ2lzdGVyLgogICAgJ3UnICBwcmludHMgdGhlIGxvd2VzdCAx NiBiaXRzIG9mIENPTlNUX0lOVCwgYXMgYW4gdW5zaWduZWQgdmFsdWUuCiAg ICAnbycgIG91dHB1dCBhbiBvcGVyYXRvci4gICovCiAKQEAgLTgxNyw2ICs4 MjIsMjEgQEAgcHJpbnRfb3BlcmFuZCAoRklMRSAqc3RyZWFtLCBydHggeCwg aW50IAogCSAgYnJlYWs7CiAJfQogICAgICAgYnJlYWs7CisKKyAgICBjYXNl ICd0JzoKKyAgICAgIGdjY19hc3NlcnQgKEdFVF9DT0RFICh4KSA9PSBNRU0p OworICAgICAgeCA9IFhFWFAgKHgsIDApOworICAgICAgc3dpdGNoIChHRVRf Q09ERSAoeCkpCisJeworCWNhc2UgUkVHOgorCWNhc2UgU1VCUkVHOgorCSAg cHJpbnRfb3BlcmFuZCAoc3RyZWFtLCB4LCAwKTsKKwkgIGJyZWFrOworCWRl ZmF1bHQ6CisJICBicmVhazsKKwl9CisgICAgICBicmVhazsKKwogICAgIGNh c2UgJ28nOgogICAgICAgc3dpdGNoIChHRVRfQ09ERSAoeCkpCiAJewpAQCAt ODg0LDYgKzkwNCwyMiBAQCBwcmludF9vcGVyYW5kIChGSUxFICpzdHJlYW0s IHJ0eCB4LCBpbnQgCiAJfQogICAgICAgYnJlYWs7CiAKKyAgICBjYXNlICdW JzoKKyAgICAgIHsKKwlpbnQgbnVtID0gZXhhY3RfbG9nMiAoSU5UVkFMICh4 KSk7CisJZ2NjX2Fzc2VydCAobnVtID49IDApOworCWZwcmludGYgKHN0cmVh bSwgIiMlZCIsIG51bSk7CisgICAgICB9CisgICAgICBicmVhazsKKworICAg IGNhc2UgJ1cnOgorICAgICAgeworCWludCBudW0gPSBleGFjdF9sb2cyICh+ SU5UVkFMICh4KSk7CisJZ2NjX2Fzc2VydCAobnVtID49IDApOworCWZwcmlu dGYgKHN0cmVhbSwgIiMlZCIsIG51bSk7CisgICAgICB9CisgICAgICBicmVh azsKKwogICAgIGNhc2UgJ2QnOgogICAgICAgZ2NjX2Fzc2VydCAoR0VUX0NP REUgKHgpID09IFJFRyAmJiBHRVRfTU9ERSAoeCkgPT0gVjJTRm1vZGUpOwog CkBAIC0xMDU5MSw2ICsxMDYyNyw5IEBAIHNoX2V4cGFuZF90X3NjYyAoZW51 bSBydHhfY29kZSBjb2RlLCBydHgKICAgdmFsID0gSU5UVkFMIChzaF9jb21w YXJlX29wMSk7CiAgIGlmICgoY29kZSA9PSBFUSAmJiB2YWwgPT0gMSkgfHwg KGNvZGUgPT0gTkUgJiYgdmFsID09IDApKQogICAgIGVtaXRfaW5zbiAoZ2Vu X21vdnQgKHJlc3VsdCkpOworICBlbHNlIGlmIChUQVJHRVRfU0gyQSAmJiAo KGNvZGUgPT0gRVEgJiYgdmFsID09IDApCisJCQkgICAgfHwgKGNvZGUgPT0g TkUgJiYgdmFsID09IDEpKSkKKyAgICBlbWl0X2luc24gKGdlbl9tb3ZydCAo cmVzdWx0KSk7CiAgIGVsc2UgaWYgKChjb2RlID09IEVRICYmIHZhbCA9PSAw KSB8fCAoY29kZSA9PSBORSAmJiB2YWwgPT0gMSkpCiAgICAgewogICAgICAg ZW1pdF9pbnNuIChnZW5fcnR4X0NMT0JCRVIgKFZPSURtb2RlLCByZXN1bHQp KTsKT25seSBpbiBtMzJjL3NyYy9nY2MtNC40LTIwMDgwMjIyL2djYy9jb25m aWcvc2gvOiBzaC5oLm9yaWcKZGlmZiAtdXByIC9ob21lL25hdmVlbmgvdGFy cy9nY2MtNC40LTIwMDgwMjIyL2djYy9jb25maWcvc2gvc2gubWQgbTMyYy9z cmMvZ2NjLTQuNC0yMDA4MDIyMi9nY2MvY29uZmlnL3NoL3NoLm1kCi0tLSAv aG9tZS9uYXZlZW5oL3RhcnMvZ2NjLTQuNC0yMDA4MDIyMi9nY2MvY29uZmln L3NoL3NoLm1kCTIwMDgtMDMtMjQgMTI6NTU6MjQuMDAwMDAwMDAwICswNTMw CisrKyBtMzJjL3NyYy9nY2MtNC40LTIwMDgwMjIyL2djYy9jb25maWcvc2gv c2gubWQJMjAwOC0wMy0yMCAxMDowMDowMC4wMDAwMDAwMDAgKzA1MzAKQEAg LTMxNzAsNiArMzE3MCwxNCBAQCBsYWJlbDoKIAlhbmRpCSUxLCAlMiwgJTAi CiAgIFsoc2V0X2F0dHIgInR5cGUiICJhcml0aF9tZWRpYSIpXSkKIAorKGRl ZmluZV9pbnNuICIqYW5kc2kzX2JjbHIiCisgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlNJIDAgImFyaXRoX3JlZ19kZXN0IiAiPXIiKQorCShhbmQ6U0kgKG1h dGNoX29wZXJhbmQ6U0kgMSAiYXJpdGhfcmVnX29wZXJhbmQiICIlMCIpCisJ CShtYXRjaF9vcGVyYW5kOlNJIDIgImNvbnN0X2ludF9vcGVyYW5kIiAiUHN6 IikpKV0KKyAgIlRBUkdFVF9TSDJBICYmIHNhdGlzZmllc19jb25zdHJhaW50 X1BzeiAob3BlcmFuZHNbMl0pIgorICAiYmNsclxcdCVXMiwlMCIKKyAgWyhz ZXRfYXR0ciAidHlwZSIgImFyaXRoIildKQorCiA7OyBJZiB0aGUgY29uc3Rh bnQgaXMgMjU1LCB0aGVuIGVtaXQgYW4gZXh0dS5iIGluc3RydWN0aW9uIGlu c3RlYWQgb2YgYW4KIDs7IGFuZCwgc2luY2UgdGhhdCB3aWxsIGdpdmUgYmV0 dGVyIGNvZGUuCiAKQEAgLTMyNTIsNiArMzI2MCwxNCBAQCBsYWJlbDoKIAlv cmkJJTEsICUyLCAlMCIKICAgWyhzZXRfYXR0ciAidHlwZSIgImFyaXRoX21l ZGlhIildKQogCisoZGVmaW5lX2luc24gIippb3JzaTNfYnNldCIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAiYXJpdGhfcmVnX2Rlc3QiICI9ciIp CisJKGlvcjpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJhcml0aF9yZWdfb3Bl cmFuZCIgIiUwIikKKwkobWF0Y2hfb3BlcmFuZDpTSSAyICJjb25zdF9pbnRf b3BlcmFuZCIgIlBzbyIpKSldCisgICJUQVJHRVRfU0gyQSAmJiBzYXRpc2Zp ZXNfY29uc3RyYWludF9Qc28gKG9wZXJhbmRzWzJdKSIKKyAgImJzZXRcXHQl VjIsJTAiCisgIFsoc2V0X2F0dHIgInR5cGUiICJhcml0aCIpXSkKKwogKGRl ZmluZV9pbnNuICJpb3JkaTMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJ IDAgImFyaXRoX3JlZ19kZXN0IiAiPXIsciIpCiAJKGlvcjpESSAobWF0Y2hf b3BlcmFuZDpESSAxICJhcml0aF9yZWdfb3BlcmFuZCIgIiVyLHIiKQpPbmx5 IGluIG0zMmMvc3JjL2djYy00LjQtMjAwODAyMjIvZ2NjL2NvbmZpZy9zaC86 IHNoLm1kLm9yaWcKT25seSBpbiBtMzJjL3NyYy9nY2MtNC40LTIwMDgwMjIy L2djYy9jb25maWcvc2gvOiBzaC5vcHQub3JpZwpkaWZmIC11cHJOIC9ob21l L25hdmVlbmgvdGFycy9nY2MtNC40LTIwMDgwMjIyL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9zaC9zaDJhLWJjbHIuYyBtMzJjL3NyYy9nY2MtNC40LTIw MDgwMjIyL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9zaC9zaDJhLWJjbHIu YwotLS0gL2hvbWUvbmF2ZWVuaC90YXJzL2djYy00LjQtMjAwODAyMjIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3NoL3NoMmEtYmNsci5jCTE5NzAtMDEt MDEgMDU6MzA6MDAuMDAwMDAwMDAwICswNTMwCisrKyBtMzJjL3NyYy9nY2Mt NC40LTIwMDgwMjIyL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9zaC9zaDJh LWJjbHIuYwkyMDA4LTAzLTE5IDE0OjM1OjUyLjAwMDAwMDAwMCArMDUzMApA QCAtMCwwICsxLDU5IEBACisvKiBUZXN0Y2FzZSB0byBjaGVjayBnZW5lcmF0 aW9uIG9mIGEgU0gyQSBzcGVjaWZpYyBpbnN0cnVjdGlvbgorICAgJ0JDTFIg I2ltbTMsUm4nLiAgKi8KKy8qIHsgZGctZG8gYXNzZW1ibGUge3RhcmdldCBz aCotKi0qfX0gICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMSIgfSAgKi8KKy8q IHsgZGctc2tpcC1pZiAiIiB7ICJzaCotKi0qIiB9ICIqIiAiLW0yYSAtbTJh LW5vZnB1IC1tMmEtc2luZ2xlIC1tMmEtc2luZ2xlLW9ubHkiIH0gICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgImJjbHIifSB9ICAqLwor CitzdHJ1Y3QgYQoreworICBjaGFyIGEsIGI7CisgIHNob3J0IGM7Cit9Owor CisvKiBUaGlzIGZ1bmN0aW9uIGdlbmVyYXRlcyB0aGUgaW5zdHJ1Y3Rpb24g IkJDTFIgI2ltbTMsUm4iIG9ubHkKKyAgIG9uIHVzaW5nIG9wdGltaXphdGlv biBvcHRpb24gIi1PMSIgYW5kIGFib3ZlLiAgKi8KKworaW50CithMiAoKQor eworICB2b2xhdGlsZSBpbnQgajsKKyAgdm9sYXRpbGUgc3RhdGljIHN0cnVj dCBhIHggPSB7MSwgNjYsIH4xfSwgeSA9IHsxLCAyLCB+Mn07CisKKyAgaWYg KGogPiAxKQorICAgIHJldHVybiAoeC5hID09IHkuYSAmJiAoeC5iICYgfjEp ID09IHkuYik7CisgIGlmIChqID4gMikKKyAgICByZXR1cm4gKHguYSA9PSB5 LmEgJiYgKHguYiAmIH4yKSA9PSB5LmIpOworICBpZiAoaiA+IDMpCisgICAg cmV0dXJuICh4LmEgPT0geS5hICYmICh4LmIgJiB+NCkgPT0geS5iKTsKKyAg aWYgKGogPiA0KQorICAgIHJldHVybiAoeC5hID09IHkuYSAmJiAoeC5iICYg fjgpID09IHkuYik7CisgIGlmIChqID4gNSkKKyAgICByZXR1cm4gKHguYSA9 PSB5LmEgJiYgKHguYiAmIH4xNikgPT0geS5iKTsKKyAgaWYgKGogPiA2KQor ICAgIHJldHVybiAoeC5hID09IHkuYSAmJiAoeC5iICYgfjMyKSA9PSB5LmIp OworICBpZiAoaiA+IDcpCisgICAgcmV0dXJuICh4LmEgPT0geS5hICYmICh4 LmIgJiB+NjQpID09IHkuYik7CisgIGlmIChqID4gOCkKKyAgICByZXR1cm4g KHguYSA9PSB5LmEgJiYgKHguYiAmIH4xMjgpID09IHkuYik7Cit9CisKK2lu dAorbWFpbiAoKQoreworICB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIHg7CisK KyAgeCAmPSAweEZFOworICB4ICY9IDB4RkQ7CisgIHggJj0gMHhGQjsKKyAg eCAmPSAweEY3OworICB4ICY9IDB4RUY7CisgIHggJj0gMHhERjsKKyAgeCAm PSAweEJGOworICB4ICY9IDB4N0Y7CisKKyAgaWYgKCFhMiAoKSkKKyAgcmV0 dXJuIDA7Cit9CisKKwpkaWZmIC11cHJOIC9ob21lL25hdmVlbmgvdGFycy9n Y2MtNC40LTIwMDgwMjIyL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9zaC9z aDJhLWJzZXQuYyBtMzJjL3NyYy9nY2MtNC40LTIwMDgwMjIyL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9zaC9zaDJhLWJzZXQuYwotLS0gL2hvbWUvbmF2 ZWVuaC90YXJzL2djYy00LjQtMjAwODAyMjIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3NoL3NoMmEtYnNldC5jCTE5NzAtMDEtMDEgMDU6MzA6MDAuMDAw MDAwMDAwICswNTMwCisrKyBtMzJjL3NyYy9nY2MtNC40LTIwMDgwMjIyL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9zaC9zaDJhLWJzZXQuYwkyMDA4LTAz LTIwIDA5OjU4OjMwLjAwMDAwMDAwMCArMDUzMApAQCAtMCwwICsxLDU4IEBA CisvKiBUZXN0Y2FzZSB0byBjaGVjayBnZW5lcmF0aW9uIG9mIGEgU0gyQSBz cGVjaWZpYyBpbnN0cnVjdGlvbgorICAnQlNFVCAjaW1tMyxSbicuICAqLwor LyogeyBkZy1kbyBhc3NlbWJsZSB7dGFyZ2V0IHNoKi0qLSp9fSAgKi8KKy8q IHsgZGctb3B0aW9ucyAiLU8xIiB9ICAqLworLyogeyBkZy1za2lwLWlmICIi IHsgInNoKi0qLSoiIH0gIioiICItbTJhIC1tMmEtbm9mcHUgLW0yYS1zaW5n bGUgLW0yYS1zaW5nbGUtb25seSIgfSAgKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlciAiYnNldCJ9IH0gICovCisKK3N0cnVjdCBhCit7Cisg IGNoYXIgYSwgYjsKKyAgc2hvcnQgYzsKK307CisKKy8qIFRoaXMgZnVuY3Rp b24gZ2VuZXJhdGVzIHRoZSBpbnN0cnVjdGlvbiAiQlNFVCAjaW1tMyxSbiIg b25seQorICAgb24gdXNpbmcgb3B0aW1pemF0aW9uIG9wdGlvbiAiLU8xIiBh bmQgYWJvdmUuICAqLworCitpbnQKK2EyICgpCit7CisgIHZvbGF0aWxlIGlu dCBqOworICB2b2xhdGlsZSBzdGF0aWMgc3RydWN0IGEgeCA9IHsxLCA2Niwg fjF9LCB5ID0gezEsIDIsIH4yfTsKKworICBpZiAoaiA+IDEpCisgICAgcmV0 dXJuICh4LmEgPT0geS5hICYmICh4LmIgfCAxKSA9PSB5LmIpOworICBpZiAo aiA+IDIpCisgICAgcmV0dXJuICh4LmEgPT0geS5hICYmICh4LmIgfCAyKSA9 PSB5LmIpOworICBpZiAoaiA+IDMpCisgICAgcmV0dXJuICh4LmEgPT0geS5h ICYmICh4LmIgfCA0KSA9PSB5LmIpOworICBpZiAoaiA+IDQpCisgICAgcmV0 dXJuICh4LmEgPT0geS5hICYmICh4LmIgfCA4KSA9PSB5LmIpOworICBpZiAo aiA+IDUpCisgICAgcmV0dXJuICh4LmEgPT0geS5hICYmICh4LmIgfCAxNikg PT0geS5iKTsKKyAgaWYgKGogPiA2KQorICAgIHJldHVybiAoeC5hID09IHku YSAmJiAoeC5iIHwgMzIpID09IHkuYik7CisgIGlmIChqID4gNykKKyAgICBy ZXR1cm4gKHguYSA9PSB5LmEgJiYgKHguYiB8IDY0KSA9PSB5LmIpOworICBp ZiAoaiA+IDgpCisgICAgcmV0dXJuICh4LmEgPT0geS5hICYmICh4LmIgfCAx MjgpID09IHkuYik7Cit9CisKK2ludAorbWFpbiAoKQoreworICB2b2xhdGls ZSB1bnNpZ25lZCBjaGFyIHg7CisKKyAgeCB8PSAweDE7CisgIHggfD0gMHgy OworICB4IHw9IDB4NDsKKyAgeCB8PSAweDg7CisgIHggfD0gMHgxNjsKKyAg eCB8PSAweDMyOworICB4IHw9IDB4NjQ7CisgIHggfD0gMHgxMjg7CisKKyAg aWYgKCFhMiAoKSkKKyAgcmV0dXJuIDA7Cit9CisK ------_=_NextPart_001_01C88DA6.79C4A548--