From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 8C2B23858D39; Thu, 10 Mar 2022 20:31:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 8C2B23858D39 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22AHw84N008566; Thu, 10 Mar 2022 20:31:18 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ekxf0xegc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Mar 2022 20:31:17 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22AKARIr194661; Thu, 10 Mar 2022 20:31:16 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2171.outbound.protection.outlook.com [104.47.55.171]) by userp3020.oracle.com with ESMTP id 3envvngvcs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Mar 2022 20:31:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jPadNYiMX+lxeLuKfVIyF3mJX/TQSbSeH02/F2/6IKokYxZRuV/Wd/8Pyc7El4YODra5HbQeRAF0N3Zf8w7JdDw8in7Bzu0hEU0AYvujVAKXay00uJjjBSXoE+gWYZaEnkDMfuc8Qky0B3PxYzwOJWf2lUpshbqzEA8GMLlN/KnR4RuLsHn/8r+e65jBYEjQv0vpa+fVjy5NwzpmOFbdzN8qbGZ/Dgb2c2UggqTNiurTYdtaJ9aczdh91s5gjZ6Wh4Vx2Y4XsqRMf6tsXLqW+7iDCqe9VXFZ+e7YmvJDidJtnNDJmn5B9RURfxoXV1HhMDaU98LHLkxbPWp+j8KFzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NNuRUSU5gO7h9jE+OXiKO87yEks0qNqqY2ZrzESYQzc=; b=dQYHJ4J9y5QmEL5SAoIe6gvBKuz4QtplQT7l/QdhQZ/CBYgUYtH+mJhpw2IskyCHo1Tfn2hfFt5D0yBvpn+HJKI6zyEX2GnoCQqXTZoDW019r41VbMo1FAxk/WHMimWgkhRieJDfhbKrzI/BPXSObO3BfB3NA1vRl+i5Fl9kHXX/TwVV3SldC0G/emuurrJGnOswXH66SnSXZeX3vLeMJfHO8N0d55dQOWhvqutBLVW4/NPxLJJVaQiVJcf6Ta3443tHREHnlcXznzsb+KRi7av+ddWTQw9z7sXuCQlFCciiTzfP4SgL0TqlGy/+V3xsV4c9zqpQyf76/uQ6mTapuw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by PH0PR10MB4661.namprd10.prod.outlook.com (2603:10b6:510:42::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.19; Thu, 10 Mar 2022 20:31:13 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::a8c6:8b2:c197:7489]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::a8c6:8b2:c197:7489%6]) with mapi id 15.20.5061.021; Thu, 10 Mar 2022 20:31:13 +0000 From: Qing Zhao To: Richard Sandiford CC: Xi Ruoyao , YunQiang Su , "gcc-patches@gcc.gnu.org" , Jakub Jelinek , Jeff Law Subject: Re: [PATCH RFC] mips: add TARGET_ZERO_CALL_USED_REGS hook [PR104817, PR104820] Thread-Topic: [PATCH RFC] mips: add TARGET_ZERO_CALL_USED_REGS hook [PR104817, PR104820] Thread-Index: AQHYMmO/PXN0JIZqDUOFTxRjiAiIgqy3YadBgAG1IIA= Date: Thu, 10 Mar 2022 20:31:13 +0000 Message-ID: <53408AB1-0FA4-4529-95D9-A10FA8999DF6@oracle.com> References: <93ab62b2b9473733e5118f4265b61804978adfd7.camel@mengyan1223.wang> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3608.120.23.2.7) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 25053a54-7578-4bf4-3ca9-08da02d4eb92 x-ms-traffictypediagnostic: PH0PR10MB4661:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Z3SRLYxK9m7sISZ+4YTmGJ/2tXF/7LLrPcE6OGP/XHlcF/t71uFk5HROE1mMTnD06zk49NxD4HHhrfckVJatitHmvzR2rShfRvLPOI0QZ4j4Ly6pGsUvzkefvH76Lq2q7GziBaVXSEc9EMg6UwBN1z+9b8zatCoNWbkzEuoX7F7wq8TqgYLFjpWiNpzpSmyh33L5YTEyej0f9s1DkQqXRkbltPw4bl42CnfBhp3RGd1S+2LJFupGIZn1CfS5HxlYbZdbQViEKXCV6gZQ562AHa7ScmYOVWUfxQFkcSTQ4rZ4TYusx3pUkjTehWp34BKcTK42EOLf12kQdJgP2CsdNDS8vS1zdvlZphT7IupjVWj7/jdo/WWCh5x7ZWsBkOIrOYmkin5PUg68RJ62HNvdLSs8kN4eFVEmLQfsmmM8A2qtF13UPJl2hjZiUZXcyJ6s1TyhqZ3kF6Ljbtiif7+X3L2ZbpswolG9EF0r7Lja+CaUWrwwsZXbeBK4hV3aHLWo41yKP2/pdipo0yFKTLffWVO/h9iwcJAELXygJCmzPVP+b2UKbVCcm8mBCEtoZ81AtWFcwbPKlCCbZBEhjXlQcDjDjT17F3+iwLg0ZrpaJAmW5IwOQrdfLNt1lfd+X1O5op/G3qexfLh9v787Trjt8rTUWElUztRxR8d2hPgm1aig0L0hqb8ufuQl8xP55pRA/jxwz2E/OJghIcTTcyRh78+JMA1+voywPNImO2vD3WoUeRPxRbSlHXO2h2dmbe4p x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR10MB4344.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(38070700005)(54906003)(2906002)(8936002)(36756003)(6916009)(316002)(6512007)(186003)(83380400001)(2616005)(44832011)(86362001)(53546011)(6486002)(66556008)(76116006)(33656002)(66476007)(64756008)(66946007)(4326008)(66446008)(8676002)(6506007)(122000001)(91956017)(508600001)(38100700002)(5660300002)(71200400001)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RWxVd3k0Sk1uZ3pXbkMvREFNMS9PTnQ4Q2VDaVVBQllIL1RNT25aUElOTHUr?= =?utf-8?B?ZWZoK2duSHplNGdFKzlrdWQzb1JaY0FNT05RbUN2TnlPbFQ3emViZjhDb1dl?= =?utf-8?B?MjJDMGhXREx1UTBLWG0waTk1SmFkbHBIZk9QR3BML2VsakkxU2F6dWVSRnJl?= =?utf-8?B?T2lqdE5WUEZaWDBTYWtxZWJES2FZWFlSSFFuRGxXOGtZbzhxc1RjRWdWbExB?= =?utf-8?B?N1l1TmRwUGdQTkNuQ082U1NDa1R5c1ExOEVxdzR1UEFZeXB3OHN0MXF6ZlVB?= =?utf-8?B?cHlOK1p1eDkvelBDY2IvZkJtQTBxajJJdDMwZG93aExocHlEOC9FanRDbXpj?= =?utf-8?B?WkNYdllRM1JnUEYxb0hsdTRtTkhTQ1JZTkl4eWJYMVlTT3daMVNsSjBhN0p6?= =?utf-8?B?Y0RUMWJIT3FjeS84clZ4QVVNc2FydXMwbXoxMjlWQ1E1UzNPbUczUVFYMFZv?= =?utf-8?B?OEY2MVM1UXZwN2hORUhuQmpuWFY4bXlRbUw0T0p5S0RlVHRnOUdOYVY1d2h1?= =?utf-8?B?QlBON2s1c0wwcHZWWC9PN0dDU3VCbFJCYkFqNnVSaDdnWHJFUkdZZWE4S2tP?= =?utf-8?B?bXhlSDBpVUZsZzM2MFlsek9mLzRPZkRBUEhCQnp4RVdiVG5BdHZBRWtkVEVp?= =?utf-8?B?dm9vUXdIbnRMRWlrWFJrQVVKRWpJM3JZWlJMcFIyTkdIa1FZeVVnRTAzUEpX?= =?utf-8?B?bVo5ZmE4TFpzcnpoUmtBaWFOTmMrNXR3T2k0NVBtb2I0YlJ5djJoTmVkeUVH?= =?utf-8?B?SDhHL1FyMzcrK0VCMTNtMWZ0aGtKVWxGKy92cnduQ3c1cUYveUxQbXpWVjl4?= =?utf-8?B?K01TVm5sRVhmRWpYVDdmbFpJa3Azb0VhOUZSbUp0RVhGODJRS2hsYjVNeVE5?= =?utf-8?B?ZjEzZUFHeHI2ZHpBQnBibDl6LzQzM2sxVnh4aTNBYlAyaUhYcjVGbjFQck5W?= =?utf-8?B?bjVramVPL0hKNGVNMnU2WjRsVUI5dFFQamZVSGNkeGN3UmJzREgxeUo1MHZv?= =?utf-8?B?SjlaOGMrL0I5WnA4eHc5b1JTQ1VxdTY0RGpKVFJCUUJkbkFpYitaM0xmRFNn?= =?utf-8?B?bFdDVGZYZWtMb0xSMmRla0ZKNXlWeHBxZ2ZKTnhYWm9sek9SNjlGTlcyN3ZY?= =?utf-8?B?WHdwT3F5LzVCaGJFR3Z5c1R4K3ZBVGJWR0pPQ2FOekZVMHF2bWNJQ2VkTFQy?= =?utf-8?B?a1ZrR0NrYVIyS3BqS0VhbkdWZFZRSUVtLzlDei9DQVRNc2tvb1MzcStPMGc4?= =?utf-8?B?OGlBeE04SXNlRzdUYjJnLytmc2VUOWpEZ3FsVS9lQVB3cmNSZ3I0Vy9OQVND?= =?utf-8?B?MS9uRDhKZ0QzcFpQdmcwNDYyaXluWlNJRW8xSDg4TElJcmtibGlTMVVjQjE1?= =?utf-8?B?cm90UkN5WjhUMVNyMldVQ0hGUWp1ejJ2cHNtcmJ5ZFlBYnZsbU9KSjlQdkNL?= =?utf-8?B?cXovSkV5YzlpMGowZ2Z4MUxkYWlXRm53UTJuQ25Nb0UyQUg0SFBOUVVyd0F4?= =?utf-8?B?MmVDOGo0TkVaUGlyTVZBd0hraTdWS1RtUVUzUFZrV1dGcmNVbjU2ZURNalFC?= =?utf-8?B?QTQ3ZWplaHBiT2ptdTBqekF4RzVnZFBWa1VSN3M0N1A4VjVKZzdqMGVicTVx?= =?utf-8?B?eTBsT3FjOXQrSUx3UWxtNjUvUEVGa2RWUHhxSk9XTi9BeUhoR01RdXp2ak0x?= =?utf-8?B?L0liZW9RL2JSaGJtWThZQjVlYzZXR0kyZ2xESVV4U0dLYkU1RWRnTW55dGJz?= =?utf-8?B?OHI3S0VTanpnWFdsdUQ0aWFRVFYzMGxWZTFzdW9LeWNrYjNYSjBuK0JISGcy?= =?utf-8?B?QXRBVlJXbVhlbVM0dEVFTXR3cGt0Vkx5OHUyZlhldStCY0l5Y1Nabks5RFRZ?= =?utf-8?B?ZDZIR3hxbnJKemlBNkdpRlNFWUExZ3BpVmNXUjZJYU0wZUdHdC8wUjl2VWVs?= =?utf-8?B?VjVUTXlkTU5NNEVZR0l0WDVSNERxZ21JdjRDbklxa1lIRnFjK1RQSFgwRDBP?= =?utf-8?B?aVNNTGdXZVV6RFhNbjNmYlpzQ1BXb255K1FoK0oyTWJCWERnNEJlODd3TTRP?= =?utf-8?B?Z1pmVkYwYUN4KzhoOFN1R3dXSmVjVFphNGFqTTBRYkVHWkJMc0RmRzc1UVlh?= =?utf-8?B?ZU9JTWFDeVpKTDdidmswa2hNaWMwMTBBeno3VEJHeVc0c2tzWVZ1cDdRQXZO?= =?utf-8?B?WFJEbDZ2WHdiVTArT3N1blloa1lOWnRmWjFXbnJnWEg2Vk5IMFY0QnE2TzhM?= =?utf-8?B?anJseVRIT3hTemdZZWFLaS9LSk5RPT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: <2E9F342948D5D6439BC2B6CEEDC6E74F@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR10MB4344.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25053a54-7578-4bf4-3ca9-08da02d4eb92 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Mar 2022 20:31:13.3804 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: NeU+mCY6yvAsLo6ccA2AsNA2AhTVhMu1SHSpZg0nUuSkyF3DZim/tfReNsXkSiWAmRmAvy8IUTsdLd2+X/bzxA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4661 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10282 signatures=692556 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 bulkscore=0 phishscore=0 malwarescore=0 suspectscore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203100103 X-Proofpoint-ORIG-GUID: 8f2utiunE4lNTuKImvyROPhEZGwWsols X-Proofpoint-GUID: 8f2utiunE4lNTuKImvyROPhEZGwWsols X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Thu, 10 Mar 2022 20:31:27 -0000 DQoNCj4gT24gTWFyIDksIDIwMjIsIGF0IDEyOjI1IFBNLCBSaWNoYXJkIFNhbmRpZm9yZCB2aWEg R2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPiB3cm90ZToNCj4gDQo+IFhpIFJ1 b3lhbyA8eHJ5MTExQG1lbmd5YW4xMjIzLndhbmc+IHdyaXRlczoNCj4+IEJvb3RzdHJhcHBlZCBh bmQgcmVndGVzdGVkIG9uIG1pcHM2NGVsLWxpbnV4LWdudWFiaTY0Lg0KPj4gDQo+PiBJJ20gbm90 IHN1cmUgaWYgaXQncyAiY29ycmVjdCIgdG8gY2xvYmJlciBvdGhlciByZWdpc3RlcnMgZHVyaW5n IHRoZQ0KPj4gemVyb2luZyBvZiBzY3JhdGNoIHJlZ2lzdGVycy4gIEJ1dCBJIGNhbid0IHJlYWxs eSBjb21lIHVwIHdpdGggYSBiZXR0ZXINCj4+IGlkZWE6IG9uIE1JUFMgdGhlcmUgaXMgbm8gc2lt cGxlIHdheSB0byBjbGVhciBvbmUgYml0IGluIEZDU1IgKGkuIGUuDQo+PiBGQ0NbeF0pLiAgV2Ug Y2FuJ3QganVzdCB1c2UgImMuZi5zICRmY2N4LCRmMCwkZjAiIGJlY2F1c2UgaXQgd2lsbCByYWlz ZQ0KPj4gYW4gZXhjZXB0aW9uIGlmICRmMCBjb250YWlucyBhIHNOYU4uDQo+IA0KPiBZZWFoLCBp dCdzIGEgYml0IG9mIGEgZ3JleSBhcmVhLCBidXQgSSB0aGluayBpdCBzaG91bGQgYmUgZmluZSwg cHJvdmlkZWQNCj4gdGhhdCB0aGUgZXh0cmEgY2xvYmJlcnMgYXJlIG5ldmVyIHVzZWQgYXMgcmV0 dXJuIHJlZ2lzdGVycyAod2hpY2ggaXMNCj4gb2J2aW91c2x5IHRydWUgZm9yIHRoZSBGQ0MgcmVn aXN0ZXJzKS4NCj4gDQo+IEJ1dCBvbiB0aGF0IGJhc2lz4oCmDQo+IA0KPj4gK3N0YXRpYyBIQVJE X1JFR19TRVQNCj4+ICttaXBzX3plcm9fY2FsbF91c2VkX3JlZ3MgKEhBUkRfUkVHX1NFVCBuZWVk X3plcm9lZF9oYXJkcmVncykNCj4+ICt7DQo+PiArICBIQVJEX1JFR19TRVQgemVyb2VkX2hhcmRy ZWdzOw0KPj4gKyAgQ0xFQVJfSEFSRF9SRUdfU0VUICh6ZXJvZWRfaGFyZHJlZ3MpOw0KPj4gKw0K Pj4gKyAgaWYgKFRFU1RfSEFSRF9SRUdfQklUIChuZWVkX3plcm9lZF9oYXJkcmVncywgSElfUkVH TlVNKSkNCj4+ICsgICAgew0KPj4gKyAgICAgIC8qIENsZWFyIEhJIGFuZCBMTyBhbHRvZ2V0aGVy LiAgTUlQUyB0YXJnZXQgdHJlYXRzIEhJTE8gYXMgYQ0KPj4gKwkgZG91YmxlLXdvcmQgcmVnaXN0 ZXIuICAqLw0KPj4gKyAgICAgIG1hY2hpbmVfbW9kZSBkd29yZF9tb2RlID0gVEFSR0VUXzY0QklU ID8gVEltb2RlIDogREltb2RlOw0KPj4gKyAgICAgIHJ0eCBoaWxvID0gZ2VuX3J0eF9SRUcgKGR3 b3JkX21vZGUsIE1EX1JFR19GSVJTVCk7DQo+PiArICAgICAgcnR4IHplcm8gPSBDT05TVDBfUlRY IChkd29yZF9tb2RlKTsNCj4+ICsgICAgICBlbWl0X21vdmVfaW5zbiAoaGlsbywgemVybyk7DQo+ PiArDQo+PiArICAgICAgU0VUX0hBUkRfUkVHX0JJVCAoemVyb2VkX2hhcmRyZWdzLCBISV9SRUdO VU0pOw0KPj4gKyAgICAgIGlmIChURVNUX0hBUkRfUkVHX0JJVCAobmVlZF96ZXJvZWRfaGFyZHJl Z3MsIExPX1JFR05VTSkpDQo+PiArCVNFVF9IQVJEX1JFR19CSVQgKHplcm9lZF9oYXJkcmVncywg TE9fUkVHTlVNKTsNCj4+ICsgICAgICBlbHNlDQo+PiArCWVtaXRfY2xvYmJlciAoZ2VuX3J0eF9S RUcgKHdvcmRfbW9kZSwgTE9fUkVHTlVNKSk7DQo+IA0KPiDigKZJIGRvbid0IHRoaW5rIHRoaXMg Y29uZGl0aW9uYWwgTE9fUkVHTlVNIGNvZGUgaXMgd29ydGggaXQuDQo+IFdlIG1pZ2h0IGFzIHdl bGwganVzdCBhZGQgYm90aCByZWdpc3RlcnMgdG8gemVyb2VkX2hhcmRyZWdzLg0KDQpJZiB0aGUg TE9fUkVHTlVNIGlzIE5PVCBpbiDigJxuZWVkX3plcm9lZF9oYXJkcmVnc+KAnSwgYWRkaW5nIGl0 IHRvIOKAnHplcm9lZF9oYXJkcmVnc+KAnSBzZWVtcyBub3QgcmlnaHQgdG8gbWUuDQpXaGF04oCZ cyB5b3UgbWVhbiBieSDigJxub3Qgd29ydGggaXTigJ0/DQoNCj4gDQo+PiArICAgIH0NCj4+ICsN Cj4+ICsgIGJvb2wgemVyb19mY2MgPSBmYWxzZTsNCj4+ICsgIGZvciAoaW50IGkgPSBTVF9SRUdf RklSU1Q7IGkgPD0gU1RfUkVHX0xBU1Q7IGkrKykNCj4+ICsgICAgaWYgKFRFU1RfSEFSRF9SRUdf QklUIChuZWVkX3plcm9lZF9oYXJkcmVncywgaSkpDQo+PiArICAgICAgemVyb19mY2MgPSB0cnVl Ow0KPj4gKw0KPj4gKyAgLyogTUlQUyBkb2VzIG5vdCBoYXZlIGEgc2ltcGxlIHdheSB0byBjbGVh ciBvbmUgYml0IGluIEZDQy4gIFdlIGp1c3QNCj4+ICsgICAgIGNsZWFyIEZDQyB3aXRoIGN0YzEg YW5kIGNsb2JiZXIgYWxsIEZDQyBiaXRzLiAgKi8NCj4+ICsgIGlmICh6ZXJvX2ZjYykNCj4+ICsg ICAgew0KPj4gKyAgICAgIGVtaXRfaW5zbiAoZ2VuX21pcHNfemVyb19mY2MgKCkpOw0KPj4gKyAg ICAgIGZvciAoaW50IGkgPSBTVF9SRUdfRklSU1Q7IGkgPD0gU1RfUkVHX0xBU1Q7IGkrKykNCj4+ ICsJaWYgKFRFU1RfSEFSRF9SRUdfQklUIChuZWVkX3plcm9lZF9oYXJkcmVncywgaSkpDQo+PiAr CSAgU0VUX0hBUkRfUkVHX0JJVCAoemVyb2VkX2hhcmRyZWdzLCBpKTsNCj4+ICsJZWxzZQ0KPj4g KwkgIGVtaXRfY2xvYmJlciAoZ2VuX3J0eF9SRUcgKENDbW9kZSwgaSkpOw0KPj4gKyAgICB9DQo+ IA0KPiBIZXJlIHRvbyBJIHRoaW5rIHdlIHNob3VsZCBqdXN0IGRvOg0KPiANCj4gICAgICB6ZXJv ZWRfaGFyZHJlZ3MgfD0gcmVnX2NsYXNzX2NvbnRlbnRzW1NUX1JFR1NdICYgYWNjZXNzaWJsZV9y ZWdfc2V0Ow0KPiANCj4gdG8gaW5jbHVkZSBhbGwgYXZhaWxhYmxlIEZDQyByZWdpc3RlcnMuDQoN CldoYXTigJlzIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiDigJxTVF9SRUdz4oCdIGFuZCBGQ0M/ IChzb3JyeSBmb3IgdGhlIHN0dXBpZCBxdWVzdGlvbiBzaW5jZSBJIGFtIG5vdCBmYW1pbGlhciB3 aXRoIHRoZSBNSVBTIHJlZ2lzdGVyIHNldCkuDQoNCkZyb20gdGhlIGFib3ZlIGNvZGUsIGxvb2tz IGxpa2UgdGhhdCB3aGVuIGFueSAg4oCcU1RfUkVHc+KAnSBpcyBpbiDigJxuZWVkX3plcm9lZF9o YXJkcmVnc+KAnSxGQ0MgbmVlZCB0byBiZSBjbGVhcmVkPyANCg0KdGhhbmtzLg0KDQpRaW5nDQoN Cg0KPiANCj4+ICsNCj4+ICsgIG5lZWRfemVyb2VkX2hhcmRyZWdzICY9IH56ZXJvZWRfaGFyZHJl Z3M7DQo+PiArICByZXR1cm4gemVyb2VkX2hhcmRyZWdzIHwNCj4+ICsJIGRlZmF1bHRfemVyb19j YWxsX3VzZWRfcmVncyAobmVlZF96ZXJvZWRfaGFyZHJlZ3MpOw0KPiANCj4gTml0LCBidXQ6IHNo b3VsZCBiZSBmb3JtYXR0ZWQgYXM6DQo+IA0KPiAgcmV0dXJuICh6ZXJvZWRfaGFyZHJlZ3MNCj4g CSAgfCBkZWZhdWx0X3plcm9fY2FsbF91c2VkX3JlZ3MgKG5lZWRfemVyb2VkX2hhcmRyZWdzKSk7 DQo+IA0KPj4gK30NCj4+ICsNCj4+IA0KPj4gLyogSW5pdGlhbGl6ZSB0aGUgR0NDIHRhcmdldCBz dHJ1Y3R1cmUuICAqLw0KPj4gI3VuZGVmIFRBUkdFVF9BU01fQUxJR05FRF9ISV9PUA0KPj4gQEAg LTIyOTE5LDYgKzIyOTY0LDggQEAgbWlwc19hc21fZmlsZV9lbmQgKHZvaWQpDQo+PiAjdW5kZWYg VEFSR0VUX0FTTV9GSUxFX0VORA0KPj4gI2RlZmluZSBUQVJHRVRfQVNNX0ZJTEVfRU5EIG1pcHNf YXNtX2ZpbGVfZW5kDQo+PiANCj4+ICsjdW5kZWYgVEFSR0VUX1pFUk9fQ0FMTF9VU0VEX1JFR1MN Cj4+ICsjZGVmaW5lIFRBUkdFVF9aRVJPX0NBTExfVVNFRF9SRUdTIG1pcHNfemVyb19jYWxsX3Vz ZWRfcmVncw0KPj4gDQo+PiBzdHJ1Y3QgZ2NjX3RhcmdldCB0YXJnZXRtID0gVEFSR0VUX0lOSVRJ QUxJWkVSOw0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9taXBzL21pcHMubWQgYi9n Y2MvY29uZmlnL21pcHMvbWlwcy5tZA0KPj4gaW5kZXggZTBmMGE1ODI3MzIuLmVkZjU4NzEwY2Rk IDEwMDY0NA0KPj4gLS0tIGEvZ2NjL2NvbmZpZy9taXBzL21pcHMubWQNCj4+ICsrKyBiL2djYy9j b25maWcvbWlwcy9taXBzLm1kDQo+PiBAQCAtOTYsNiArOTYsNyBAQCAoZGVmaW5lX2NfZW51bSAi dW5zcGVjIiBbDQo+PiAgIDs7IEZsb2F0aW5nLXBvaW50IGVudmlyb25tZW50Lg0KPj4gICBVTlNQ RUNfR0VUX0ZDU1INCj4+ICAgVU5TUEVDX1NFVF9GQ1NSDQo+PiArICBVTlNQRUNfWkVST19GQ0MN Cj4+IA0KPj4gICA7OyBISS9MTyBtb3Zlcy4NCj4+ICAgVU5TUEVDX01GSEkNCj4+IEBAIC03Njcw LDYgKzc2NzEsMTEgQEAgKGRlZmluZV9pbnNuICIqbWlwc19zZXRfZmNzciINCj4+ICAgIlRBUkdF VF9IQVJEX0ZMT0FUIg0KPj4gICAiY3RjMVx0JTAsJDMxIikNCj4+IA0KPj4gKyhkZWZpbmVfaW5z biAibWlwc196ZXJvX2ZjYyINCj4+ICsgIFsodW5zcGVjX3ZvbGF0aWxlIFsoY29uc3RfaW50IDAp XSBVTlNQRUNfWkVST19GQ0MpXQ0KPj4gKyAgIlRBUkdFVF9IQVJEX0ZMT0FUIg0KPj4gKyAgImN0 YzFcdCQwLCQyNSIpDQo+IA0KPiBJJ3ZlIGZvcmdvdHRlbiBhIGxvdCBvZiBNSVBTIHN0dWZmLCBz bzogZG9lcyB0aGlzIGNsZWFyIG9ubHkgdGhlDQo+IEZDQyByZWdpc3RlcnMsIG9yIGRvZXMgaXQg Y2xlYXIgb3RoZXIgdGhpbmdzIChzdWNoIGFzIGV4Y2VwdGlvbiBiaXRzKQ0KPiBhcyB3ZWxsPyAg RG9lcyBpdCB3b3JrIGV2ZW4gZm9yICFJU0FfSEFTXzhDQz8NCj4gDQo+IEkgdGhpbmsgdGhpcyBw YXR0ZXJuIHNob3VsZCBleHBsaWNpdCBjbGVhciBhbGwgZWlnaHQgcmVnaXN0ZXJzLCBlLmcuIHVz aW5nOg0KPiANCj4gIChzZXQgKHJlZzpDQyBGQ0MwX1JFR05VTSkgKGNvbnN0X2ludCAwKSkNCj4g IChzZXQgKHJlZzpDQyBGQ0MxX1JFR05VTSkgKGNvbnN0X2ludCAwKSkNCj4gIOKApg0KPiANCj4g d2hpY2ggdW5mb3J0dW5hdGVseSBtZWFucyBkZWZpbmluZyA4IG5ldyByZWdpc3RlciBjb25zdGFu dHMgaW4gbWlwcy5tZC4NCj4gSSBndWVzcyBmb3IgZXh0cmEgc2FmZXR5IHRoZXJlIHNob3VsZCBi ZSBhIHNlcGFyYXRlICFJU0FfSEFTXzhDQyB2ZXJzaW9uDQo+IHRoYXQgb25seSBzZXRzIEZDQzBf UkVHTlVNLg0KPiANCj4gQW4gYWx0ZXJuYXRpdmUgd291bGQgYmUgdG8gYXZvaWQgY2xlYXJpbmcg dGhlIEZDQyByZWdpc3RlcnMgYWx0b2dldGhlci4NCj4gSSBzdXBwb3NlIHRoYXQncyBsZXNzIHNl Y3VyZSwgYnV0IHJlc2lkdWFsIGluZm9ybWF0aW9uIGNvdWxkIGxlYWsgdGhyb3VnaA0KPiB0aGUg ZXhjZXB0aW9uIGJpdHMgYXMgd2VsbCwgYW5kIGl0IGlzbid0IGNsZWFyIHdoZXRoZXIgdGhvc2Ug c2hvdWxkIGJlDQo+IHplcm9lZCBhdCB0aGUgZW5kIG9mIGVhY2ggZnVuY3Rpb24uICBJIGd1ZXNz IGl0IGRlcGVuZHMgb24gcGVvcGxlJ3MNCj4gYXBwZXRpdGUgZm9yIHJpc2suDQo+IA0KPiBCb3Ro IHdheXMgYXJlIE9LIHdpdGggbWUsIGp1c3QgbWVudGlvbmluZyBpdCBpbiBjYXNlLg0KPiANCj4g VGhhbmtzLA0KPiBSaWNoYXJkDQo+IA0KPj4gKw0KPj4gOzsgU2VlIHRsc19nZXRfdHBfbWlwczE2 Xzxtb2RlPiBmb3Igd2h5IHRoaXMgZm9ybSBpcyB1c2VkLg0KPj4gKGRlZmluZV9pbnNuICJtaXBz X3NldF9mY3NyX21pcHMxNl88bW9kZT4iDQo+PiAgIFsodW5zcGVjX3ZvbGF0aWxlOlNJIFsobWF0 Y2hfb3BlcmFuZDpQIDAgImNhbGxfaW5zbl9vcGVyYW5kIiAiZFMiKQ0KPj4gZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3plcm8tc2NyYXRjaC1yZWdzLTEwLmMgYi9nY2Mv dGVzdHN1aXRlL2MtYysrLWNvbW1vbi96ZXJvLXNjcmF0Y2gtcmVncy0xMC5jDQo+PiBpbmRleCA5 NmUwYjc5YjMyOC4uYzIzYjJjZWIzOTEgMTAwNjQ0DQo+PiAtLS0gYS9nY2MvdGVzdHN1aXRlL2Mt YysrLWNvbW1vbi96ZXJvLXNjcmF0Y2gtcmVncy0xMC5jDQo+PiArKysgYi9nY2MvdGVzdHN1aXRl L2MtYysrLWNvbW1vbi96ZXJvLXNjcmF0Y2gtcmVncy0xMC5jDQo+PiBAQCAtMSw1ICsxLDUgQEAN Cj4+IC8qIHsgZGctZG8gcnVuIH0gKi8NCj4+IC0vKiB7IGRnLXNraXAtaWYgIm5vdCBpbXBsZW1l bnRlZCIgeyAhIHsgaT84NiotKi0qIHg4Nl82NCotKi0qIHNwYXJjKi0qLSogYWFyY2g2NCotKi0q IG52cHR4Ki0qLSogczM5MCotKi0qIH0gfSB9ICovDQo+PiArLyogeyBkZy1za2lwLWlmICJub3Qg aW1wbGVtZW50ZWQiIHsgISB7IGk/ODYqLSotKiB4ODZfNjQqLSotKiBzcGFyYyotKi0qIGFhcmNo NjQqLSotKiBudnB0eCotKi0qIHMzOTAqLSotKiBtaXBzKi0qLSogfSB9IH0gKi8NCj4+IC8qIHsg ZGctb3B0aW9ucyAiLU8yIiB9ICovDQo+PiANCj4+ICNpbmNsdWRlIDxhc3NlcnQuaD4NCj4+IGRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi96ZXJvLXNjcmF0Y2gtcmVncy0x MS5jIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vemVyby1zY3JhdGNoLXJlZ3MtMTEuYw0K Pj4gaW5kZXggMDcxNGY5NWEwNGYuLmY1MWY1YTIxNjFjIDEwMDY0NA0KPj4gLS0tIGEvZ2NjL3Rl c3RzdWl0ZS9jLWMrKy1jb21tb24vemVyby1zY3JhdGNoLXJlZ3MtMTEuYw0KPj4gKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vemVyby1zY3JhdGNoLXJlZ3MtMTEuYw0KPj4gQEAgLTEs NSArMSw1IEBADQo+PiAvKiB7IGRnLWRvIHJ1biB9ICovDQo+PiAtLyogeyBkZy1za2lwLWlmICJu b3QgaW1wbGVtZW50ZWQiIHsgISB7IGk/ODYqLSotKiB4ODZfNjQqLSotKiBzcGFyYyotKi0qIGFh cmNoNjQqLSotKiBhcm0qLSotKiBudnB0eCotKi0qIHMzOTAqLSotKiB9IH0gfSAqLw0KPj4gKy8q IHsgZGctc2tpcC1pZiAibm90IGltcGxlbWVudGVkIiB7ICEgeyBpPzg2Ki0qLSogeDg2XzY0Ki0q LSogc3BhcmMqLSotKiBhYXJjaDY0Ki0qLSogYXJtKi0qLSogbnZwdHgqLSotKiBzMzkwKi0qLSog bWlwcyotKi0qIH0gfSB9ICovDQo+PiAvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnplcm8tY2FsbC11 c2VkLXJlZ3M9YWxsIiB9ICovDQo+PiANCj4+ICNpbmNsdWRlICJ6ZXJvLXNjcmF0Y2gtcmVncy0x MC5jIg0KPj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3plcm8tc2Ny YXRjaC1yZWdzLTguYyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3plcm8tc2NyYXRjaC1y ZWdzLTguYw0KPj4gaW5kZXggYWNlZGE3ZTVjYjguLjNlNWU1OWIzYzc5IDEwMDY0NA0KPj4gLS0t IGEvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vemVyby1zY3JhdGNoLXJlZ3MtOC5jDQo+PiAr KysgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi96ZXJvLXNjcmF0Y2gtcmVncy04LmMNCj4+ IEBAIC0xLDUgKzEsNSBAQA0KPj4gLyogeyBkZy1kbyBydW4gfSAqLw0KPj4gLS8qIHsgZGctc2tp cC1pZiAibm90IGltcGxlbWVudGVkIiB7ICEgeyBpPzg2Ki0qLSogeDg2XzY0Ki0qLSogc3BhcmMq LSotKiBhYXJjaDY0Ki0qLSogYXJtKi0qLSogbnZwdHgqLSotKiBzMzkwKi0qLSogfSB9IH0gKi8N Cj4+ICsvKiB7IGRnLXNraXAtaWYgIm5vdCBpbXBsZW1lbnRlZCIgeyAhIHsgaT84NiotKi0qIHg4 Nl82NCotKi0qIHNwYXJjKi0qLSogYWFyY2g2NCotKi0qIGFybSotKi0qIG52cHR4Ki0qLSogczM5 MCotKi0qIG1pcHMqLSotKiB9IH0gfSAqLw0KPj4gLyogeyBkZy1vcHRpb25zICItTzIgLWZ6ZXJv LWNhbGwtdXNlZC1yZWdzPWFsbC1hcmciIH0gKi8NCj4+IA0KPj4gI2luY2x1ZGUgInplcm8tc2Ny YXRjaC1yZWdzLTEuYyINCj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1v bi96ZXJvLXNjcmF0Y2gtcmVncy05LmMgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi96ZXJv LXNjcmF0Y2gtcmVncy05LmMNCj4+IGluZGV4IGYzMTUyYTdhNzMyLi5kODhkNjFhY2NiMiAxMDA2 NDQNCj4+IC0tLSBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3plcm8tc2NyYXRjaC1yZWdz LTkuYw0KPj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vemVyby1zY3JhdGNoLXJl Z3MtOS5jDQo+PiBAQCAtMSw1ICsxLDUgQEANCj4+IC8qIHsgZGctZG8gcnVuIH0gKi8NCj4+IC0v KiB7IGRnLXNraXAtaWYgIm5vdCBpbXBsZW1lbnRlZCIgeyAhIHsgaT84NiotKi0qIHg4Nl82NCot Ki0qIHNwYXJjKi0qLSogYWFyY2g2NCotKi0qIGFybSotKi0qIG52cHR4Ki0qLSogczM5MCotKi0q IH0gfSB9ICovDQo+PiArLyogeyBkZy1za2lwLWlmICJub3QgaW1wbGVtZW50ZWQiIHsgISB7IGk/ ODYqLSotKiB4ODZfNjQqLSotKiBzcGFyYyotKi0qIGFhcmNoNjQqLSotKiBhcm0qLSotKiBudnB0 eCotKi0qIHMzOTAqLSotKiBtaXBzKi0qLSogfSB9IH0gKi8NCj4+IC8qIHsgZGctb3B0aW9ucyAi LU8yIC1memVyby1jYWxsLXVzZWQtcmVncz1hbGwiIH0gKi8NCj4+IA0KPj4gI2luY2x1ZGUgInpl cm8tc2NyYXRjaC1yZWdzLTEuYyINCg0K