From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 83081 invoked by alias); 10 Jun 2015 02:46:40 -0000 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 Received: (qmail 83049 invoked by uid 89); 10 Jun 2015 02:46:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.8 required=5.0 tests=BAYES_40,KAM_ASCII_DIVIDERS,SPF_PASS,T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: szxga03-in.huawei.com Received: from szxga03-in.huawei.com (HELO szxga03-in.huawei.com) (119.145.14.66) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (DES-CBC3-SHA encrypted) ESMTPS; Wed, 10 Jun 2015 02:46:37 +0000 Received: from 172.24.2.119 (EHLO SZXEMI402-HUB.china.huawei.com) ([172.24.2.119]) by szxrg03-dlp.huawei.com (MOS 4.4.3-GA FastPath queued) with ESMTP id BHL50555; Wed, 10 Jun 2015 10:46:19 +0800 (CST) Received: from SZXEMI503-MBX.china.huawei.com ([169.254.7.87]) by SZXEMI402-HUB.china.huawei.com ([10.83.65.54]) with mapi id 14.03.0158.001; Wed, 10 Jun 2015 10:46:14 +0800 From: weixiangyu To: James Greenhalgh CC: "gcc-patches@gcc.gnu.org" , Marcus Shawcroft , Richard Earnshaw , Richard Earnshaw Subject: RE: backport the fixes of PR target/64011 and /61749 to 4.9 gcc Date: Wed, 10 Jun 2015 03:26:00 -0000 Message-ID: <894B9D8AA7173E40BFFBBF195B8281BCB76A18@SZXEMI503-MBX.china.huawei.com> References: <894B9D8AA7173E40BFFBBF195B8281BCB75B4B@SZXEMI503-MBX.china.huawei.com> <20150528135737.GA3964@arm.com> In-Reply-To: <20150528135737.GA3964@arm.com> Content-Type: multipart/mixed; boundary="_003_894B9D8AA7173E40BFFBBF195B8281BCB76A18SZXEMI503MBXchina_" MIME-Version: 1.0 X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020201.5577A500.006E,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=169.254.7.87, so=2013-05-26 15:14:31, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 2a847844efe6bf7847f2f15793bce499 X-SW-Source: 2015-06/txt/msg00722.txt.bz2 --_003_894B9D8AA7173E40BFFBBF195B8281BCB76A18SZXEMI503MBXchina_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 8149 Updated patches were attached. Rebased on the latest 4.9 branch.=20 Tested on aarch64-linux (big-endian and little-endian) with qemu.=20 OK for 4.9? The first patch: Index: gcc/ChangeLog =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- gcc/ChangeLog (revision 223867) +++ gcc/ChangeLog (working copy) @@ -1,3 +1,11 @@ +2015-06-09 Xiangyu Wei + + Backport from mainline r219717: + 2015-01-15 Jiong Wang + PR rtl-optimization/64011 + * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize = when + there is partial overflow. + Index: gcc/expmed.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- gcc/expmed.c (revision 223867) +++ gcc/expmed.c (working copy) @@ -539,7 +539,21 @@ store_bit_field_using_insv (const extraction_insn xop0 =3D tem; copy_back =3D true; } - +=20=20 + /* There are similar overflow check at the start of store_bit_field_1,=20 + but that only check the situation where the field lies completely=20 + outside the register, while there do have situation where the field=20 + lies partialy in the register, we need to adjust bitsize for this=20 + partial overflow situation. Without this fix, pr48335-2.c on big-end= ian=20 + will broken on those arch support bit insert instruction, like arm, a= arch64=20 + etc. */=20 + if (bitsize + bitnum > unit && bitnum < unit)=20 + {=20 + warning (OPT_Wextra, "write of "HOST_WIDE_INT_PRINT_UNSIGNED"bit dat= a "=20 + "outside the bound of destination object, data truncated in= to "=20 + HOST_WIDE_INT_PRINT_UNSIGNED"bit", bitsize, unit - bitnum);= =20 + bitsize =3D unit - bitnum;=20 + } /* If BITS_BIG_ENDIAN is zero on a BYTES_BIG_ENDIAN machine, we count "backwards" from the size of the unit we are inserting into. Otherwise, we count bits from the most significant on a And the second one: Index: gcc/ChangeLog =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- gcc/ChangeLog (revision 223867) +++ gcc/ChangeLog (working copy) @@ -1,3 +1,28 @@ +2015-06-09 Xiangyu Wei + + Backport from mainline r215046: + 2014-09-09 Kyrylo Tkachov + PR target/61749 + * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifie= rs): + Use qualifier_immediate for last operand. Rename to... + (aarch64_types_ternop_lane_qualifiers): ... This. + (TYPES_QUADOP): Rename to... + (TYPES_TERNOP_LANE): ... This. + (aarch64_simd_expand_args): Return const0_rtx when encountering user + error. Change return of 0 to return of NULL_RTX. + (aarch64_crc32_expand_builtin): Likewise. + (aarch64_expand_builtin): Return NULL_RTX instead of 0. + ICE when expanding unknown builtin. + * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use + TERNOP_LANE qualifiers. + (sqdmlsl_lane): Likewise. + (sqdmlal_laneq): Likewise. + (sqdmlsl_laneq): Likewise. + (sqdmlal2_lane): Likewise. + (sqdmlsl2_lane): Likewise. + (sqdmlal2_laneq): Likewise. + (sqdmlsl2_laneq): Likewise. + * gcc.target/aarch64/vqdml_lane_intrinsics-bad_1.c: New test. Index: gcc/config/aarch64/aarch64-builtins.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- gcc/config/aarch64/aarch64-builtins.c (revision 223867) +++ gcc/config/aarch64/aarch64-builtins.c (working copy) @@ -172,10 +172,10 @@ aarch64_types_ternopu_qualifiers[SIMD_MAX_BUILTIN_ #define TYPES_TERNOPU (aarch64_types_ternopu_qualifiers) static enum aarch64_type_qualifiers -aarch64_types_quadop_qualifiers[SIMD_MAX_BUILTIN_ARGS] +aarch64_types_ternop_lane_qualifiers[SIMD_MAX_BUILTIN_ARGS] =3D { qualifier_none, qualifier_none, qualifier_none, - qualifier_none, qualifier_none }; -#define TYPES_QUADOP (aarch64_types_quadop_qualifiers) + qualifier_none, qualifier_immediate }; +#define TYPES_TERNOP_LANE (aarch64_types_ternop_lane_qualifiers) static enum aarch64_type_qualifiers aarch64_types_getlane_qualifiers[SIMD_MAX_BUILTIN_ARGS] @@ -818,8 +818,11 @@ aarch64_simd_expand_args (rtx target, int icode, i case SIMD_ARG_CONSTANT: if (!(*insn_data[icode].operand[argc + have_retval].predicate) (op[argc], mode[argc])) - error_at (EXPR_LOCATION (exp), "incompatible type for argum= ent %d, " + { + error_at (EXPR_LOCATION (exp), "incompatible type for arg= ument %d, " "expected %", argc + 1); + return const0_rtx; + } break; case SIMD_ARG_STOP: @@ -886,7 +889,7 @@ aarch64_simd_expand_args (rtx target, int icode, i } if (!pat) - return 0; + return NULL_RTX; > -----Original Message----- > From: James Greenhalgh [mailto:james.greenhalgh@arm.com] > Sent: Thursday, May 28, 2015 9:58 PM > To: weixiangyu > Cc: gcc-patches@gcc.gnu.org; Marcus Shawcroft; Richard Earnshaw; Yangfei > (Felix) > Subject: Re: backport the fixes of PR target/64011 and /61749 to 4.9 gcc >=20 > On Wed, May 27, 2015 at 03:49:24AM +0100, weixiangyu wrote: > > Hi, >=20 > Hi, >=20 > > The first patch backports the fix of PR > > target/64011(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D64011) to > > the 4.9 branch from trunk r219717, >=20 > I can't approve this patch to be backported, so please do not commit it w= ithout > approval from the appropriate maintainer. >=20 > > and the second patch backports the fix of PR > > target/61749(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D61749) to > > the 4.9 branch from trunk r215046. >=20 > This second patch is OK to backport to 4.9. It is a harmelss enough patch= which > fixes an ICE. >=20 > Thanks, > James >=20 > > And the second one: > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D > > --- gcc/ChangeLog-HCC (revision 130589) > > +++ gcc/ChangeLog-HCC (revision 130590) > > @@ -1,3 +1,29 @@ > > +2015-05-26 y00166676 > > + > > + Backport from trunk r215046. > > + 2014-09-09 Kyrylo Tkachov > > + > > + PR target/61749 > > + * config/aarch64/aarch64-builtins.c > (aarch64_types_quadop_qualifiers): > > + Use qualifier_immediate for last operand. Rename to... > > + (aarch64_types_ternop_lane_qualifiers): ... This. > > + (TYPES_QUADOP): Rename to... > > + (TYPES_TERNOP_LANE): ... This. > > + (aarch64_simd_expand_args): Return const0_rtx when > encountering user > > + error. Change return of 0 to return of NULL_RTX. > > + (aarch64_crc32_expand_builtin): Likewise. > > + (aarch64_expand_builtin): Return NULL_RTX instead of 0. > > + ICE when expanding unknown builtin. > > + * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use > > + TERNOP_LANE qualifiers. > > + (sqdmlsl_lane): Likewise. > > + (sqdmlal_laneq): Likewise. > > + (sqdmlsl_laneq): Likewise. > > + (sqdmlal2_lane): Likewise. > > + (sqdmlsl2_lane): Likewise. > > + (sqdmlal2_laneq): Likewise. > > + (sqdmlsl2_laneq): Likewise. > > + > > * gcc.target/aarch64/vqdml_lane_intrinsics-bad_1.c: New test. > > >=20 --_003_894B9D8AA7173E40BFFBBF195B8281BCB76A18SZXEMI503MBXchina_ Content-Type: application/octet-stream; name="pr64011.patch" Content-Description: pr64011.patch Content-Disposition: attachment; filename="pr64011.patch"; size=1926; creation-date="Wed, 10 Jun 2015 02:41:37 GMT"; modification-date="Wed, 10 Jun 2015 02:36:37 GMT" Content-Transfer-Encoding: base64 Content-length: 2611 SW5kZXg6IGdjYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gZ2NjL0NoYW5nZUxvZyAgICAgICAocmV2aXNpb24gMjIzODY3KQorKysg Z2NjL0NoYW5nZUxvZyAgICAgICAod29ya2luZyBjb3B5KQpAQCAtMSwzICsx LDExIEBACisyMDE1LTA2LTA5ICBYaWFuZ3l1IFdlaSAgPHdlaXhpYW5neXVA aHVhd2VpLmNvbT4KKworICAgICAgIEJhY2twb3J0IGZyb20gbWFpbmxpbmUg cjIxOTcxNzoKKyAgICAgICAyMDE1LTAxLTE1ICBKaW9uZyBXYW5nICA8amlv bmcud2FuZ0Bhcm0uY29tPgorICAgICAgIFBSIHJ0bC1vcHRpbWl6YXRpb24v NjQwMTEKKyAgICAgICAqIGV4cG1lZC5jIChzdG9yZV9iaXRfZmllbGRfdXNp bmdfaW5zdik6IFdhcm4gYW5kIHRydW5jYXRlIGJpdHNpemUgd2hlbgorICAg ICAgIHRoZXJlIGlzIHBhcnRpYWwgb3ZlcmZsb3cuCisKIDIwMTUtMDUtMjgg IE1pa2UgRnJ5c2luZ2VyICA8dmFwaWVyQGdlbnRvby5vcmc+CiAKICAgICAg ICAqIGNvbmZpZy9uaW9zMi9saW51eC5oIChDUFBfU1BFQyk6IERlZmluZS4K SW5kZXg6IGdjYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LWJ1aWx0aW5zLmMK SW5kZXg6IGdjYy9leHBtZWQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBnY2MvZXhwbWVkLmMJKHJldmlzaW9uIDIyMzg2NykKKysrIGdjYy9leHBt ZWQuYwkod29ya2luZyBjb3B5KQpAQCAtNTM5LDcgKzUzOSwyMSBAQCBzdG9y ZV9iaXRfZmllbGRfdXNpbmdfaW5zdiAoY29uc3QgZXh0cmFjdGlvbl9pbnNu CiAgICAgICB4b3AwID0gdGVtOwogICAgICAgY29weV9iYWNrID0gdHJ1ZTsK ICAgICB9Ci0KKyAgCisgIC8qIFRoZXJlIGFyZSBzaW1pbGFyIG92ZXJmbG93 IGNoZWNrIGF0IHRoZSBzdGFydCBvZiBzdG9yZV9iaXRfZmllbGRfMSwgCisg ICAgIGJ1dCB0aGF0IG9ubHkgY2hlY2sgdGhlIHNpdHVhdGlvbiB3aGVyZSB0 aGUgZmllbGQgbGllcyBjb21wbGV0ZWx5IAorICAgICBvdXRzaWRlIHRoZSBy ZWdpc3Rlciwgd2hpbGUgdGhlcmUgZG8gaGF2ZSBzaXR1YXRpb24gd2hlcmUg dGhlIGZpZWxkIAorICAgICBsaWVzIHBhcnRpYWx5IGluIHRoZSByZWdpc3Rl ciwgd2UgbmVlZCB0byBhZGp1c3QgYml0c2l6ZSBmb3IgdGhpcyAKKyAgICAg cGFydGlhbCBvdmVyZmxvdyBzaXR1YXRpb24uICBXaXRob3V0IHRoaXMgZml4 LCBwcjQ4MzM1LTIuYyBvbiBiaWctZW5kaWFuIAorICAgICB3aWxsIGJyb2tl biBvbiB0aG9zZSBhcmNoIHN1cHBvcnQgYml0IGluc2VydCBpbnN0cnVjdGlv biwgbGlrZSBhcm0sIGFhcmNoNjQgCisgICAgIGV0Yy4gICovIAorICBpZiAo Yml0c2l6ZSArIGJpdG51bSA+IHVuaXQgJiYgYml0bnVtIDwgdW5pdCkgCisg ICAgeyAKKyAgICAgIHdhcm5pbmcgKE9QVF9XZXh0cmEsICJ3cml0ZSBvZiAi SE9TVF9XSURFX0lOVF9QUklOVF9VTlNJR05FRCJiaXQgZGF0YSAiIAorICAg ICAgICAgICAgICAgIm91dHNpZGUgdGhlIGJvdW5kIG9mIGRlc3RpbmF0aW9u IG9iamVjdCwgZGF0YSB0cnVuY2F0ZWQgaW50byAiIAorICAgICAgICAgICAg ICAgSE9TVF9XSURFX0lOVF9QUklOVF9VTlNJR05FRCJiaXQiLCBiaXRzaXpl LCB1bml0IC0gYml0bnVtKTsgCisgICAgICBiaXRzaXplID0gdW5pdCAtIGJp dG51bTsgCisgICAgfQogICAvKiBJZiBCSVRTX0JJR19FTkRJQU4gaXMgemVy byBvbiBhIEJZVEVTX0JJR19FTkRJQU4gbWFjaGluZSwgd2UgY291bnQKICAg ICAgImJhY2t3YXJkcyIgZnJvbSB0aGUgc2l6ZSBvZiB0aGUgdW5pdCB3ZSBh cmUgaW5zZXJ0aW5nIGludG8uCiAgICAgIE90aGVyd2lzZSwgd2UgY291bnQg Yml0cyBmcm9tIHRoZSBtb3N0IHNpZ25pZmljYW50IG9uIGEK --_003_894B9D8AA7173E40BFFBBF195B8281BCB76A18SZXEMI503MBXchina_ Content-Type: application/octet-stream; name="pr61749.patch" Content-Description: pr61749.patch Content-Disposition: attachment; filename="pr61749.patch"; size=4356; creation-date="Wed, 10 Jun 2015 02:41:45 GMT"; modification-date="Wed, 10 Jun 2015 02:15:19 GMT" Content-Transfer-Encoding: base64 Content-length: 5905 SW5kZXg6IGdjYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gZ2NjL0NoYW5nZUxvZwkocmV2aXNpb24gMjIzODY3KQorKysgZ2NjL0No YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE1 LTA2LTA5ICBYaWFuZ3l1IFdlaSAgPHdlaXhpYW5neXVAaHVhd2VpLmNvbT4K KworCUJhY2twb3J0IGZyb20gbWFpbmxpbmUgcjIxNTA0NjoKKwkyMDE0LTA5 LTA5ICBLeXJ5bG8gVGthY2hvdiAgPGt5cnlsby50a2FjaG92QGFybS5jb20+ CisJUFIgdGFyZ2V0LzYxNzQ5CisJKiAgY29uZmlnL2FhcmNoNjQvYWFyY2g2 NC1idWlsdGlucy5jIChhYXJjaDY0X3R5cGVzX3F1YWRvcF9xdWFsaWZpZXJz KToKKwlVc2UgcXVhbGlmaWVyX2ltbWVkaWF0ZSBmb3IgbGFzdCBvcGVyYW5k LiAgUmVuYW1lIHRvLi4uCisJKGFhcmNoNjRfdHlwZXNfdGVybm9wX2xhbmVf cXVhbGlmaWVycyk6IC4uLiBUaGlzLgorCShUWVBFU19RVUFET1ApOiBSZW5h bWUgdG8uLi4KKwkoVFlQRVNfVEVSTk9QX0xBTkUpOiAuLi4gVGhpcy4KKwko YWFyY2g2NF9zaW1kX2V4cGFuZF9hcmdzKTogUmV0dXJuIGNvbnN0MF9ydHgg d2hlbiBlbmNvdW50ZXJpbmcgdXNlcgorCWVycm9yLiAgQ2hhbmdlIHJldHVy biBvZiAwIHRvIHJldHVybiBvZiBOVUxMX1JUWC4KKwkoYWFyY2g2NF9jcmMz Ml9leHBhbmRfYnVpbHRpbik6IExpa2V3aXNlLgorCShhYXJjaDY0X2V4cGFu ZF9idWlsdGluKTogUmV0dXJuIE5VTExfUlRYIGluc3RlYWQgb2YgMC4KKwlJ Q0Ugd2hlbiBleHBhbmRpbmcgdW5rbm93biBidWlsdGluLgorCSogY29uZmln L2FhcmNoNjQvYWFyY2g2NC1zaW1kLWJ1aWx0aW5zLmRlZiAoc3FkbWxhbF9s YW5lKTogVXNlCisJVEVSTk9QX0xBTkUgcXVhbGlmaWVycy4KKwkoc3FkbWxz bF9sYW5lKTogTGlrZXdpc2UuCisJKHNxZG1sYWxfbGFuZXEpOiBMaWtld2lz ZS4KKwkoc3FkbWxzbF9sYW5lcSk6IExpa2V3aXNlLgorCShzcWRtbGFsMl9s YW5lKTogTGlrZXdpc2UuCisJKHNxZG1sc2wyX2xhbmUpOiBMaWtld2lzZS4K Kwkoc3FkbWxhbDJfbGFuZXEpOiBMaWtld2lzZS4KKwkoc3FkbWxzbDJfbGFu ZXEpOiBMaWtld2lzZS4KKwkqIGdjYy50YXJnZXQvYWFyY2g2NC92cWRtbF9s YW5lX2ludHJpbnNpY3MtYmFkXzEuYzogTmV3IHRlc3QuCiAyMDE1LTA1LTI4 ICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgogCiAJKiBj b25maWcvbmlvczIvbGludXguaCAoQ1BQX1NQRUMpOiBEZWZpbmUuCkluZGV4 OiBnY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1idWlsdGlucy5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIGdjYy9jb25maWcvYWFyY2g2NC9hYXJj aDY0LWJ1aWx0aW5zLmMJKHJldmlzaW9uIDIyMzg2NykKKysrIGdjYy9jb25m aWcvYWFyY2g2NC9hYXJjaDY0LWJ1aWx0aW5zLmMJKHdvcmtpbmcgY29weSkK QEAgLTE3MiwxMCArMTcyLDEwIEBAIGFhcmNoNjRfdHlwZXNfdGVybm9wdV9x dWFsaWZpZXJzW1NJTURfTUFYX0JVSUxUSU5fCiAjZGVmaW5lIFRZUEVTX1RF Uk5PUFUgKGFhcmNoNjRfdHlwZXNfdGVybm9wdV9xdWFsaWZpZXJzKQogCiBz dGF0aWMgZW51bSBhYXJjaDY0X3R5cGVfcXVhbGlmaWVycwotYWFyY2g2NF90 eXBlc19xdWFkb3BfcXVhbGlmaWVyc1tTSU1EX01BWF9CVUlMVElOX0FSR1Nd CithYXJjaDY0X3R5cGVzX3Rlcm5vcF9sYW5lX3F1YWxpZmllcnNbU0lNRF9N QVhfQlVJTFRJTl9BUkdTXQogICA9IHsgcXVhbGlmaWVyX25vbmUsIHF1YWxp Zmllcl9ub25lLCBxdWFsaWZpZXJfbm9uZSwKLSAgICAgIHF1YWxpZmllcl9u b25lLCBxdWFsaWZpZXJfbm9uZSB9OwotI2RlZmluZSBUWVBFU19RVUFET1Ag KGFhcmNoNjRfdHlwZXNfcXVhZG9wX3F1YWxpZmllcnMpCisgICAgICBxdWFs aWZpZXJfbm9uZSwgcXVhbGlmaWVyX2ltbWVkaWF0ZSB9OworI2RlZmluZSBU WVBFU19URVJOT1BfTEFORSAoYWFyY2g2NF90eXBlc190ZXJub3BfbGFuZV9x dWFsaWZpZXJzKQogCiBzdGF0aWMgZW51bSBhYXJjaDY0X3R5cGVfcXVhbGlm aWVycwogYWFyY2g2NF90eXBlc19nZXRsYW5lX3F1YWxpZmllcnNbU0lNRF9N QVhfQlVJTFRJTl9BUkdTXQpAQCAtODE4LDggKzgxOCwxMSBAQCBhYXJjaDY0 X3NpbWRfZXhwYW5kX2FyZ3MgKHJ0eCB0YXJnZXQsIGludCBpY29kZSwgaQog CSAgICBjYXNlIFNJTURfQVJHX0NPTlNUQU5UOgogCSAgICAgIGlmICghKCpp bnNuX2RhdGFbaWNvZGVdLm9wZXJhbmRbYXJnYyArIGhhdmVfcmV0dmFsXS5w cmVkaWNhdGUpCiAJCSAgKG9wW2FyZ2NdLCBtb2RlW2FyZ2NdKSkKLQkJZXJy b3JfYXQgKEVYUFJfTE9DQVRJT04gKGV4cCksICJpbmNvbXBhdGlibGUgdHlw ZSBmb3IgYXJndW1lbnQgJWQsICIKKwkJeworCQkgIGVycm9yX2F0IChFWFBS X0xPQ0FUSU9OIChleHApLCAiaW5jb21wYXRpYmxlIHR5cGUgZm9yIGFyZ3Vt ZW50ICVkLCAiCiAJCSAgICAgICAiZXhwZWN0ZWQgJTxjb25zdCBpbnQlPiIs IGFyZ2MgKyAxKTsKKwkJICByZXR1cm4gY29uc3QwX3J0eDsKKwkJfQogCSAg ICAgIGJyZWFrOwogCiAJICAgIGNhc2UgU0lNRF9BUkdfU1RPUDoKQEAgLTg4 Niw3ICs4ODksNyBAQCBhYXJjaDY0X3NpbWRfZXhwYW5kX2FyZ3MgKHJ0eCB0 YXJnZXQsIGludCBpY29kZSwgaQogICAgICAgfQogCiAgIGlmICghcGF0KQot ICAgIHJldHVybiAwOworICAgIHJldHVybiBOVUxMX1JUWDsKIAogICBlbWl0 X2luc24gKHBhdCk7CiAKQEAgLTk2OCw3ICs5NzEsNyBAQCBhYXJjaDY0X2V4 cGFuZF9idWlsdGluICh0cmVlIGV4cCwKICAgaWYgKGZjb2RlID49IEFBUkNI NjRfU0lNRF9CVUlMVElOX0JBU0UpCiAgICAgcmV0dXJuIGFhcmNoNjRfc2lt ZF9leHBhbmRfYnVpbHRpbiAoZmNvZGUsIGV4cCwgdGFyZ2V0KTsKIAotICBy ZXR1cm4gTlVMTF9SVFg7CisgIGdjY191bnJlYWNoYWJsZSAoKTsKIH0KIAog dHJlZQpJbmRleDogZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC1i dWlsdGlucy5kZWYKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL2Nv bmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC1idWlsdGlucy5kZWYJKHJldmlz aW9uIDIyMzg2NykKKysrIGdjYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNp bWQtYnVpbHRpbnMuZGVmCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsMTYgKzE0 NSwxNiBAQAogICBCVUlMVElOX1ZTRFFfSV9CSFNJIChVTk9QLCBzcWFicywg MCkKICAgQlVJTFRJTl9WU0RRX0lfQkhTSSAoVU5PUCwgc3FuZWcsIDApCiAK LSAgQlVJTFRJTl9WU0RfSFNJIChRVUFET1AsIHNxZG1sYWxfbGFuZSwgMCkK LSAgQlVJTFRJTl9WU0RfSFNJIChRVUFET1AsIHNxZG1sc2xfbGFuZSwgMCkK LSAgQlVJTFRJTl9WU0RfSFNJIChRVUFET1AsIHNxZG1sYWxfbGFuZXEsIDAp Ci0gIEJVSUxUSU5fVlNEX0hTSSAoUVVBRE9QLCBzcWRtbHNsX2xhbmVxLCAw KQorQlVJTFRJTl9WU0RfSFNJIChURVJOT1BfTEFORSwgc3FkbWxhbF9sYW5l LCAwKQorQlVJTFRJTl9WU0RfSFNJIChURVJOT1BfTEFORSwgc3FkbWxzbF9s YW5lLCAwKQorQlVJTFRJTl9WU0RfSFNJIChURVJOT1BfTEFORSwgc3FkbWxh bF9sYW5lcSwgMCkKK0JVSUxUSU5fVlNEX0hTSSAoVEVSTk9QX0xBTkUsIHNx ZG1sc2xfbGFuZXEsIDApCiAgIEJVSUxUSU5fVlFfSFNJIChURVJOT1AsIHNx ZG1sYWwyLCAwKQogICBCVUlMVElOX1ZRX0hTSSAoVEVSTk9QLCBzcWRtbHNs MiwgMCkKLSAgQlVJTFRJTl9WUV9IU0kgKFFVQURPUCwgc3FkbWxhbDJfbGFu ZSwgMCkKLSAgQlVJTFRJTl9WUV9IU0kgKFFVQURPUCwgc3FkbWxzbDJfbGFu ZSwgMCkKLSAgQlVJTFRJTl9WUV9IU0kgKFFVQURPUCwgc3FkbWxhbDJfbGFu ZXEsIDApCi0gIEJVSUxUSU5fVlFfSFNJIChRVUFET1AsIHNxZG1sc2wyX2xh bmVxLCAwKQorQlVJTFRJTl9WUV9IU0kgKFRFUk5PUF9MQU5FLCBzcWRtbGFs Ml9sYW5lLCAwKSAKK0JVSUxUSU5fVlFfSFNJIChURVJOT1BfTEFORSwgc3Fk bWxzbDJfbGFuZSwgMCkgCitCVUlMVElOX1ZRX0hTSSAoVEVSTk9QX0xBTkUs IHNxZG1sYWwyX2xhbmVxLCAwKSAKK0JVSUxUSU5fVlFfSFNJIChURVJOT1Bf TEFORSwgc3FkbWxzbDJfbGFuZXEsIDApICAKICAgQlVJTFRJTl9WUV9IU0kg KFRFUk5PUCwgc3FkbWxhbDJfbiwgMCkKICAgQlVJTFRJTl9WUV9IU0kgKFRF Uk5PUCwgc3FkbWxzbDJfbiwgMCkKICAgLyogSW1wbGVtZW50ZWQgYnkgYWFy Y2g2NF9zcWRtbDxTQklOUU9QUzphcz5sPG1vZGU+LiAgKi8K --_003_894B9D8AA7173E40BFFBBF195B8281BCB76A18SZXEMI503MBXchina_--