From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com [IPv6:2607:f8b0:4864:20::72d]) by sourceware.org (Postfix) with ESMTPS id D89EB3858D37 for ; Thu, 26 Oct 2023 14:00:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D89EB3858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D89EB3858D37 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::72d ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698328824; cv=none; b=C0u+JGM7OLOY3gurEaN5TCt/kDhAIGeiSjHzrrbYXZolWqsrpHCPrBIPgskH2o9CE3UiLsdxzx+MgdN3L7/EMYaOclJigBBf1nly05bE1DVxX1gbVm0wzXzyUz2lY+JijsICsDtxK0ja2xl+Y/t5ik7o5djaMr9WBISDcoV8oZE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698328824; c=relaxed/simple; bh=IBCcpafJiBgcl/bGAYtK7wRCAZVaoM0MGz5mg4en9Qc=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=O8UyozhvX/CuZoo2DcZHpXmzTHH3bHmdg2uJvJ17TZV1ggbyIYz2aPmWJoUKA8mF0pNYUfly7wrfACBFQAMvY3jbFyFGSxroLX0krRXCVrO36JNZuXCnoaPFoEn0Rtmx5ioZE2ilMHCAuhvF35J5dOmo9GHIbxgvxXqIwPLogS8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-qk1-x72d.google.com with SMTP id af79cd13be357-7789923612dso74395385a.0 for ; Thu, 26 Oct 2023 07:00:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698328821; x=1698933621; darn=gcc.gnu.org; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=2BrOECqNd+4Mxzl9ZLKEY86fOdQGNox1xI67fGEOPVE=; b=K0nSEYquqwCxHPBtoKbhP76EiuutIWdhoMtEt3Rh5DLY3rOKGPMK/4k40Kmt1kf5Xo Pj/bzGFaht0LUGIS0uHo3eJ3ENcuGUCgFSRPb0v+PLxim7nXzT3FXd9wV2iePJaIiJ01 LzRfgrI35ytum2VV2nIzZcSudLKD49fY7eR0SYvCNcxHsFAdvUcvEwHP4Sz1kZHxj/eu 5RY0L+1Sd1VcmjuJ9mRsAdPtgh/NsGI3UqLar3yFsJZww6/IKFhjwANeCJcdDQHGOrYK b3KAzfaT++LswakFR522DoDxc98PlBYn/N5liyGZFpJuGGlAp0Lf+mogp0OdLRny8JIL EcLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698328821; x=1698933621; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=2BrOECqNd+4Mxzl9ZLKEY86fOdQGNox1xI67fGEOPVE=; b=FmHK8/TkgDjytlXk1Gm8tHESKcgIVdgieoIRkGtfbiPATRTFEKAvfjv24YoWNSPyVl KwwWqeTLziFRsPGSBdAOg4Fl2ZCT/JF9IDxGUA5a92IegpAOHunlJ3IMUT7jR7qvkmQP pl4VQmWA7HWtlogSJR3sGCpvQb1dWxaV0v+03LLULERMrcMupDY9jsYReYlKJn3j1IyK BzeHvoT3+OMedRYvW4wMmM/pWDFezzgqI2CGd8L7PxzqBbX/MZO4hmstnDDWbkk/GRqN 9u0bSuyV9Uk/WsOX+urftg1C2p69w9MaGmCWImLGKWXEUZhgj4WQxGR6jgrrq2vbH3fD kCZg== X-Gm-Message-State: AOJu0Yxa8z6lTq8X6P2k3uRJHibvVQbcAoVQaE2ZAYWtyvpTaioCMJeC tXrR2jeq4wo5Pg2R1QOxvvAgFZ5iMQk= X-Google-Smtp-Source: AGHT+IHfv1e3F1soYse2QSzBdrgCSLJZNFaYnUewxLCn5eOl+sva+sfDdKGn1MrAqNfevxWzx3RyJw== X-Received: by 2002:a05:620a:2947:b0:779:f0be:8d7e with SMTP id n7-20020a05620a294700b00779f0be8d7emr7909633qkp.27.1698328821103; Thu, 26 Oct 2023 07:00:21 -0700 (PDT) Received: from [192.168.1.88] (23-233-12-249.cpe.pppoe.ca. [23.233.12.249]) by smtp.gmail.com with ESMTPSA id z12-20020ae9e60c000000b0077772296f9dsm4948767qkf.126.2023.10.26.07.00.19 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Oct 2023 07:00:20 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------dx0DoRB4anEI2h2ZwKIsQmx1" Message-ID: Date: Thu, 26 Oct 2023 10:00:18 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Content-Language: en-US To: "gcc-patches@gcc.gnu.org" From: Vladimir Makarov Subject: [pushed] [RA]: Modify cost calculation for dealing with pseudo equivalences X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP 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. --------------dx0DoRB4anEI2h2ZwKIsQmx1 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit This is the second attempt to improve RA cost calculation for pseudos with equivalences.  The patch explanation is in the log message. The patch was successfully bootstrapped and tested on x86-64, aarch64, and ppc64le.  The patch was also benchmarked on x86-64 spec2017.  specfp2017 performance did not changed, specint2017 improved by 0.3%. --------------dx0DoRB4anEI2h2ZwKIsQmx1 Content-Type: text/x-patch; charset=UTF-8; name="ra-equiv-2.patch" Content-Disposition: attachment; filename="ra-equiv-2.patch" Content-Transfer-Encoding: base64 Y29tbWl0IGY1NWNkY2UzZjhkZDg1MDNlMDgwZTM1YmU1OWM1ZjUzOTBmNmQ5NWUKQXV0aG9y OiBWbGFkaW1pciBOLiBNYWthcm92IDx2bWFrYXJvdkByZWRoYXQuY29tPgpEYXRlOiAgIFRo dSBPY3QgMjYgMDk6NTA6NDAgMjAyMyAtMDQwMAoKICAgIFtSQV06IE1vZGZpZnkgY29zdCBj YWxjdWxhdGlvbiBmb3IgZGVhbGluZyB3aXRoIGVxdWl2YWxlbmNlcwogICAgCiAgICBSSVND ViB0YXJnZXQgZGV2ZWxvcGVycyByZXBvcnRlZCB0aGF0IHBzZXVkb3Mgd2l0aCBlcXVpdmFs ZW5jZSB1c2VkIGluCiAgICBhIGxvb3AgY2FuIGJlIHNwaWxsZWQuICBTaW1wbGUgY2hhbmdl cyBvZiBoZXVyaXN0aWNzIG9mIGNvc3QKICAgIGNhbGN1bGF0aW9uIG9mIHBzZXVkb3Mgd2l0 aCBlcXVpdmFsZW5jZSBvciBldmVuIGlnbm9yaW5nIGVxdWl2YWxlbmNlcwogICAgcmVzdWx0 ZWQgaW4gbnVtZXJvdXMgdGVzdHN1aXRlIGZhaWx1cmVzIG9uIGRpZmZlcmVudCB0YXJnZXRz IG9yIHdvcnNlCiAgICBzcGVjMjAxNyBwZXJmb3JtYW5jZS4gIFRoaXMgcGF0Y2ggaW1wbGVt ZW50cyBtb3JlIHNvcGhpc3RpY2F0ZWQgY29zdAogICAgY2FsY3VsYXRpb25zIG9mIHBzZXVk b3Mgd2l0aCBlcXVpdmFsZW5jZXMuICBUaGUgcGF0Y2ggZG9lcyBub3QgY2hhbmdlCiAgICBS QSBiZWhhdmlvdXIgZm9yIHRhcmdldHMgc3RpbGwgdXNpbmcgdGhlIG9sZCByZWxvYWQgcGFz cyBpbnN0ZWFkIG9mCiAgICBMUkEuICBUaGUgcGF0Y2ggc29sdmVzIHRoZSByZXBvcnRlZCBw cm9ibGVtIGFuZCBpbXByb3ZlcyB4ODYtNjQKICAgIHNwZWNpbnQyMDE3IGEgYml0IChzcGVj ZnAyMDE3IHBlcmZvcm1hbmNlIHN0YXlzIHRoZSBzYW1lKS4gIFRoZSBwYXRjaAogICAgdGFr ZXMgaW50byBhY2NvdW50IGhvdyB0aGUgZXF1aXZhbGVuY2Ugd2lsbCBiZSB1c2VkOiB3aWxs IGl0IGJlCiAgICBpbnRlZ3JhdGVkIGludG8gdGhlIHVzZXIgaW5zbnMgb3IgcmVxdWlyZSBh biBpbnB1dCByZWxvYWQgaW5zbi4gIEl0CiAgICByZXF1aXJlcyBhZGRpdGlvbmFsIHBhc3Mg b3ZlciBpbnNucy4gIFRvIGNvbXBlbnNhdGUgUkEgc2xvdyBkb3duLCB0aGUKICAgIHBhdGNo IHJlbW92ZXMgYSBwYXNzIG92ZXIgaW5zbnMgaW4gdGhlIHJlbG9hZCBwYXNzIHVzZWQgYnkg SVJBIGJlZm9yZS4KICAgIFRoaXMgYWxzbyBkZWNvdXBsZXMgSVJBIGZyb20gcmVsb2FkIG1v cmUgYW5kIHdpbGwgaGVscCB0byByZW1vdmUgdGhlCiAgICByZWxvYWQgcGFzcyBpbiB0aGUg ZnV0dXJlIGlmIGl0IGV2ZXIgaGFwcGVucy4KICAgIAogICAgZ2NjL0NoYW5nZUxvZzoKICAg IAogICAgICAgICAgICAqIGR3YXJmMm91dC5jYyAocmVnX2xvY19kZXNjcmlwdG9yKTogVXNl IGxyYV9lbGltaW5hdGVfcmVncyB3aGVuCiAgICAgICAgICAgIExSQSBpcyB1c2VkLgogICAg ICAgICAgICAqIGlyYS1jb3N0cy5jYzogSW5jbHVkZSByZWdzZXQuaC4KICAgICAgICAgICAg KGVxdWl2X2Nhbl9iZV9jb25zdW1lZF9wLCBnZXRfZXF1aXZfcmVnbm8sIGNhbGN1bGF0ZV9l cXVpdl9nYWlucyk6CiAgICAgICAgICAgIE5ldyBmdW5jdGlvbnMuCiAgICAgICAgICAgIChm aW5kX2Nvc3RzX2FuZF9jbGFzc2VzKTogQ2FsbCBjYWxjdWxhdGVfZXF1aXZfZ2FpbnMgYW5k IHJlZGVmaW5lCiAgICAgICAgICAgIG1lbV9jb3N0IG9mIHBzZXVkb3Mgd2l0aCBlcXVpdnMg d2hlbiBMUkEgaXMgdXNlZC4KICAgICAgICAgICAgKiB2YXItdHJhY2tpbmcuY2M6IEluY2x1 ZGUgaXJhLmggYW5kIGxyYS5oLgogICAgICAgICAgICAodnRfaW5pdGlhbGl6ZSk6IFVzZSBs cmFfZWxpbWluYXRlX3JlZ3Mgd2hlbiBMUkEgaXMgdXNlZC4KCmRpZmYgLS1naXQgYS9nY2Mv ZHdhcmYyb3V0LmNjIGIvZ2NjL2R3YXJmMm91dC5jYwppbmRleCAwZWE3M2JmNzgyZS4uMWUw Y2VjNjZjNWUgMTAwNjQ0Ci0tLSBhL2djYy9kd2FyZjJvdXQuY2MKKysrIGIvZ2NjL2R3YXJm Mm91dC5jYwpAQCAtMTQzMTEsNyArMTQzMTEsOSBAQCByZWdfbG9jX2Rlc2NyaXB0b3IgKHJ0 eCBydGwsIGVudW0gdmFyX2luaXRfc3RhdHVzIGluaXRpYWxpemVkKQogICAgICBhcmd1bWVu dCBwb2ludGVyIGFuZCBzb2Z0IGZyYW1lIHBvaW50ZXIgcnR4J3MuCiAgICAgIFVzZSBEV19P UF9mYnJlZyBvZmZzZXQgRFdfT1Bfc3RhY2tfdmFsdWUgaW4gdGhpcyBjYXNlLiAgKi8KICAg aWYgKChydGwgPT0gYXJnX3BvaW50ZXJfcnR4IHx8IHJ0bCA9PSBmcmFtZV9wb2ludGVyX3J0 eCkKLSAgICAgICYmIGVsaW1pbmF0ZV9yZWdzIChydGwsIFZPSURtb2RlLCBOVUxMX1JUWCkg IT0gcnRsKQorICAgICAgJiYgKGlyYV91c2VfbHJhX3AKKwkgID8gbHJhX2VsaW1pbmF0ZV9y ZWdzIChydGwsIFZPSURtb2RlLCBOVUxMX1JUWCkKKwkgIDogZWxpbWluYXRlX3JlZ3MgKHJ0 bCwgVk9JRG1vZGUsIE5VTExfUlRYKSkgIT0gcnRsKQogICAgIHsKICAgICAgIGR3X2xvY19k ZXNjcl9yZWYgcmVzdWx0ID0gTlVMTDsKIApkaWZmIC0tZ2l0IGEvZ2NjL2lyYS1jb3N0cy5j YyBiL2djYy9pcmEtY29zdHMuY2MKaW5kZXggZDllNzAwZTg5NDcuLmE1OWQ0NWE2ZTI0IDEw MDY0NAotLS0gYS9nY2MvaXJhLWNvc3RzLmNjCisrKyBiL2djYy9pcmEtY29zdHMuY2MKQEAg LTMwLDYgKzMwLDcgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4g IElmIG5vdCBzZWUKICNpbmNsdWRlICJ0bV9wLmgiCiAjaW5jbHVkZSAiaW5zbi1jb25maWcu aCIKICNpbmNsdWRlICJyZWdzLmgiCisjaW5jbHVkZSAicmVnc2V0LmgiCiAjaW5jbHVkZSAi aXJhLmgiCiAjaW5jbHVkZSAiaXJhLWludC5oIgogI2luY2x1ZGUgImFkZHJlc3Nlcy5oIgpA QCAtMTc1Nyw2ICsxNzU4LDE0NSBAQCBwcm9jZXNzX2JiX25vZGVfZm9yX2Nvc3RzIChpcmFf bG9vcF90cmVlX25vZGVfdCBsb29wX3RyZWVfbm9kZSkKICAgICBwcm9jZXNzX2JiX2Zvcl9j b3N0cyAoYmIpOwogfQogCisvKiBDaGVjayB0aGF0IHJlZyBSRUdOTyBjYW4gYmUgY2hhbmdl ZCBieSBUTyBpbiBJTlNOLiAgUmV0dXJuIHRydWUgaW4gY2FzZSB0aGUKKyAgIHJlc3VsdCBp bnNuIHdvdWxkIGJlIHZhbGlkIG9uZS4gICovCitzdGF0aWMgYm9vbAorZXF1aXZfY2FuX2Jl X2NvbnN1bWVkX3AgKGludCByZWdubywgcnR4IHRvLCBydHhfaW5zbiAqaW5zbikKK3sKKyAg dmFsaWRhdGVfcmVwbGFjZV9zcmNfZ3JvdXAgKHJlZ25vX3JlZ19ydHhbcmVnbm9dLCB0bywg aW5zbik7CisgIGJvb2wgcmVzID0gdmVyaWZ5X2NoYW5nZXMgKDApOworICBjYW5jZWxfY2hh bmdlcyAoMCk7CisgIHJldHVybiByZXM7Cit9CisKKy8qIFJldHVybiB0cnVlIGlmIFggY29u dGFpbnMgYSBwc2V1ZG8gd2l0aCBlcXVpdmFsZW5jZS4gIEluIHRoaXMgY2FzZSBhbHNvCisg ICByZXR1cm4gdGhlIHBzZXVkbyB0aHJvdWdoIHBhcmFtZXRlciBSRUcuICBJZiB0aGUgcHNl dWRvIGlzIGEgcGFydCBvZiBzdWJyZWcsCisgICByZXR1cm4gdGhlIHN1YnJlZyB0aHJvdWdo IHBhcmFtZXRlciBTVUJSRUcuICAqLworCitzdGF0aWMgYm9vbAorZ2V0X2VxdWl2X3JlZ25v IChydHggeCwgaW50ICZyZWdubywgcnR4ICZzdWJyZWcpCit7CisgIHN1YnJlZyA9IE5VTExf UlRYOworICBpZiAoR0VUX0NPREUgKHgpID09IFNVQlJFRykKKyAgICB7CisgICAgICBzdWJy ZWcgPSB4OworICAgICAgeCA9IFNVQlJFR19SRUcgKHgpOworICAgIH0KKyAgaWYgKFJFR19Q ICh4KQorICAgICAgJiYgKGlyYV9yZWdfZXF1aXZbUkVHTk8gKHgpXS5tZW1vcnkgIT0gTlVM TAorCSAgfHwgaXJhX3JlZ19lcXVpdltSRUdOTyAoeCldLmNvbnN0YW50ICE9IE5VTEwpKQor ICAgIHsKKyAgICAgIHJlZ25vID0gUkVHTk8gKHgpOworICAgICAgcmV0dXJuIHRydWU7Cisg ICAgfQorICBSVFhfQ09ERSBjb2RlID0gR0VUX0NPREUgKHgpOworICBjb25zdCBjaGFyICpm bXQgPSBHRVRfUlRYX0ZPUk1BVCAoY29kZSk7CisKKyAgZm9yIChpbnQgaSA9IEdFVF9SVFhf TEVOR1RIIChjb2RlKSAtIDE7IGkgPj0gMDsgaS0tKQorICAgIGlmIChmbXRbaV0gPT0gJ2Un KQorICAgICAgeworCWlmIChnZXRfZXF1aXZfcmVnbm8gKFhFWFAgKHgsIGkpLCByZWdubywg c3VicmVnKSkKKwkgIHJldHVybiB0cnVlOworICAgICAgfQorICAgIGVsc2UgaWYgKGZtdFtp XSA9PSAnRScpCisgICAgICB7CisJZm9yIChpbnQgaiA9IDA7IGogPCBYVkVDTEVOICh4LCBp KTsgaisrKQorCSAgaWYgKGdldF9lcXVpdl9yZWdubyAoWFZFQ0VYUCAoeCwgaSwgaiksIHJl Z25vLCBzdWJyZWcpKQorCSAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKyAgcmV0dXJuIGZh bHNlOworfQorCisvKiBBIHBhc3MgdGhyb3VnaCB0aGUgY3VycmVudCBmdW5jdGlvbiBpbnNu cy4gIENhbGN1bGF0ZSBjb3N0cyBvZiB1c2luZworICAgZXF1aXZhbGVuY2VzIGZvciBwc2V1 ZG9zIGFuZCBzdG9yZSB0aGVtIGluIHJlZ25vX2VxdWl2X2dhaW5zLiAgKi8KKworc3RhdGlj IHZvaWQKK2NhbGN1bGF0ZV9lcXVpdl9nYWlucyAodm9pZCkKK3sKKyAgYmFzaWNfYmxvY2sg YmI7CisgIGludCByZWdubywgZnJlcSwgY29zdDsKKyAgcnR4IHN1YnJlZzsKKyAgcnR4X2lu c24gKmluc247CisgIG1hY2hpbmVfbW9kZSBtb2RlOworICBlbnVtIHJlZ19jbGFzcyByY2xh c3M7CisgIGJpdG1hcF9oZWFkIGVxdWl2X3BzZXVkb3M7CisKKyAgaXJhX2Fzc2VydCAoYWxs b2Nub19wKTsKKyAgYml0bWFwX2luaXRpYWxpemUgKCZlcXVpdl9wc2V1ZG9zLCAmcmVnX29i c3RhY2spOworICBmb3IgKHJlZ25vID0gbWF4X3JlZ19udW0gKCkgLSAxOyByZWdubyA+PSBG SVJTVF9QU0VVRE9fUkVHSVNURVI7IHJlZ25vLS0pCisgICAgaWYgKGlyYV9yZWdfZXF1aXZb cmVnbm9dLmluaXRfaW5zbnMgIT0gTlVMTAorCSYmIChpcmFfcmVnX2VxdWl2W3JlZ25vXS5t ZW1vcnkgIT0gTlVMTAorCSAgICB8fCAoaXJhX3JlZ19lcXVpdltyZWdub10uY29uc3RhbnQg IT0gTlVMTAorCQkvKiBJZ25vcmUgY29tcGxpY2F0ZWQgY29uc3RhbnRzIHdoaWNoIHByb2Jh Ymx5IHdpbGwgYmUgcGxhY2VkCisJCSAgIGluIG1lbW9yeTogICovCisJCSYmIEdFVF9DT0RF IChpcmFfcmVnX2VxdWl2W3JlZ25vXS5jb25zdGFudCkgIT0gQ09OU1RfRE9VQkxFCisJCSYm IEdFVF9DT0RFIChpcmFfcmVnX2VxdWl2W3JlZ25vXS5jb25zdGFudCkgIT0gQ09OU1RfVkVD VE9SCisJCSYmIEdFVF9DT0RFIChpcmFfcmVnX2VxdWl2W3JlZ25vXS5jb25zdGFudCkgIT0g TEFCRUxfUkVGKSkpCisgICAgICB7CisJcnR4X2luc25fbGlzdCAqeDsKKwlmb3IgKHggPSBp cmFfcmVnX2VxdWl2W3JlZ25vXS5pbml0X2luc25zOyB4ICE9IE5VTEw7IHggPSB4LT5uZXh0 ICgpKQorCSAgeworCSAgICBpbnNuID0geC0+aW5zbiAoKTsKKwkgICAgcnR4IHNldCA9IHNp bmdsZV9zZXQgKGluc24pOworCisJICAgIGlmIChzZXQgPT0gTlVMTF9SVFggfHwgU0VUX0RF U1QgKHNldCkgIT0gcmVnbm9fcmVnX3J0eFtyZWdub10pCisJICAgICAgYnJlYWs7CisJICAg IGJiID0gQkxPQ0tfRk9SX0lOU04gKGluc24pOworCSAgICBpcmFfY3Vycl9yZWdub19hbGxv Y25vX21hcAorCSAgICAgID0gaXJhX2JiX25vZGVzW2JiLT5pbmRleF0ucGFyZW50LT5yZWdu b19hbGxvY25vX21hcDsKKwkgICAgbW9kZSA9IFBTRVVET19SRUdOT19NT0RFIChyZWdubyk7 CisJICAgIHJjbGFzcyA9IHByZWZbQ09TVF9JTkRFWCAocmVnbm8pXTsKKwkgICAgaXJhX2lu aXRfcmVnaXN0ZXJfbW92ZV9jb3N0X2lmX25lY2Vzc2FyeSAobW9kZSk7CisJICAgIGlmIChp cmFfcmVnX2VxdWl2W3JlZ25vXS5tZW1vcnkgIT0gTlVMTCkKKwkgICAgICBjb3N0ID0gaXJh X21lbW9yeV9tb3ZlX2Nvc3RbbW9kZV1bcmNsYXNzXVsxXTsKKwkgICAgZWxzZQorCSAgICAg IGNvc3QgPSBpcmFfcmVnaXN0ZXJfbW92ZV9jb3N0W21vZGVdW3JjbGFzc11bcmNsYXNzXTsK KwkgICAgZnJlcSA9IFJFR19GUkVRX0ZST01fQkIgKGJiKTsKKwkgICAgcmVnbm9fZXF1aXZf Z2FpbnNbcmVnbm9dICs9IGNvc3QgKiBmcmVxOworCSAgfQorCWlmICh4ICE9IE5VTEwpCisJ ICAvKiBXZSBmb3VuZCBjb21wbGljYXRlZCBlcXVpdiBvciByZXZlcnNlIGVxdWl2IG1lbT1y ZWcuICBJZ25vcmUKKwkgICAgIHRoZW0uICAqLworCSAgcmVnbm9fZXF1aXZfZ2FpbnNbcmVn bm9dID0gMDsKKwllbHNlCisJICBiaXRtYXBfc2V0X2JpdCAoJmVxdWl2X3BzZXVkb3MsIHJl Z25vKTsKKyAgICAgIH0KKworICBGT1JfRUFDSF9CQl9GTiAoYmIsIGNmdW4pCisgICAgewor ICAgICAgZnJlcSA9IFJFR19GUkVRX0ZST01fQkIgKGJiKTsKKyAgICAgIGlyYV9jdXJyX3Jl Z25vX2FsbG9jbm9fbWFwCisJPSBpcmFfYmJfbm9kZXNbYmItPmluZGV4XS5wYXJlbnQtPnJl Z25vX2FsbG9jbm9fbWFwOworICAgICAgRk9SX0JCX0lOU05TIChiYiwgaW5zbikKKwl7CisJ ICBpZiAoIUlOU05fUCAoaW5zbikgfHwgIWdldF9lcXVpdl9yZWdubyAoUEFUVEVSTiAoaW5z biksIHJlZ25vLCBzdWJyZWcpCisJICAgICAgfHwgIWJpdG1hcF9iaXRfcCAoJmVxdWl2X3Bz ZXVkb3MsIHJlZ25vKSkKKwkgICAgY29udGludWU7CisJICBydHggc3Vic3QgPSBpcmFfcmVn X2VxdWl2W3JlZ25vXS5tZW1vcnk7CisKKwkgIGlmIChzdWJzdCA9PSBOVUxMKQorCSAgICBz dWJzdCA9IGlyYV9yZWdfZXF1aXZbcmVnbm9dLmNvbnN0YW50OworCSAgaXJhX2Fzc2VydCAo c3Vic3QgIT0gTlVMTCk7CisJICBtb2RlID0gUFNFVURPX1JFR05PX01PREUgKHJlZ25vKTsK KwkgIGlyYV9pbml0X3JlZ2lzdGVyX21vdmVfY29zdF9pZl9uZWNlc3NhcnkgKG1vZGUpOwor CSAgYm9vbCBjb25zdW1lZF9wID0gZXF1aXZfY2FuX2JlX2NvbnN1bWVkX3AgKHJlZ25vLCBz dWJzdCwgaW5zbik7CisKKwkgIHJjbGFzcyA9IHByZWZbQ09TVF9JTkRFWCAocmVnbm8pXTsK KwkgIGlmIChNRU1fUCAoc3Vic3QpCisJICAgICAgLyogSWYgaXQgaXMgYSBjaGFuZ2Ugb2Yg Y29uc3RhbnQgaW50byBkb3VibGUgZm9yIGV4YW1wbGUsIHRoZQorCQkgcmVzdWx0IGNvbnN0 YW50IHByb2JhYmx5IHdpbGwgYmUgcGxhY2VkIGluIG1lbW9yeS4gICovCisJICAgICAgfHwg KHN1YnJlZyAhPSBOVUxMX1JUWCAmJiAhSU5URUdSQUxfTU9ERV9QIChHRVRfTU9ERSAoc3Vi cmVnKSkpKQorCSAgICBjb3N0ID0gaXJhX21lbW9yeV9tb3ZlX2Nvc3RbbW9kZV1bcmNsYXNz XVsxXSArIChjb25zdW1lZF9wID8gMCA6IDEpOworCSAgZWxzZSBpZiAoY29uc3VtZWRfcCkK KwkgICAgY29udGludWU7CisJICBlbHNlCisJICAgIGNvc3QgPSBpcmFfcmVnaXN0ZXJfbW92 ZV9jb3N0W21vZGVdW3JjbGFzc11bcmNsYXNzXTsKKwkgIHJlZ25vX2VxdWl2X2dhaW5zW3Jl Z25vXSAtPSBjb3N0ICogZnJlcTsKKwl9CisgICAgfQorICBiaXRtYXBfY2xlYXIgKCZlcXVp dl9wc2V1ZG9zKTsKK30KKwogLyogRmluZCBjb3N0cyBvZiByZWdpc3RlciBjbGFzc2VzIGFu ZCBtZW1vcnkgZm9yIGFsbG9jbm9zIG9yIHBzZXVkb3MKICAgIGFuZCB0aGVpciBiZXN0IGNv c3RzLiAgU2V0IHVwIHByZWZlcnJlZCwgYWx0ZXJuYXRpdmUgYW5kIGFsbG9jbm8KICAgIGNs YXNzZXMgZm9yIHBzZXVkb3MuICAqLwpAQCAtMTg1NSw2ICsxOTk1LDEyIEBAIGZpbmRfY29z dHNfYW5kX2NsYXNzZXMgKEZJTEUgKmR1bXBfZmlsZSkKICAgICAgIGlmIChwYXNzID09IDAp CiAJcHJlZiA9IHByZWZfYnVmZmVyOwogCisgICAgICBpZiAoaXJhX3VzZV9scmFfcCAmJiBh bGxvY25vX3AgJiYgcGFzcyA9PSAxKQorCS8qIEl0IGlzIGEgcGFzcyB0aHJvdWdoIGFsbCBp bnNucy4gIFNvIGRvIGl0IG9uY2UgYW5kIG9ubHkgZm9yIFJBIChub3QKKwkgICBmb3IgaW5z biBzY2hlZHVsZXIpIHdoZW4gd2UgYWxyZWFkeSBmb3VuZCBwcmVmZXJhYmxlIHBzZXVkbyBy ZWdpc3RlcgorCSAgIGNsYXNzZXMgb24gdGhlIHByZXZpb3VzIHBhc3MuICAqLworCWNhbGN1 bGF0ZV9lcXVpdl9nYWlucyAoKTsKKwogICAgICAgLyogTm93IGZvciBlYWNoIGFsbG9jbm8g bG9vayBhdCBob3cgZGVzaXJhYmxlIGVhY2ggY2xhc3MgaXMgYW5kCiAJIGZpbmQgd2hpY2gg Y2xhc3MgaXMgcHJlZmVycmVkLiAgKi8KICAgICAgIGZvciAoaSA9IG1heF9yZWdfbnVtICgp IC0gMTsgaSA+PSBGSVJTVF9QU0VVRE9fUkVHSVNURVI7IGktLSkKQEAgLTE5NDcsNiArMjA5 MywxNyBAQCBmaW5kX2Nvc3RzX2FuZF9jbGFzc2VzIChGSUxFICpkdW1wX2ZpbGUpCiAJICAg IH0KIAkgIGlmIChpID49IGZpcnN0X21vdmVhYmxlX3BzZXVkbyAmJiBpIDwgbGFzdF9tb3Zl YWJsZV9wc2V1ZG8pCiAJICAgIGlfbWVtX2Nvc3QgPSAwOworCSAgZWxzZSBpZiAoaXJhX3Vz ZV9scmFfcCkKKwkgICAgeworCSAgICAgIGlmIChlcXVpdl9zYXZpbmdzID4gMCkKKwkJewor CQkgIGlfbWVtX2Nvc3QgPSAwOworCQkgIGlmIChpcmFfZHVtcF9maWxlICE9IE5VTEwgJiYg aW50ZXJuYWxfZmxhZ19pcmFfdmVyYm9zZSA+IDUpCisJCSAgICBmcHJpbnRmIChpcmFfZHVt cF9maWxlLAorCQkJICAgICAiICAgVXNlIE1FTSBmb3IgciVkIGFzIHRoZSBlcXVpdiBzYXZp bmdzIGlzICVkXG4iLAorCQkJICAgICBpLCBlcXVpdl9zYXZpbmdzKTsKKwkJfQorCSAgICB9 CiAJICBlbHNlIGlmIChlcXVpdl9zYXZpbmdzIDwgMCkKIAkgICAgaV9tZW1fY29zdCA9IC1l cXVpdl9zYXZpbmdzOwogCSAgZWxzZSBpZiAoZXF1aXZfc2F2aW5ncyA+IDApCkBAIC0yMzk1 LDcgKzI1NTIsMTAgQEAgaXJhX2Nvc3RzICh2b2lkKQogICB0b3RhbF9hbGxvY25vX2Nvc3Rz ID0gKHN0cnVjdCBjb3N0cyAqKSBpcmFfYWxsb2NhdGUgKG1heF9zdHJ1Y3RfY29zdHNfc2l6 ZQogCQkJCQkJICAgICAgICogaXJhX2FsbG9jbm9zX251bSk7CiAgIGluaXRpYXRlX3JlZ25v X2Nvc3RfY2xhc3NlcyAoKTsKLSAgY2FsY3VsYXRlX2VsaW1fY29zdHNfYWxsX2luc25zICgp OworICBpZiAoIWlyYV91c2VfbHJhX3ApCisgICAgLyogUHJvY2VzcyBlcXVpdnMgaW4gcmVs b2FkIHRvIHVwZGF0ZSBjb3N0cyB0aHJvdWdoIGhvb2sKKyAgICAgICBpcmFfYWRqdXN0X2Vx dWl2X3JlZ19jb3N0LiAgKi8KKyAgICBjYWxjdWxhdGVfZWxpbV9jb3N0c19hbGxfaW5zbnMg KCk7CiAgIGZpbmRfY29zdHNfYW5kX2NsYXNzZXMgKGlyYV9kdW1wX2ZpbGUpOwogICBzZXR1 cF9hbGxvY25vX2NsYXNzX2FuZF9jb3N0cyAoKTsKICAgZmluaXNoX3JlZ25vX2Nvc3RfY2xh c3NlcyAoKTsKQEAgLTI1MjAsMTMgKzI2ODAsMTQgQEAgaXJhX3R1bmVfYWxsb2Nub19jb3N0 cyAodm9pZCkKICAgICB9CiB9CiAKLS8qIEFkZCBDT1NUIHRvIHRoZSBlc3RpbWF0ZWQgZ2Fp biBmb3IgZWxpbWluYXRpbmcgUkVHTk8gd2l0aCBpdHMKLSAgIGVxdWl2YWxlbmNlLiAgSWYg Q09TVCBpcyB6ZXJvLCByZWNvcmQgdGhhdCBubyBzdWNoIGVsaW1pbmF0aW9uIGlzCi0gICBw b3NzaWJsZS4gICovCisvKiBBIGhvb2sgZnJvbSB0aGUgcmVsb2FkIHBhc3MuICBBZGQgQ09T VCB0byB0aGUgZXN0aW1hdGVkIGdhaW4gZm9yIGVsaW1pbmF0aW5nCisgICBSRUdOTyB3aXRo IGl0cyBlcXVpdmFsZW5jZS4gIElmIENPU1QgaXMgemVybywgcmVjb3JkIHRoYXQgbm8gc3Vj aAorICAgZWxpbWluYXRpb24gaXMgcG9zc2libGUuICAqLwogCiB2b2lkCiBpcmFfYWRqdXN0 X2VxdWl2X3JlZ19jb3N0ICh1bnNpZ25lZCByZWdubywgaW50IGNvc3QpCiB7CisgIGlyYV9h c3NlcnQgKCFpcmFfdXNlX2xyYV9wKTsKICAgaWYgKGNvc3QgPT0gMCkKICAgICByZWdub19l cXVpdl9nYWluc1tyZWdub10gPSAwOwogICBlbHNlCmRpZmYgLS1naXQgYS9nY2MvdmFyLXRy YWNraW5nLmNjIGIvZ2NjL3Zhci10cmFja2luZy5jYwppbmRleCBkOGRhZmE1NDgxYS4uNGE4 MWNjYmU0ODYgMTAwNjQ0Ci0tLSBhL2djYy92YXItdHJhY2tpbmcuY2MKKysrIGIvZ2NjL3Zh ci10cmFja2luZy5jYwpAQCAtMTA3LDYgKzEwNyw4IEBACiAjaW5jbHVkZSAiY2ZncnRsLmgi CiAjaW5jbHVkZSAiY2ZnYW5hbC5oIgogI2luY2x1ZGUgInJlbG9hZC5oIgorI2luY2x1ZGUg ImlyYS5oIgorI2luY2x1ZGUgImxyYS5oIgogI2luY2x1ZGUgImNhbGxzLmgiCiAjaW5jbHVk ZSAidHJlZS1kZmEuaCIKICNpbmNsdWRlICJ0cmVlLXNzYS5oIgpAQCAtMTAxMzEsNyArMTAx MzMsOSBAQCB2dF9pbml0aWFsaXplICh2b2lkKQogI2Vsc2UKICAgICAgIHJlZyA9IGFyZ19w b2ludGVyX3J0eDsKICNlbmRpZgotICAgICAgZWxpbSA9IGVsaW1pbmF0ZV9yZWdzIChyZWcs IFZPSURtb2RlLCBOVUxMX1JUWCk7CisgICAgICBlbGltID0gKGlyYV91c2VfbHJhX3AKKwkg ICAgICA/IGxyYV9lbGltaW5hdGVfcmVncyAocmVnLCBWT0lEbW9kZSwgTlVMTF9SVFgpCisJ ICAgICAgOiBlbGltaW5hdGVfcmVncyAocmVnLCBWT0lEbW9kZSwgTlVMTF9SVFgpKTsKICAg ICAgIGlmIChlbGltICE9IHJlZykKIAl7CiAJICBpZiAoR0VUX0NPREUgKGVsaW0pID09IFBM VVMpCkBAIC0xMDE1MSw3ICsxMDE1NSw5IEBAIHZ0X2luaXRpYWxpemUgKHZvaWQpCiAgICAg ICByZWcgPSBhcmdfcG9pbnRlcl9ydHg7CiAgICAgICBmcF9jZmFfb2Zmc2V0ID0gQVJHX1BP SU5URVJfQ0ZBX09GRlNFVCAoY3VycmVudF9mdW5jdGlvbl9kZWNsKTsKICNlbmRpZgotICAg ICAgZWxpbSA9IGVsaW1pbmF0ZV9yZWdzIChyZWcsIFZPSURtb2RlLCBOVUxMX1JUWCk7Cisg ICAgICBlbGltID0gKGlyYV91c2VfbHJhX3AKKwkgICAgICA/IGxyYV9lbGltaW5hdGVfcmVn cyAocmVnLCBWT0lEbW9kZSwgTlVMTF9SVFgpCisJICAgICAgOiBlbGltaW5hdGVfcmVncyAo cmVnLCBWT0lEbW9kZSwgTlVMTF9SVFgpKTsKICAgICAgIGlmIChlbGltICE9IHJlZykKIAl7 CiAJICBpZiAoR0VUX0NPREUgKGVsaW0pID09IFBMVVMpCkBAIC0xMDE4Myw3ICsxMDE4OSw5 IEBAIHZ0X2luaXRpYWxpemUgKHZvaWQpCiAjZWxzZQogICAgICAgcmVnID0gYXJnX3BvaW50 ZXJfcnR4OwogI2VuZGlmCi0gICAgICBlbGltID0gZWxpbWluYXRlX3JlZ3MgKHJlZywgVk9J RG1vZGUsIE5VTExfUlRYKTsKKyAgICAgIGVsaW0gPSAoaXJhX3VzZV9scmFfcAorCSAgICAg ID8gbHJhX2VsaW1pbmF0ZV9yZWdzIChyZWcsIFZPSURtb2RlLCBOVUxMX1JUWCkKKwkgICAg ICA6IGVsaW1pbmF0ZV9yZWdzIChyZWcsIFZPSURtb2RlLCBOVUxMX1JUWCkpOwogICAgICAg aWYgKGVsaW0gIT0gcmVnKQogCXsKIAkgIGlmIChHRVRfQ09ERSAoZWxpbSkgPT0gUExVUykK --------------dx0DoRB4anEI2h2ZwKIsQmx1--