From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id 83C473858D35 for ; Wed, 10 Jun 2020 12:36:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 83C473858D35 Received: from pps.filterd (m0098416.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 05ACWhuU155317; Wed, 10 Jun 2020 08:36:20 -0400 Received: from pps.reinject (localhost [127.0.0.1]) by mx0b-001b2d01.pphosted.com with ESMTP id 31jjxdnt0u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 10 Jun 2020 08:36:20 -0400 Received: from m0098416.ppops.net (m0098416.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 05ACWxMk156518; Wed, 10 Jun 2020 08:36:20 -0400 Received: from ppma03ams.nl.ibm.com (62.31.33a9.ip4.static.sl-reverse.com [169.51.49.98]) by mx0b-001b2d01.pphosted.com with ESMTP id 31jjxdnsyq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 10 Jun 2020 08:36:20 -0400 Received: from pps.filterd (ppma03ams.nl.ibm.com [127.0.0.1]) by ppma03ams.nl.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 05ACLQLf004706; Wed, 10 Jun 2020 12:36:18 GMT Received: from b06cxnps4075.portsmouth.uk.ibm.com (d06relay12.portsmouth.uk.ibm.com [9.149.109.197]) by ppma03ams.nl.ibm.com with ESMTP id 31g2s7ypcv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 10 Jun 2020 12:36:17 +0000 Received: from d06av26.portsmouth.uk.ibm.com (d06av26.portsmouth.uk.ibm.com [9.149.105.62]) by b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 05ACaFpR58327150 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jun 2020 12:36:15 GMT Received: from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A5A32AE055; Wed, 10 Jun 2020 12:36:15 +0000 (GMT) Received: from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B89BAAE057; Wed, 10 Jun 2020 12:36:12 +0000 (GMT) Received: from KewenLins-MacBook-Pro.local (unknown [9.200.53.22]) by d06av26.portsmouth.uk.ibm.com (Postfix) with ESMTP; Wed, 10 Jun 2020 12:36:12 +0000 (GMT) Subject: [PATCH 1/7 V3] ifn/optabs: Support vector load/store with length To: GCC Patches , richard.sandiford@arm.com References: <30906c0d-3b9f-e1e6-156f-c01fcf229cb9@linux.ibm.com> <93f9e4cf-351d-5f89-65b5-7dbc97ce13b9@linux.ibm.com> <8f64b58b-050c-2e1c-36c6-049a07eceee7@linux.ibm.com> Cc: Bill Schmidt , Richard Guenther , Segher Boessenkool , dje.gcc@gmail.com From: "Kewen.Lin" Message-ID: <99427c42-113d-7fbc-5617-f64c2317250d@linux.ibm.com> Date: Wed, 10 Jun 2020 20:36:11 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------7639EAEE6AFC8EE7C60EDD8D" Content-Language: en-US X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.687 definitions=2020-06-10_07:2020-06-10, 2020-06-10 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 cotscore=-2147483648 bulkscore=0 spamscore=0 priorityscore=1501 malwarescore=0 impostorscore=0 suspectscore=0 lowpriorityscore=0 phishscore=0 mlxscore=0 clxscore=1015 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2006100093 X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2020 12:36:25 -0000 This is a multi-part message in MIME format. --------------7639EAEE6AFC8EE7C60EDD8D Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit on 2020/6/10 下午5:22, Richard Sandiford wrote: > "Kewen.Lin" writes: >> @@ -2497,6 +2499,9 @@ expand_mask_load_optab_fn (internal_fn, gcall *stmt, convert_optab optab) >> >> if (optab == vec_mask_load_lanes_optab) >> icode = get_multi_vector_move (type, optab); >> + else if (optab == lenload_optab) >> + icode = convert_optab_handler (optab, TYPE_MODE (type), >> + targetm.vectorize.length_mode); >> else >> icode = convert_optab_handler (optab, TYPE_MODE (type), >> TYPE_MODE (TREE_TYPE (maskt))); > > I think lenload_optab should just be a direct optab, based only on > the vector mode. It seems unlikely that targets would provide the > “same” load with different length modes. Good point! Yes, targets unlikely have this need. > >> @@ -2507,15 +2512,20 @@ expand_mask_load_optab_fn (internal_fn, gcall *stmt, convert_optab optab) >> target = expand_expr (lhs, NULL_RTX, VOIDmode, EXPAND_WRITE); >> create_output_operand (&ops[0], target, TYPE_MODE (type)); >> create_fixed_operand (&ops[1], mem); >> - create_input_operand (&ops[2], mask, TYPE_MODE (TREE_TYPE (maskt))); >> + if (optab == lenload_optab) >> + create_convert_operand_from (&ops[2], mask, targetm.vectorize.length_mode, >> + TYPE_UNSIGNED (TREE_TYPE (maskt))); > > The mode argument should be TYPE_MODE (TREE_TYPE (maskt)) -- i.e. the > arguments should specify the precision and signedness of the existing rtx. > Thanks for correcting this. I found I misunderstood its usage. > Hopefully this means that we don't need the target hook at all. > New version v3 attached to get rid of length mode hook. BR, Kewen --- gcc/ChangeLog: 2020-MM-DD Kewen Lin * doc/md.texi (lenload@var{m}): Document. (lenstore@var{m}): Likewise. * internal-fn.c (len_load_direct): New macro. (len_store_direct): Likewise. (expand_len_load_optab_fn): Likewise. (expand_len_store_optab_fn): Likewise. (direct_len_load_optab_supported_p): Likewise. (direct_len_store_optab_supported_p): Likewise. (expand_mask_load_optab_fn): Add handlings for lenload_optab. (expand_mask_store_optab_fn): Add handlings for lenstore_optab. (internal_load_fn_p): Handle IFN_LEN_LOAD. (internal_store_fn_p): Handle IFN_LEN_STORE. (internal_fn_stored_value_index): Handle IFN_LEN_STORE. * internal-fn.def (LEN_LOAD): New internal function. (LEN_STORE): Likewise. * optabs.def (lenload_optab, lenstore_optab): New optab. --------------7639EAEE6AFC8EE7C60EDD8D Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="lenload_ifn_v3.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="lenload_ifn_v3.patch" LS0tCiBnY2MvZG9jL21kLnRleGkgICAgIHwgMTggKysrKysrKysrKysrKysrKysrCiBnY2Mv aW50ZXJuYWwtZm4uYyAgIHwgMjkgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIGdj Yy9pbnRlcm5hbC1mbi5kZWYgfCAgNiArKysrKysKIGdjYy9vcHRhYnMuZGVmICAgICAgfCAg MiArKwogNCBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2djYy9kb2MvbWQudGV4aSBiL2djYy9kb2MvbWQudGV4aQppbmRl eCAyYzY3YzgxOGRhNS4uZGQwZDNlYzIwM2IgMTAwNjQ0Ci0tLSBhL2djYy9kb2MvbWQudGV4 aQorKysgYi9nY2MvZG9jL21kLnRleGkKQEAgLTUxNjcsNiArNTE2NywyNCBAQCBtb2RlIEB2 YXJ7bn0uCiAKIFRoaXMgcGF0dGVybiBpcyBub3QgYWxsb3dlZCB0byBAY29kZXtGQUlMfS4K IAorQGNpbmRleCBAY29kZXtsZW5sb2FkQHZhcnttfX0gaW5zdHJ1Y3Rpb24gcGF0dGVybgor QGl0ZW0gQHNhbXB7bGVubG9hZEB2YXJ7bX19CitQZXJmb3JtIGEgdmVjdG9yIGxvYWQgd2l0 aCBsZW5ndGggZnJvbSBtZW1vcnkgb3BlcmFuZCAxIG9mIG1vZGUgQHZhcnttfQoraW50byBy ZWdpc3RlciBvcGVyYW5kIDAuICBMZW5ndGggaXMgcHJvdmlkZWQgaW4gcmVnaXN0ZXIgb3Bl cmFuZCAyIHdpdGgKK2FwcHJvcHJpYXRlIG1vZGUgd2hpY2ggc2hvdWxkIGFmZm9yZCB0aGUg bWF4aW1hbCByZXF1aXJlZCBwcmVjaXNpb24gb2YKK2FueSBhdmFpbGFibGUgbGVuZ3Rocy4K KworVGhpcyBwYXR0ZXJuIGlzIG5vdCBhbGxvd2VkIHRvIEBjb2Rle0ZBSUx9LgorCitAY2lu ZGV4IEBjb2Rle2xlbnN0b3JlQHZhcnttfX0gaW5zdHJ1Y3Rpb24gcGF0dGVybgorQGl0ZW0g QHNhbXB7bGVuc3RvcmVAdmFye219fQorUGVyZm9ybSBhIHZlY3RvciBzdG9yZSB3aXRoIGxl bmd0aCBmcm9tIHJlZ2lzdGVyIG9wZXJhbmQgMSBvZiBtb2RlIEB2YXJ7bX0KK2ludG8gbWVt b3J5IG9wZXJhbmQgMC4gIExlbmd0aCBpcyBwcm92aWRlZCBpbiByZWdpc3RlciBvcGVyYW5k IDIgd2l0aAorYXBwcm9wcmlhdGUgbW9kZSB3aGljaCBzaG91bGQgYWZmb3JkIHRoZSBtYXhp bWFsIHJlcXVpcmVkIHByZWNpc2lvbiBvZgorYW55IGF2YWlsYWJsZSBsZW5ndGhzLgorCitU aGlzIHBhdHRlcm4gaXMgbm90IGFsbG93ZWQgdG8gQGNvZGV7RkFJTH0uCisKIEBjaW5kZXgg QGNvZGV7dmVjX3Blcm1AdmFye219fSBpbnN0cnVjdGlvbiBwYXR0ZXJuCiBAaXRlbSBAc2Ft cHt2ZWNfcGVybUB2YXJ7bX19CiBPdXRwdXQgYSAodmFyaWFibGUpIHZlY3RvciBwZXJtdXRh dGlvbi4gIE9wZXJhbmQgMCBpcyB0aGUgZGVzdGluYXRpb24KZGlmZiAtLWdpdCBhL2djYy9p bnRlcm5hbC1mbi5jIGIvZ2NjL2ludGVybmFsLWZuLmMKaW5kZXggNWU5YWE2MDcyMWUuLmU4 NWRmNWNiZDkyIDEwMDY0NAotLS0gYS9nY2MvaW50ZXJuYWwtZm4uYworKysgYi9nY2MvaW50 ZXJuYWwtZm4uYwpAQCAtMTA0LDEwICsxMDQsMTIgQEAgaW5pdF9pbnRlcm5hbF9mbnMgKCkK ICNkZWZpbmUgbG9hZF9sYW5lc19kaXJlY3QgeyAtMSwgLTEsIGZhbHNlIH0KICNkZWZpbmUg bWFza19sb2FkX2xhbmVzX2RpcmVjdCB7IC0xLCAtMSwgZmFsc2UgfQogI2RlZmluZSBnYXRo ZXJfbG9hZF9kaXJlY3QgeyAzLCAxLCBmYWxzZSB9CisjZGVmaW5lIGxlbl9sb2FkX2RpcmVj dCB7IC0xLCAyLCBmYWxzZSB9CiAjZGVmaW5lIG1hc2tfc3RvcmVfZGlyZWN0IHsgMywgMiwg ZmFsc2UgfQogI2RlZmluZSBzdG9yZV9sYW5lc19kaXJlY3QgeyAwLCAwLCBmYWxzZSB9CiAj ZGVmaW5lIG1hc2tfc3RvcmVfbGFuZXNfZGlyZWN0IHsgMCwgMCwgZmFsc2UgfQogI2RlZmlu ZSBzY2F0dGVyX3N0b3JlX2RpcmVjdCB7IDMsIDEsIGZhbHNlIH0KKyNkZWZpbmUgbGVuX3N0 b3JlX2RpcmVjdCB7IDMsIDIsIGZhbHNlIH0KICNkZWZpbmUgdW5hcnlfZGlyZWN0IHsgMCwg MCwgdHJ1ZSB9CiAjZGVmaW5lIGJpbmFyeV9kaXJlY3QgeyAwLCAwLCB0cnVlIH0KICNkZWZp bmUgdGVybmFyeV9kaXJlY3QgeyAwLCAwLCB0cnVlIH0KQEAgLTI0NzgsNyArMjQ4MCw3IEBA IGV4cGFuZF9jYWxsX21lbV9yZWYgKHRyZWUgdHlwZSwgZ2NhbGwgKnN0bXQsIGludCBpbmRl eCkKICAgcmV0dXJuIGZvbGRfYnVpbGQyIChNRU1fUkVGLCB0eXBlLCBhZGRyLCBidWlsZF9p bnRfY3N0IChhbGlhc19wdHJfdHlwZSwgMCkpOwogfQogCi0vKiBFeHBhbmQgTUFTS19MT0FE eyxfTEFORVN9IGNhbGwgU1RNVCB1c2luZyBvcHRhYiBPUFRBQi4gICovCisvKiBFeHBhbmQg TUFTS19MT0FEeyxfTEFORVN9IGFuZCBMRU5fTE9BRCBjYWxsIFNUTVQgdXNpbmcgb3B0YWIg T1BUQUIuICAqLwogCiBzdGF0aWMgdm9pZAogZXhwYW5kX21hc2tfbG9hZF9vcHRhYl9mbiAo aW50ZXJuYWxfZm4sIGdjYWxsICpzdG10LCBjb252ZXJ0X29wdGFiIG9wdGFiKQpAQCAtMjQ5 Nyw2ICsyNDk5LDggQEAgZXhwYW5kX21hc2tfbG9hZF9vcHRhYl9mbiAoaW50ZXJuYWxfZm4s IGdjYWxsICpzdG10LCBjb252ZXJ0X29wdGFiIG9wdGFiKQogCiAgIGlmIChvcHRhYiA9PSB2 ZWNfbWFza19sb2FkX2xhbmVzX29wdGFiKQogICAgIGljb2RlID0gZ2V0X211bHRpX3ZlY3Rv cl9tb3ZlICh0eXBlLCBvcHRhYik7CisgIGVsc2UgaWYgKG9wdGFiID09IGxlbmxvYWRfb3B0 YWIpCisgICAgaWNvZGUgPSBkaXJlY3Rfb3B0YWJfaGFuZGxlciAob3B0YWIsIFRZUEVfTU9E RSAodHlwZSkpOwogICBlbHNlCiAgICAgaWNvZGUgPSBjb252ZXJ0X29wdGFiX2hhbmRsZXIg KG9wdGFiLCBUWVBFX01PREUgKHR5cGUpLAogCQkJCSAgIFRZUEVfTU9ERSAoVFJFRV9UWVBF IChtYXNrdCkpKTsKQEAgLTI1MDcsMTUgKzI1MTEsMjAgQEAgZXhwYW5kX21hc2tfbG9hZF9v cHRhYl9mbiAoaW50ZXJuYWxfZm4sIGdjYWxsICpzdG10LCBjb252ZXJ0X29wdGFiIG9wdGFi KQogICB0YXJnZXQgPSBleHBhbmRfZXhwciAobGhzLCBOVUxMX1JUWCwgVk9JRG1vZGUsIEVY UEFORF9XUklURSk7CiAgIGNyZWF0ZV9vdXRwdXRfb3BlcmFuZCAoJm9wc1swXSwgdGFyZ2V0 LCBUWVBFX01PREUgKHR5cGUpKTsKICAgY3JlYXRlX2ZpeGVkX29wZXJhbmQgKCZvcHNbMV0s IG1lbSk7Ci0gIGNyZWF0ZV9pbnB1dF9vcGVyYW5kICgmb3BzWzJdLCBtYXNrLCBUWVBFX01P REUgKFRSRUVfVFlQRSAobWFza3QpKSk7CisgIGlmIChvcHRhYiA9PSBsZW5sb2FkX29wdGFi KQorICAgIGNyZWF0ZV9jb252ZXJ0X29wZXJhbmRfZnJvbSAoJm9wc1syXSwgbWFzaywgVFlQ RV9NT0RFIChUUkVFX1RZUEUgKG1hc2t0KSksCisJCQkJIFRZUEVfVU5TSUdORUQgKFRSRUVf VFlQRSAobWFza3QpKSk7CisgIGVsc2UKKyAgICBjcmVhdGVfaW5wdXRfb3BlcmFuZCAoJm9w c1syXSwgbWFzaywgVFlQRV9NT0RFIChUUkVFX1RZUEUgKG1hc2t0KSkpOwogICBleHBhbmRf aW5zbiAoaWNvZGUsIDMsIG9wcyk7CiAgIGlmICghcnR4X2VxdWFsX3AgKHRhcmdldCwgb3Bz WzBdLnZhbHVlKSkKICAgICBlbWl0X21vdmVfaW5zbiAodGFyZ2V0LCBvcHNbMF0udmFsdWUp OwogfQogCiAjZGVmaW5lIGV4cGFuZF9tYXNrX2xvYWRfbGFuZXNfb3B0YWJfZm4gZXhwYW5k X21hc2tfbG9hZF9vcHRhYl9mbgorI2RlZmluZSBleHBhbmRfbGVuX2xvYWRfb3B0YWJfZm4g ZXhwYW5kX21hc2tfbG9hZF9vcHRhYl9mbgogCi0vKiBFeHBhbmQgTUFTS19TVE9SRXssX0xB TkVTfSBjYWxsIFNUTVQgdXNpbmcgb3B0YWIgT1BUQUIuICAqLworLyogRXhwYW5kIE1BU0tf U1RPUkV7LF9MQU5FU30gYW5kIExFTl9TVE9SRSBjYWxsIFNUTVQgdXNpbmcgb3B0YWIgT1BU QUIuICAqLwogCiBzdGF0aWMgdm9pZAogZXhwYW5kX21hc2tfc3RvcmVfb3B0YWJfZm4gKGlu dGVybmFsX2ZuLCBnY2FsbCAqc3RtdCwgY29udmVydF9vcHRhYiBvcHRhYikKQEAgLTI1MzIs NiArMjU0MSw4IEBAIGV4cGFuZF9tYXNrX3N0b3JlX29wdGFiX2ZuIChpbnRlcm5hbF9mbiwg Z2NhbGwgKnN0bXQsIGNvbnZlcnRfb3B0YWIgb3B0YWIpCiAKICAgaWYgKG9wdGFiID09IHZl Y19tYXNrX3N0b3JlX2xhbmVzX29wdGFiKQogICAgIGljb2RlID0gZ2V0X211bHRpX3ZlY3Rv cl9tb3ZlICh0eXBlLCBvcHRhYik7CisgIGVsc2UgaWYgKG9wdGFiID09IGxlbnN0b3JlX29w dGFiKQorICAgIGljb2RlID0gZGlyZWN0X29wdGFiX2hhbmRsZXIgKG9wdGFiLCBUWVBFX01P REUgKHR5cGUpKTsKICAgZWxzZQogICAgIGljb2RlID0gY29udmVydF9vcHRhYl9oYW5kbGVy IChvcHRhYiwgVFlQRV9NT0RFICh0eXBlKSwKIAkJCQkgICBUWVBFX01PREUgKFRSRUVfVFlQ RSAobWFza3QpKSk7CkBAIC0yNTQyLDExICsyNTUzLDE2IEBAIGV4cGFuZF9tYXNrX3N0b3Jl X29wdGFiX2ZuIChpbnRlcm5hbF9mbiwgZ2NhbGwgKnN0bXQsIGNvbnZlcnRfb3B0YWIgb3B0 YWIpCiAgIHJlZyA9IGV4cGFuZF9ub3JtYWwgKHJocyk7CiAgIGNyZWF0ZV9maXhlZF9vcGVy YW5kICgmb3BzWzBdLCBtZW0pOwogICBjcmVhdGVfaW5wdXRfb3BlcmFuZCAoJm9wc1sxXSwg cmVnLCBUWVBFX01PREUgKHR5cGUpKTsKLSAgY3JlYXRlX2lucHV0X29wZXJhbmQgKCZvcHNb Ml0sIG1hc2ssIFRZUEVfTU9ERSAoVFJFRV9UWVBFIChtYXNrdCkpKTsKKyAgaWYgKG9wdGFi ID09IGxlbnN0b3JlX29wdGFiKQorICAgIGNyZWF0ZV9jb252ZXJ0X29wZXJhbmRfZnJvbSAo Jm9wc1syXSwgbWFzaywgVFlQRV9NT0RFIChUUkVFX1RZUEUgKG1hc2t0KSksCisJCQkJIFRZ UEVfVU5TSUdORUQgKFRSRUVfVFlQRSAobWFza3QpKSk7CisgIGVsc2UKKyAgICBjcmVhdGVf aW5wdXRfb3BlcmFuZCAoJm9wc1syXSwgbWFzaywgVFlQRV9NT0RFIChUUkVFX1RZUEUgKG1h c2t0KSkpOwogICBleHBhbmRfaW5zbiAoaWNvZGUsIDMsIG9wcyk7CiB9CiAKICNkZWZpbmUg ZXhwYW5kX21hc2tfc3RvcmVfbGFuZXNfb3B0YWJfZm4gZXhwYW5kX21hc2tfc3RvcmVfb3B0 YWJfZm4KKyNkZWZpbmUgZXhwYW5kX2xlbl9zdG9yZV9vcHRhYl9mbiBleHBhbmRfbWFza19z dG9yZV9vcHRhYl9mbgogCiBzdGF0aWMgdm9pZAogZXhwYW5kX0FCTk9STUFMX0RJU1BBVENI RVIgKGludGVybmFsX2ZuLCBnY2FsbCAqKQpAQCAtMzEyOCwxMCArMzE0NCwxMiBAQCBtdWx0 aV92ZWN0b3Jfb3B0YWJfc3VwcG9ydGVkX3AgKGNvbnZlcnRfb3B0YWIgb3B0YWIsIHRyZWVf cGFpciB0eXBlcywKICNkZWZpbmUgZGlyZWN0X2xvYWRfbGFuZXNfb3B0YWJfc3VwcG9ydGVk X3AgbXVsdGlfdmVjdG9yX29wdGFiX3N1cHBvcnRlZF9wCiAjZGVmaW5lIGRpcmVjdF9tYXNr X2xvYWRfbGFuZXNfb3B0YWJfc3VwcG9ydGVkX3AgbXVsdGlfdmVjdG9yX29wdGFiX3N1cHBv cnRlZF9wCiAjZGVmaW5lIGRpcmVjdF9nYXRoZXJfbG9hZF9vcHRhYl9zdXBwb3J0ZWRfcCBj b252ZXJ0X29wdGFiX3N1cHBvcnRlZF9wCisjZGVmaW5lIGRpcmVjdF9sZW5fbG9hZF9vcHRh Yl9zdXBwb3J0ZWRfcCBkaXJlY3Rfb3B0YWJfc3VwcG9ydGVkX3AKICNkZWZpbmUgZGlyZWN0 X21hc2tfc3RvcmVfb3B0YWJfc3VwcG9ydGVkX3AgZGlyZWN0X29wdGFiX3N1cHBvcnRlZF9w CiAjZGVmaW5lIGRpcmVjdF9zdG9yZV9sYW5lc19vcHRhYl9zdXBwb3J0ZWRfcCBtdWx0aV92 ZWN0b3Jfb3B0YWJfc3VwcG9ydGVkX3AKICNkZWZpbmUgZGlyZWN0X21hc2tfc3RvcmVfbGFu ZXNfb3B0YWJfc3VwcG9ydGVkX3AgbXVsdGlfdmVjdG9yX29wdGFiX3N1cHBvcnRlZF9wCiAj ZGVmaW5lIGRpcmVjdF9zY2F0dGVyX3N0b3JlX29wdGFiX3N1cHBvcnRlZF9wIGNvbnZlcnRf b3B0YWJfc3VwcG9ydGVkX3AKKyNkZWZpbmUgZGlyZWN0X2xlbl9zdG9yZV9vcHRhYl9zdXBw b3J0ZWRfcCBkaXJlY3Rfb3B0YWJfc3VwcG9ydGVkX3AKICNkZWZpbmUgZGlyZWN0X3doaWxl X29wdGFiX3N1cHBvcnRlZF9wIGNvbnZlcnRfb3B0YWJfc3VwcG9ydGVkX3AKICNkZWZpbmUg ZGlyZWN0X2ZvbGRfZXh0cmFjdF9vcHRhYl9zdXBwb3J0ZWRfcCBkaXJlY3Rfb3B0YWJfc3Vw cG9ydGVkX3AKICNkZWZpbmUgZGlyZWN0X2ZvbGRfbGVmdF9vcHRhYl9zdXBwb3J0ZWRfcCBk aXJlY3Rfb3B0YWJfc3VwcG9ydGVkX3AKQEAgLTM0OTgsNiArMzUxNiw3IEBAIGludGVybmFs X2xvYWRfZm5fcCAoaW50ZXJuYWxfZm4gZm4pCiAgICAgY2FzZSBJRk5fTUFTS19MT0FEX0xB TkVTOgogICAgIGNhc2UgSUZOX0dBVEhFUl9MT0FEOgogICAgIGNhc2UgSUZOX01BU0tfR0FU SEVSX0xPQUQ6CisgICAgY2FzZSBJRk5fTEVOX0xPQUQ6CiAgICAgICByZXR1cm4gdHJ1ZTsK IAogICAgIGRlZmF1bHQ6CkBAIC0zNTE3LDYgKzM1MzYsNyBAQCBpbnRlcm5hbF9zdG9yZV9m bl9wIChpbnRlcm5hbF9mbiBmbikKICAgICBjYXNlIElGTl9NQVNLX1NUT1JFX0xBTkVTOgog ICAgIGNhc2UgSUZOX1NDQVRURVJfU1RPUkU6CiAgICAgY2FzZSBJRk5fTUFTS19TQ0FUVEVS X1NUT1JFOgorICAgIGNhc2UgSUZOX0xFTl9TVE9SRToKICAgICAgIHJldHVybiB0cnVlOwog CiAgICAgZGVmYXVsdDoKQEAgLTM1NzcsNiArMzU5Nyw3IEBAIGludGVybmFsX2ZuX3N0b3Jl ZF92YWx1ZV9pbmRleCAoaW50ZXJuYWxfZm4gZm4pCiAgICAgY2FzZSBJRk5fTUFTS19TVE9S RToKICAgICBjYXNlIElGTl9TQ0FUVEVSX1NUT1JFOgogICAgIGNhc2UgSUZOX01BU0tfU0NB VFRFUl9TVE9SRToKKyAgICBjYXNlIElGTl9MRU5fU1RPUkU6CiAgICAgICByZXR1cm4gMzsK IAogICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9nY2MvaW50ZXJuYWwtZm4uZGVmIGIvZ2Nj L2ludGVybmFsLWZuLmRlZgppbmRleCAxZDE5MGQ0OTJmZi4uZWQ2NTYxZjI5NmEgMTAwNjQ0 Ci0tLSBhL2djYy9pbnRlcm5hbC1mbi5kZWYKKysrIGIvZ2NjL2ludGVybmFsLWZuLmRlZgpA QCAtNDksMTEgKzQ5LDEzIEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlO RzMuICBJZiBub3Qgc2VlCiAgICAtIGxvYWRfbGFuZXM6IGN1cnJlbnRseSBqdXN0IHZlY19s b2FkX2xhbmVzCiAgICAtIG1hc2tfbG9hZF9sYW5lczogY3VycmVudGx5IGp1c3QgdmVjX21h c2tfbG9hZF9sYW5lcwogICAgLSBnYXRoZXJfbG9hZDogdXNlZCBmb3Ige21hc2tfLH1nYXRo ZXJfbG9hZAorICAgLSBsZW5fbG9hZDogY3VycmVudGx5IGp1c3QgbGVubG9hZAogCiAgICAt IG1hc2tfc3RvcmU6IGN1cnJlbnRseSBqdXN0IG1hc2tzdG9yZQogICAgLSBzdG9yZV9sYW5l czogY3VycmVudGx5IGp1c3QgdmVjX3N0b3JlX2xhbmVzCiAgICAtIG1hc2tfc3RvcmVfbGFu ZXM6IGN1cnJlbnRseSBqdXN0IHZlY19tYXNrX3N0b3JlX2xhbmVzCiAgICAtIHNjYXR0ZXJf c3RvcmU6IHVzZWQgZm9yIHttYXNrXyx9c2NhdHRlcl9zdG9yZQorICAgLSBsZW5fc3RvcmU6 IGN1cnJlbnRseSBqdXN0IGxlbnN0b3JlCiAKICAgIC0gdW5hcnk6IGEgbm9ybWFsIHVuYXJ5 IG9wdGFiLCBzdWNoIGFzIHZlY19yZXZlcnNlXzxtb2RlPgogICAgLSBiaW5hcnk6IGEgbm9y bWFsIGJpbmFyeSBvcHRhYiwgc3VjaCBhcyB2ZWNfaW50ZXJsZWF2ZV9sb188bW9kZT4KQEAg LTEyNyw2ICsxMjksOCBAQCBERUZfSU5URVJOQUxfT1BUQUJfRk4gKEdBVEhFUl9MT0FELCBF Q0ZfUFVSRSwgZ2F0aGVyX2xvYWQsIGdhdGhlcl9sb2FkKQogREVGX0lOVEVSTkFMX09QVEFC X0ZOIChNQVNLX0dBVEhFUl9MT0FELCBFQ0ZfUFVSRSwKIAkJICAgICAgIG1hc2tfZ2F0aGVy X2xvYWQsIGdhdGhlcl9sb2FkKQogCitERUZfSU5URVJOQUxfT1BUQUJfRk4gKExFTl9MT0FE LCBFQ0ZfUFVSRSwgbGVubG9hZCwgbGVuX2xvYWQpCisKIERFRl9JTlRFUk5BTF9PUFRBQl9G TiAoU0NBVFRFUl9TVE9SRSwgMCwgc2NhdHRlcl9zdG9yZSwgc2NhdHRlcl9zdG9yZSkKIERF Rl9JTlRFUk5BTF9PUFRBQl9GTiAoTUFTS19TQ0FUVEVSX1NUT1JFLCAwLAogCQkgICAgICAg bWFza19zY2F0dGVyX3N0b3JlLCBzY2F0dGVyX3N0b3JlKQpAQCAtMTM2LDYgKzE0MCw4IEBA IERFRl9JTlRFUk5BTF9PUFRBQl9GTiAoU1RPUkVfTEFORVMsIEVDRl9DT05TVCwgdmVjX3N0 b3JlX2xhbmVzLCBzdG9yZV9sYW5lcykKIERFRl9JTlRFUk5BTF9PUFRBQl9GTiAoTUFTS19T VE9SRV9MQU5FUywgMCwKIAkJICAgICAgIHZlY19tYXNrX3N0b3JlX2xhbmVzLCBtYXNrX3N0 b3JlX2xhbmVzKQogCitERUZfSU5URVJOQUxfT1BUQUJfRk4gKExFTl9TVE9SRSwgMCwgbGVu c3RvcmUsIGxlbl9zdG9yZSkKKwogREVGX0lOVEVSTkFMX09QVEFCX0ZOIChXSElMRV9VTFQs IEVDRl9DT05TVCB8IEVDRl9OT1RIUk9XLCB3aGlsZV91bHQsIHdoaWxlKQogREVGX0lOVEVS TkFMX09QVEFCX0ZOIChDSEVDS19SQVdfUFRSUywgRUNGX0NPTlNUIHwgRUNGX05PVEhST1cs CiAJCSAgICAgICBjaGVja19yYXdfcHRycywgY2hlY2tfcHRycykKZGlmZiAtLWdpdCBhL2dj Yy9vcHRhYnMuZGVmIGIvZ2NjL29wdGFicy5kZWYKaW5kZXggMGM2NGViNTJhOGQuLjlmZTRh YzE4NDBkIDEwMDY0NAotLS0gYS9nY2Mvb3B0YWJzLmRlZgorKysgYi9nY2Mvb3B0YWJzLmRl ZgpAQCAtNDM1LDMgKzQzNSw1IEBAIE9QVEFCX0QgKGNoZWNrX3dhcl9wdHJzX29wdGFiLCAi Y2hlY2tfd2FyX3B0cnMkYSIpCiBPUFRBQl9EQyAodmVjX2R1cGxpY2F0ZV9vcHRhYiwgInZl Y19kdXBsaWNhdGUkYSIsIFZFQ19EVVBMSUNBVEUpCiBPUFRBQl9EQyAodmVjX3Nlcmllc19v cHRhYiwgInZlY19zZXJpZXMkYSIsIFZFQ19TRVJJRVMpCiBPUFRBQl9EICh2ZWNfc2hsX2lu c2VydF9vcHRhYiwgInZlY19zaGxfaW5zZXJ0XyRhIikKK09QVEFCX0QgKGxlbmxvYWRfb3B0 YWIsICJsZW5sb2FkJGEiKQorT1BUQUJfRCAobGVuc3RvcmVfb3B0YWIsICJsZW5zdG9yZSRh IikKLS0gCgo= --------------7639EAEE6AFC8EE7C60EDD8D--