From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id E35D03858D28 for ; Tue, 27 Jun 2023 18:56:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E35D03858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com Received: from pps.filterd (m0353726.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35RIl9a2003401; Tue, 27 Jun 2023 18:56:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=content-type : message-id : date : mime-version : subject : to : references : from : in-reply-to; s=pp1; bh=w1x3M05+swlKTDN6OU+FP7xxPJkj8kxZ+oyJxUlHhkk=; b=GvKz2P4x+tH1tm3ZvBX7DVK/bIV6twZGcz3G0YSSg62id7EjpG61U+GpiPZfJwOSUeTz 8ytngUb5Jen5paVHdX7G+njD2barJ0WnrErthOb8qiGx3KIh7PtjjFPlCK/jWtcmoXpR jGDygrVKGEAMymfLOe68KcXCeXGlCHzAXS+oQp72Qo8mnHD30JDAa1OZx+Pv2wgbYMfW QtLlymz51HTK6pLPgS45ZubCIh3HBarbWliFXQKe7H9p5mLqt62uAWZjXRYH20dJZGcn whcG2PSlYSH/pwxlIv2coFTtd7B0lwZTyB79a20QpSkF5rtZS5c867d8leaaC+csC1MU iw== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3rg5bmr5jd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 27 Jun 2023 18:56:09 +0000 Received: from m0353726.ppops.net (m0353726.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 35RIpKIr014407; Tue, 27 Jun 2023 18:56:09 GMT Received: from ppma01dal.us.ibm.com (83.d6.3fa9.ip4.static.sl-reverse.com [169.63.214.131]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3rg5bmr5j1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 27 Jun 2023 18:56:09 +0000 Received: from pps.filterd (ppma01dal.us.ibm.com [127.0.0.1]) by ppma01dal.us.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 35RIEFSf011027; Tue, 27 Jun 2023 18:56:08 GMT Received: from smtprelay02.dal12v.mail.ibm.com ([9.208.130.97]) by ppma01dal.us.ibm.com (PPS) with ESMTPS id 3rdr46uybw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 27 Jun 2023 18:56:08 +0000 Received: from smtpav04.wdc07v.mail.ibm.com (smtpav04.wdc07v.mail.ibm.com [10.39.53.231]) by smtprelay02.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 35RIu6KF15598158 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 27 Jun 2023 18:56:07 GMT Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C977258045; Tue, 27 Jun 2023 18:56:06 +0000 (GMT) Received: from smtpav04.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0DD8858052; Tue, 27 Jun 2023 18:56:06 +0000 (GMT) Received: from [9.67.139.18] (unknown [9.67.139.18]) by smtpav04.wdc07v.mail.ibm.com (Postfix) with ESMTPS; Tue, 27 Jun 2023 18:56:05 +0000 (GMT) Content-Type: multipart/mixed; boundary="------------XcWlNi5e3CGAXT8FUw7tSJV7" Message-ID: Date: Tue, 27 Jun 2023 13:56:04 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH V3, rs6000] Disable generation of scalar modulo instructions Content-Language: en-US To: GCC Patches , Segher Boessenkool , "Kewen.Lin" , Peter Bergner , David Edelsohn References: <68d7fbb3-59b3-6a59-a8ac-773d5d9c6817@linux.ibm.com> From: Pat Haugen In-Reply-To: <68d7fbb3-59b3-6a59-a8ac-773d5d9c6817@linux.ibm.com> X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: ez-FJ4y0QoyVuJxoUiGcM0HrDeMVyWxR X-Proofpoint-GUID: _1bchrE1REZgJtIiVgTcxWcrKXqGgh7B X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-06-27_12,2023-06-27_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 bulkscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 clxscore=1015 adultscore=0 mlxlogscore=999 priorityscore=1501 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306270168 X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,NICE_REPLY_A,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------XcWlNi5e3CGAXT8FUw7tSJV7 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 6/27/23 1:52 PM, Pat Haugen via Gcc-patches wrote: > Updated from prior version to address review comments (update > rs6000_rtx_cost, > update scan strings of mod-1.c/mod-2.c)l. > > Disable generation of scalar modulo instructions. > > It was recently discovered that the scalar modulo instructions can suffer > noticeable performance issues for certain input values. This patch disables > their generation since the equivalent div/mul/sub sequence does not suffer > the same problem. > > Bootstrapped and regression tested on powerpc64/powerpc64le. > Ok for master and backports after burn in? > > -Pat > > > 2023-06-27  Pat Haugen  > > gcc/ >     * config/rs6000/rs6000.cc (rs6000_rtx_costs): Check if disabling >     scalar modulo. >     * config/rs6000/rs6000.h (RS6000_DISABLE_SCALAR_MODULO): New. >     * config/rs6000/rs6000.md (mod3, *mod3): Disable. >     (define_expand umod3): New. >     (define_insn umod3): Rename to *umod3 and disable. >     (umodti3, modti3): Disable. > > gcc/testsuite/ >     * gcc.target/powerpc/clone1.c: Add xfails. >     * gcc.target/powerpc/clone3.c: Likewise. >     * gcc.target/powerpc/mod-1.c: Update scan strings and add xfails. >     * gcc.target/powerpc/mod-2.c: Likewise. >     * gcc.target/powerpc/p10-vdivq-vmodq.c: Add xfails. > Attaching patch since my mailer apparently messed up some formatting again. -Pat --------------XcWlNi5e3CGAXT8FUw7tSJV7 Content-Type: text/plain; charset=UTF-8; name="no-modulo.diff" Content-Disposition: attachment; filename="no-modulo.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5jYyBiL2djYy9jb25maWcv cnM2MDAwL3JzNjAwMC5jYwppbmRleCA1NDZjMzUzMDI5Yi4uMmRhZTIxN2JmNjQgMTAwNjQ0 Ci0tLSBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5jYworKysgYi9nY2MvY29uZmlnL3Jz NjAwMC9yczYwMDAuY2MKQEAgLTIyMTI3LDcgKzIyMTI3LDkgQEAgcnM2MDAwX3J0eF9jb3N0 cyAocnR4IHgsIG1hY2hpbmVfbW9kZSBtb2RlLCBpbnQgb3V0ZXJfY29kZSwKIAkgICAgKnRv dGFsID0gcnM2MDAwX2Nvc3QtPmRpdnNpOwogCX0KICAgICAgIC8qIEFkZCBpbiBzaGlmdCBh bmQgc3VidHJhY3QgZm9yIE1PRCB1bmxlc3Mgd2UgaGF2ZSBhIG1vZCBpbnN0cnVjdGlvbi4g Ki8KLSAgICAgIGlmICghVEFSR0VUX01PRFVMTyAmJiAoY29kZSA9PSBNT0QgfHwgY29kZSA9 PSBVTU9EKSkKKyAgICAgIGlmICgoIVRBUkdFVF9NT0RVTE8KKwkgICB8fCAoUlM2MDAwX0RJ U0FCTEVfU0NBTEFSX01PRFVMTyAmJiBTQ0FMQVJfSU5UX01PREVfUCAobW9kZSkpKQorCSAm JiAoY29kZSA9PSBNT0QgfHwgY29kZSA9PSBVTU9EKSkKIAkqdG90YWwgKz0gQ09TVFNfTl9J TlNOUyAoMik7CiAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvcnM2MDAwL3JzNjAwMC5oIGIvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmgKaW5kZXgg MzUwMzYxNGVmYmQuLjIyNTk1ZjZlYmQ3IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3JzNjAw MC9yczYwMDAuaAorKysgYi9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuaApAQCAtMjQ5Miwz ICsyNDkyLDkgQEAgd2hpbGUgKDApCiAgICAgICAgcnM2MDAwX2FzbV9vdXRwdXRfb3Bjb2Rl IChTVFJFQU0pOwkJCQlcCiAgICAgfQkJCQkJCQkJCVwKICAgd2hpbGUgKDApCisKKy8qIERp c2FibGUgZ2VuZXJhdGlvbiBvZiBzY2FsYXIgbW9kdWxvIGluc3RydWN0aW9ucyBkdWUgdG8g cGVyZm9ybWFuY2UgaXNzdWVzCisgICB3aXRoIGNlcnRhaW4gaW5wdXQgdmFsdWVzLiAgVGhp cyBjYW4gYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlIHdoZW4gdGhlCisgICBpc3N1ZXMgaGF2 ZSBiZWVuIHJlc29sdmVkLiAgKi8KKyNkZWZpbmUgUlM2MDAwX0RJU0FCTEVfU0NBTEFSX01P RFVMTyAxCisKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5tZCBiL2dj Yy9jb25maWcvcnM2MDAwL3JzNjAwMC5tZAppbmRleCBiMGRiOGFlNTA4ZC4uNmMyZjIzN2E1 MzkgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5tZAorKysgYi9nY2Mv Y29uZmlnL3JzNjAwMC9yczYwMDAubWQKQEAgLTM0MjEsNiArMzQyMSwxNyBAQCAoZGVmaW5l X2V4cGFuZCAibW9kPG1vZGU+MyIKIAlGQUlMOwogCiAgICAgICBvcGVyYW5kc1syXSA9IGZv cmNlX3JlZyAoPE1PREU+bW9kZSwgb3BlcmFuZHNbMl0pOworCisgICAgICBpZiAoUlM2MDAw X0RJU0FCTEVfU0NBTEFSX01PRFVMTykKKwl7CisJICB0ZW1wMSA9IGdlbl9yZWdfcnR4ICg8 TU9ERT5tb2RlKTsKKwkgIHRlbXAyID0gZ2VuX3JlZ19ydHggKDxNT0RFPm1vZGUpOworCisJ ICBlbWl0X2luc24gKGdlbl9kaXY8bW9kZT4zICh0ZW1wMSwgb3BlcmFuZHNbMV0sIG9wZXJh bmRzWzJdKSk7CisJICBlbWl0X2luc24gKGdlbl9tdWw8bW9kZT4zICh0ZW1wMiwgdGVtcDEs IG9wZXJhbmRzWzJdKSk7CisJICBlbWl0X2luc24gKGdlbl9zdWI8bW9kZT4zIChvcGVyYW5k c1swXSwgb3BlcmFuZHNbMV0sIHRlbXAyKSk7CisJICBET05FOworCX0KICAgICB9CiAgIGVs c2UKICAgICB7CkBAIC0zNDQwLDE3ICszNDUxLDQyIEBAIChkZWZpbmVfaW5zbiAiKm1vZDxt b2RlPjMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkdQUiAwICJncGNfcmVnX29wZXJhbmQi ICI9JnIsciIpCiAgICAgICAgIChtb2Q6R1BSIChtYXRjaF9vcGVyYW5kOkdQUiAxICJncGNf cmVnX29wZXJhbmQiICJyLHIiKQogCQkgKG1hdGNoX29wZXJhbmQ6R1BSIDIgImdwY19yZWdf b3BlcmFuZCIgInIsciIpKSldCi0gICJUQVJHRVRfTU9EVUxPIgorICAiVEFSR0VUX01PRFVM TyAmJiAhUlM2MDAwX0RJU0FCTEVfU0NBTEFSX01PRFVMTyIKICAgIm1vZHM8d2Q+ICUwLCUx LCUyIgogICBbKHNldF9hdHRyICJ0eXBlIiAiZGl2IikKICAgIChzZXRfYXR0ciAic2l6ZSIg IjxiaXRzPiIpXSkKIAorOzsgVGhpcyBkZWZpbmVfZXhwYW5kIGNhbiBiZSByZW1vdmVkIHdo ZW4gUlM2MDAwX0RJU0FCTEVfU0NBTEFSX01PRFVMTyBpcworOzsgcmVtb3ZlZC4KKyhkZWZp bmVfZXhwYW5kICJ1bW9kPG1vZGU+MyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6R1BSIDAg ImdwY19yZWdfb3BlcmFuZCIpCisJKHVtb2Q6R1BSIChtYXRjaF9vcGVyYW5kOkdQUiAxICJn cGNfcmVnX29wZXJhbmQiKQorCQkgIChtYXRjaF9vcGVyYW5kOkdQUiAyICJncGNfcmVnX29w ZXJhbmQiKSkpXQorICAiIgoreworICBydHggdGVtcDE7CisgIHJ0eCB0ZW1wMjsKKworICBp ZiAoIVRBUkdFVF9NT0RVTE8pCisJRkFJTDsKIAotKGRlZmluZV9pbnNuICJ1bW9kPG1vZGU+ MyIKKyAgaWYgKFJTNjAwMF9ESVNBQkxFX1NDQUxBUl9NT0RVTE8pCisgICAgeworICAgICAg dGVtcDEgPSBnZW5fcmVnX3J0eCAoPE1PREU+bW9kZSk7CisgICAgICB0ZW1wMiA9IGdlbl9y ZWdfcnR4ICg8TU9ERT5tb2RlKTsKKworICAgICAgZW1pdF9pbnNuIChnZW5fdWRpdjxtb2Rl PjMgKHRlbXAxLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0pKTsKKyAgICAgIGVtaXRfaW5z biAoZ2VuX211bDxtb2RlPjMgKHRlbXAyLCB0ZW1wMSwgb3BlcmFuZHNbMl0pKTsKKyAgICAg IGVtaXRfaW5zbiAoZ2VuX3N1Yjxtb2RlPjMgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwg dGVtcDIpKTsKKyAgICAgIERPTkU7CisgICAgfQorfSkKKworKGRlZmluZV9pbnNuICIqdW1v ZDxtb2RlPjMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkdQUiAwICJncGNfcmVnX29wZXJh bmQiICI9JnIsciIpCiAgICAgICAgICh1bW9kOkdQUiAobWF0Y2hfb3BlcmFuZDpHUFIgMSAi Z3BjX3JlZ19vcGVyYW5kIiAicixyIikKIAkJICAobWF0Y2hfb3BlcmFuZDpHUFIgMiAiZ3Bj X3JlZ19vcGVyYW5kIiAicixyIikpKV0KLSAgIlRBUkdFVF9NT0RVTE8iCisgICJUQVJHRVRf TU9EVUxPICYmICFSUzYwMDBfRElTQUJMRV9TQ0FMQVJfTU9EVUxPIgogICAibW9kdTx3ZD4g JTAsJTEsJTIiCiAgIFsoc2V0X2F0dHIgInR5cGUiICJkaXYiKQogICAgKHNldF9hdHRyICJz aXplIiAiPGJpdHM+IildKQpAQCAtMzUwNyw3ICszNTQzLDcgQEAgKGRlZmluZV9pbnNuICJ1 bW9kdGkzIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpUSSAwICJhbHRpdmVjX3JlZ2lzdGVy X29wZXJhbmQiICI9diIpCiAJKHVtb2Q6VEkgKG1hdGNoX29wZXJhbmQ6VEkgMSAiYWx0aXZl Y19yZWdpc3Rlcl9vcGVyYW5kIiAidiIpCiAJCSAobWF0Y2hfb3BlcmFuZDpUSSAyICJhbHRp dmVjX3JlZ2lzdGVyX29wZXJhbmQiICJ2IikpKV0KLSAgIlRBUkdFVF9QT1dFUjEwICYmIFRB UkdFVF9QT1dFUlBDNjQiCisgICJUQVJHRVRfUE9XRVIxMCAmJiBUQVJHRVRfUE9XRVJQQzY0 ICYmICFSUzYwMDBfRElTQUJMRV9TQ0FMQVJfTU9EVUxPIgogICAidm1vZHVxICUwLCUxLCUy IgogICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZGl2IikKICAgIChzZXRfYXR0ciAic2l6ZSIg IjEyOCIpXSkKQEAgLTM1MTYsNyArMzU1Miw3IEBAIChkZWZpbmVfaW5zbiAibW9kdGkzIgog ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpUSSAwICJhbHRpdmVjX3JlZ2lzdGVyX29wZXJhbmQi ICI9diIpCiAJKG1vZDpUSSAobWF0Y2hfb3BlcmFuZDpUSSAxICJhbHRpdmVjX3JlZ2lzdGVy X29wZXJhbmQiICJ2IikKIAkJKG1hdGNoX29wZXJhbmQ6VEkgMiAiYWx0aXZlY19yZWdpc3Rl cl9vcGVyYW5kIiAidiIpKSldCi0gICJUQVJHRVRfUE9XRVIxMCAmJiBUQVJHRVRfUE9XRVJQ QzY0IgorICAiVEFSR0VUX1BPV0VSMTAgJiYgVEFSR0VUX1BPV0VSUEM2NCAmJiAhUlM2MDAw X0RJU0FCTEVfU0NBTEFSX01PRFVMTyIKICAgInZtb2RzcSAlMCwlMSwlMiIKICAgWyhzZXRf YXR0ciAidHlwZSIgInZlY2RpdiIpCiAgICAoc2V0X2F0dHIgInNpemUiICIxMjgiKV0pCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy9jbG9uZTEuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9wb3dlcnBjL2Nsb25lMS5jCmluZGV4IGM2OWZk MmFhMWI4Li43NDMyM2NhMGU4YyAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Bvd2VycGMvY2xvbmUxLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bv d2VycGMvY2xvbmUxLmMKQEAgLTIxLDYgKzIxLDcgQEAgbG9uZyBtb2RfZnVuY19vciAobG9u ZyBhLCBsb25nIGIsIGxvbmcgYykKICAgcmV0dXJuIG1vZF9mdW5jIChhLCBiKSB8IGM7CiB9 CiAKLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XG1kaXZkXE19ICAx IH0gfSAqLwotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcbW11bGxk XE19IDEgfSB9ICovCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1xt bW9kc2RcTX0gMSB9IH0gKi8KKy8qIHsgRmFpbCBkdWUgdG8gUlM2MDAwX0RJU0FCTEVfU0NB TEFSX01PRFVMTy4gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 XG1kaXZkXE19ICAxIHsgeGZhaWwgKi0qLSogfSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7XG1tdWxsZFxNfSAxIHsgeGZhaWwgKi0qLSogfSB9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XG1tb2RzZFxNfSAx IHsgeGZhaWwgKi0qLSogfSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9wb3dlcnBjL2Nsb25lMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bv d2VycGMvY2xvbmUzLmMKaW5kZXggOTExYjg4Yjc4MWQuLmQzZWI0ZGQyMzc4IDEwMDY0NAot LS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy9jbG9uZTMuYworKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy9jbG9uZTMuYwpAQCAtMjcsNyArMjcs OCBAQCBsb25nIG1vZF9mdW5jX29yIChsb25nIGEsIGxvbmcgYiwgbG9uZyBjKQogICByZXR1 cm4gbW9kX2Z1bmMgKGEsIGIpIHwgYzsKIH0KIAotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtcbWRpdmRcTX0gIDEgfSB9ICovCi0vKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge1xtbXVsbGRcTX0gMSB9IH0gKi8KLS8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XG1tb2RzZFxNfSAyIH0gfSAqLworLyogeyBGYWls IGR1ZSB0byBSUzYwMDBfRElTQUJMRV9TQ0FMQVJfTU9EVUxPLiAqLworLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcbWRpdmRcTX0gIDEgeyB4ZmFpbCAqLSotKiB9 IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcbW11bGxk XE19IDEgeyB4ZmFpbCAqLSotKiB9IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtcbW1vZHNkXE19IDIgeyB4ZmFpbCAqLSotKiB9IH0gfSAqLwogLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcbXBsZFxNfSAgIDEgfSB9ICov CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy9tb2QtMS5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvbW9kLTEuYwppbmRleCA4NjFi YTY3MGFmNC4uODcyMGZmYjMzNDYgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9wb3dlcnBjL21vZC0xLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bv d2VycGMvbW9kLTEuYwpAQCAtNywxMyArNywxNCBAQCBsb25nIGxzbW9kIChsb25nIGEsIGxv bmcgYikgeyByZXR1cm4gYSViOyB9CiB1bnNpZ25lZCBpbnQgaXVtb2QgKHVuc2lnbmVkIGlu dCBhLCB1bnNpZ25lZCBpbnQgYikgeyByZXR1cm4gYSViOyB9CiB1bnNpZ25lZCBsb25nIGx1 bW9kICh1bnNpZ25lZCBsb25nIGEsIHVuc2lnbmVkIGxvbmcgYikgeyByZXR1cm4gYSViOyB9 CiAKLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAibW9kc3cgIiAxIH0g fSAqLwotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJtb2RzZCAiIDEg fSB9ICovCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIm1vZHV3ICIg MSB9IH0gKi8KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAibW9kdWQg IiAxIH0gfSAqLwotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAgICJtdWxs dyAiICAgfSB9ICovCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICAgIm11 bGxkICIgICB9IH0gKi8KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgICAi ZGl2dyAiICAgIH0gfSAqLwotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAg ICJkaXZkICIgICAgfSB9ICovCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90 ICAgImRpdnd1ICIgICB9IH0gKi8KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1u b3QgICAiZGl2ZHUgIiAgIH0gfSAqLworLyogeyBGYWlsIGR1ZSB0byBSUzYwMDBfRElTQUJM RV9TQ0FMQVJfTU9EVUxPLiAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtcbW1vZHN3XE19IDEgeyB4ZmFpbCAqLSotKiB9IH0gfSAqLworLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcbW1vZHNkXE19IDEgeyB4ZmFpbCAqLSotKiB9 IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcbW1vZHV3 XE19IDEgeyB4ZmFpbCAqLSotKiB9IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtcbW1vZHVkXE19IDEgeyB4ZmFpbCAqLSotKiB9IH0gfSAqLworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAgIHtcbW11bGx3XE19ICAgeyB4ZmFp bCAqLSotKiB9IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAg IHtcbW11bGxkXE19ICAgeyB4ZmFpbCAqLSotKiB9IH0gfSAqLworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLW5vdCAgIHtcbWRpdndcTX0gICAgeyB4ZmFpbCAqLSotKiB9IH0g fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAgIHtcbWRpdmRcTX0g ICAgeyB4ZmFpbCAqLSotKiB9IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLW5vdCAgIHtcbWRpdnd1XE19ICAgeyB4ZmFpbCAqLSotKiB9IH0gfSAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAgIHtcbWRpdmR1XE19ICAgeyB4ZmFpbCAq LSotKiB9IH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bv d2VycGMvbW9kLTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9wb3dlcnBjL21vZC0y LmMKaW5kZXggNDQxZWM1ODc4ZjEuLjU0YmRjYTg4NjA3IDEwMDY0NAotLS0gYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy9tb2QtMi5jCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9wb3dlcnBjL21vZC0yLmMKQEAgLTUsOCArNSw5IEBACiBpbnQgaXNtb2Qg KGludCBhLCBpbnQgYikgeyByZXR1cm4gYSViOyB9CiB1bnNpZ25lZCBpbnQgaXVtb2QgKHVu c2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYikgeyByZXR1cm4gYSViOyB9CiAKLS8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAibW9kc3cgIiAxIH0gfSAqLwotLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJtb2R1dyAiIDEgfSB9ICovCi0v KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICAgIm11bGx3ICIgICB9IH0gKi8K LS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgICAiZGl2dyAiICAgIH0gfSAq LwotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAgICJkaXZ3dSAiICAgfSB9 ICovCisvKiB7IEZhaWwgZHVlIHRvIFJTNjAwMF9ESVNBQkxFX1NDQUxBUl9NT0RVTE8uICov CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1xtbW9kc3dcTX0gMSB7 IHhmYWlsICotKi0qIH0gfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge1xtbW9kdXdcTX0gMSB7IHhmYWlsICotKi0qIH0gfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICAge1xtbXVsbHdcTX0gICB7IHhmYWlsICotKi0q IH0gfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICAge1xtZGl2 d1xNfSAgICB7IHhmYWlsICotKi0qIH0gfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItbm90ICAge1xtZGl2d3VcTX0gICB7IHhmYWlsICotKi0qIH0gfSB9ICovCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy9wMTAtdmRpdnEt dm1vZHEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9wb3dlcnBjL3AxMC12ZGl2cS12 bW9kcS5jCmluZGV4IDg0Njg1ZTVmZjQzLi4xNDg5OThjOGM5ZCAxMDA2NDQKLS0tIGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvcDEwLXZkaXZxLXZtb2RxLmMKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvcDEwLXZkaXZxLXZtb2RxLmMKQEAg LTIzLDUgKzIzLDYgQEAgX19pbnQxMjggc19tb2QoX19pbnQxMjggYSwgX19pbnQxMjggYikK IAogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyIHtcbXZkaXZzcVxNfSB9IH0gKi8K IC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciB7XG12ZGl2dXFcTX0gfSB9ICovCi0v KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIge1xtdm1vZHNxXE19IH0gfSAqLwotLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyIHtcbXZtb2R1cVxNfSB9IH0gKi8KKy8qIHsg RmFpbCBkdWUgdG8gUlM2MDAwX0RJU0FCTEVfU0NBTEFSX01PRFVMTy4gKi8KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlciB7XG12bW9kc3FcTX0geyB4ZmFpbCAqLSotKiB9IH0g fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyIHtcbXZtb2R1cVxNfSB7IHhm YWlsICotKi0qIH0gfSB9ICovCg== --------------XcWlNi5e3CGAXT8FUw7tSJV7--