From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x432.google.com (mail-pf1-x432.google.com [IPv6:2607:f8b0:4864:20::432]) by sourceware.org (Postfix) with ESMTPS id A6DC8385841B for ; Sat, 10 Jun 2023 16:45:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A6DC8385841B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-650c89c7e4fso3055585b3a.0 for ; Sat, 10 Jun 2023 09:45:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686415554; x=1689007554; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=kNdRnH1Mk4ZNHCTck3WA8jRFLLsZGxfeNyO6H7tvJj4=; b=X3dcPxvG5JaX+WfbqmupQx08sNQN+2W+wraI8j3rngjeaLk0cLx2AraZlGyyt7OAkG TQ0TtCFDrdaUdBQt08TH1tYoOw86sWkWaQicWU3jpnnYFYiSWk8aoqA1JjOisV7PnacJ uzbBlOVLU9IMU5dcWqLffEUy6C/FO5huFJssMj/CMtXcsVM9CupthautH5tsv2+qk47N 1qygBOQsUQmaEnxLE6MHSSz3OP1nSSAlBbF7h+tBnuuSrJrvAXsbpP8/XQL0hPzyta8J /TY95atETSmReoU3IUoLE5uvSjvgmrNlUU4hRUDNXf9jed/6UC2vr38WbGxYwz426KHS +X3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686415554; x=1689007554; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=kNdRnH1Mk4ZNHCTck3WA8jRFLLsZGxfeNyO6H7tvJj4=; b=M13iAKh2kQcceyW67F36EnNLGti0JlQ/HpbTxuf1tzcGdVgfB8iLyC5bOjEX/2XR0B QrGVP2apWYh+GbIH0VC/sv12Lh0kMwQdrntfdp7vD1lzR9Wv22ZY6jiKec/qyNUv3iuA ypIa/XpC/PLja+dno+IBrSoWl+FC1TZ2bAiaFJxF4+hjAjUYvGzXfD4aMnNpAMICOMhj QDYtYH/LMOmICeKhT98cEUoEmdkuRRAFljDsvVdkHYD+4phALD7MgX7gS/ek2Lb9icQX XPyRnUhTiIdlap/CkZIOcxFoBY6LVDnU05fTpxdtDSiYSLKuFinoyXlzF3Uodutdk+wi WfSw== X-Gm-Message-State: AC+VfDxmPg+dxLoPPRaxDySLgPHN7BgODXrk3c+bwjp0f6vEKCq6RCai lhkYxX66JZIRPE2W2oeRexc= X-Google-Smtp-Source: ACHHUZ4+L3XjpwJaWdKi0ueX2E9PCBQoaMUn317YVaxtzuh3E8V398RWYFA4NH5zici0KOf25p0Rtg== X-Received: by 2002:a05:6a20:12c9:b0:117:27fd:9fba with SMTP id v9-20020a056a2012c900b0011727fd9fbamr6023813pzg.19.1686415554358; Sat, 10 Jun 2023 09:45:54 -0700 (PDT) Received: from [172.31.0.109] ([136.36.130.248]) by smtp.gmail.com with ESMTPSA id n17-20020a6563d1000000b00513cc8c9597sm4283233pgv.10.2023.06.10.09.45.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 10 Jun 2023 09:45:53 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------u61W5PS3rjpwB7jKQxi7lLkA" Message-ID: <70a9bcd0-2914-bdfc-17a8-690406ff79a8@gmail.com> Date: Sat, 10 Jun 2023 10:45:52 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.1 Subject: Re: [patch] Fix PR101188 wrong code from postreload Content-Language: en-US To: Georg-Johann Lay , gcc-patches@gcc.gnu.org Cc: ebotcazou@libertysurf.fr References: <55462f69-84b8-6efb-b98e-399390928420@gjlay.de> <493f8d38-d55f-71e3-574e-c62e7ad0e6da@gjlay.de> From: Jeff Law In-Reply-To: <493f8d38-d55f-71e3-574e-c62e7ad0e6da@gjlay.de> X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,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. --------------u61W5PS3rjpwB7jKQxi7lLkA Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 6/3/23 12:38, Georg-Johann Lay wrote: >>>         } >>> >>>       note_stores (insn, move2add_note_store, insn); > > The point is that in the continue block, the effect of the insn is > recorded even if !success, it's just the computed effect of the code. > > Moreover, "next" is REG = REG + CONST_INT, so there are no REG_INC > notes, no? > > Also I don't have any testcases that break other than the one > that has a clobber of a GPR along with the pointer addition. > > I tried some "smart" solutions before, but all failed for some > reason, so I resorted to something that fixes the bug, and > *only* fixes the bug, and which has clearly no other side > effects than fixing the bug (I have to do all remote on compile > farm).  If a more elaborate fix is needed that also catches other > PRs, then I would hand this over to a postreload maintainer please. > >> Of particular importance for your case would be the note_stores call. >> But I could well see other targets needing the search for REG_INC >> notes as well as stack pushes. >> >> If I'm right, then wouldn't it be better to factor that blob of code >> above into its own function, then use it before the "continue" rather >> than implementing a custom can for CLOBBERS? > > I cannot answer that.  Maybe the authors of the code have some ideas. Here's what I was thinking. I don't have the bits here to build newlib or a simulator, so if you could give it a test it'd be appreciated. I suspect the note_stores call is the important one in here since as you note we're dealing with simple arithmetic and I wouldn't expect to have REG_INC notes or SP autoincs in that scenario. Jeff --------------u61W5PS3rjpwB7jKQxi7lLkA Content-Type: text/x-patch; charset=UTF-8; name="0007-avrfix.patch" Content-Disposition: attachment; filename="0007-avrfix.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9wb3N0cmVsb2FkLmNjIGIvZ2NjL3Bvc3RyZWxvYWQuY2MKaW5k ZXggMjBlMTM4YjRmYTguLjg1NmI3ZDZlMjJjIDEwMDY0NAotLS0gYS9nY2MvcG9zdHJlbG9h ZC5jYworKysgYi9nY2MvcG9zdHJlbG9hZC5jYwpAQCAtMTg5OSw2ICsxODk5LDc5IEBAIG1v dmUyYWRkX3VzZV9hZGQzX2luc24gKHNjYWxhcl9pbnRfbW9kZSBtb2RlLCBydHggcmVnLCBy dHggc3ltLCBydHggb2ZmLAogICByZXR1cm4gY2hhbmdlZDsKIH0KIAorLyogUGVyZm9ybSBh bnkgaW52YWxpZGF0aW9ucyBuZWNlc3NhcnkgZm9yIElOU04uICAqLworCit2b2lkCityZWxv YWRfY3NlX21vdmUyYWRkX2ludmFsaWRhdGUgKHJ0eF9pbnNuICppbnNuKQoreworICBmb3Ig KHJ0eCBub3RlID0gUkVHX05PVEVTIChpbnNuKTsgbm90ZTsgbm90ZSA9IFhFWFAgKG5vdGUs IDEpKQorICAgIHsKKyAgICAgIGlmIChSRUdfTk9URV9LSU5EIChub3RlKSA9PSBSRUdfSU5D CisJICAmJiBSRUdfUCAoWEVYUCAobm90ZSwgMCkpKQorCXsKKwkgIC8qIFJlc2V0IHRoZSBp bmZvcm1hdGlvbiBhYm91dCB0aGlzIHJlZ2lzdGVyLiAgKi8KKwkgIGludCByZWdubyA9IFJF R05PIChYRVhQIChub3RlLCAwKSk7CisJICBpZiAocmVnbm8gPCBGSVJTVF9QU0VVRE9fUkVH SVNURVIpCisJICAgIHsKKwkgICAgICBtb3ZlMmFkZF9yZWNvcmRfbW9kZSAoWEVYUCAobm90 ZSwgMCkpOworCSAgICAgIHJlZ19tb2RlW3JlZ25vXSA9IFZPSURtb2RlOworCSAgICB9CisJ fQorICAgIH0KKworICAvKiBUaGVyZSBhcmUgbm8gUkVHX0lOQyBub3RlcyBmb3IgU1AgYXV0 b2luYy4gICovCisgIHN1YnJ0eF92YXJfaXRlcmF0b3I6OmFycmF5X3R5cGUgYXJyYXk7Cisg IEZPUl9FQUNIX1NVQlJUWF9WQVIgKGl0ZXIsIGFycmF5LCBQQVRURVJOIChpbnNuKSwgTk9O Q09OU1QpCisgICAgeworICAgICAgcnR4IG1lbSA9ICppdGVyOworICAgICAgaWYgKG1lbQor CSAgJiYgTUVNX1AgKG1lbSkKKwkgICYmIEdFVF9SVFhfQ0xBU1MgKEdFVF9DT0RFIChYRVhQ IChtZW0sIDApKSkgPT0gUlRYX0FVVE9JTkMpCisJeworCSAgaWYgKFhFWFAgKFhFWFAgKG1l bSwgMCksIDApID09IHN0YWNrX3BvaW50ZXJfcnR4KQorCSAgICByZWdfbW9kZVtTVEFDS19Q T0lOVEVSX1JFR05VTV0gPSBWT0lEbW9kZTsKKwl9CisgICAgfQorCisgIG5vdGVfc3RvcmVz IChpbnNuLCBtb3ZlMmFkZF9ub3RlX3N0b3JlLCBpbnNuKTsKKworICAvKiBJZiBJTlNOIGlz IGEgY29uZGl0aW9uYWwgYnJhbmNoLCB3ZSB0cnkgdG8gZXh0cmFjdCBhbgorICAgICBpbXBs aWNpdCBzZXQgb3V0IG9mIGl0LiAgKi8KKyAgaWYgKGFueV9jb25kanVtcF9wIChpbnNuKSkK KyAgICB7CisgICAgICBydHggY25kID0gZmlzX2dldF9jb25kaXRpb24gKGluc24pOworCisg ICAgICBpZiAoY25kICE9IE5VTExfUlRYCisJICAmJiBHRVRfQ09ERSAoY25kKSA9PSBORQor CSAgJiYgUkVHX1AgKFhFWFAgKGNuZCwgMCkpCisJICAmJiAhcmVnX3NldF9wIChYRVhQIChj bmQsIDApLCBpbnNuKQorCSAgLyogVGhlIGZvbGxvd2luZyB0d28gY2hlY2tzLCB3aGljaCBh cmUgYWxzbyBpbgorCSAgICAgbW92ZTJhZGRfbm90ZV9zdG9yZSwgYXJlIGludGVuZGVkIHRv IHJlZHVjZSB0aGUKKwkgICAgIG51bWJlciBvZiBjYWxscyB0byBnZW5fcnR4X1NFVCB0byBh dm9pZCBtZW1vcnkKKwkgICAgIGFsbG9jYXRpb24gaWYgcG9zc2libGUuICAqLworCSAgJiYg U0NBTEFSX0lOVF9NT0RFX1AgKEdFVF9NT0RFIChYRVhQIChjbmQsIDApKSkKKwkgICYmIFJF R19OUkVHUyAoWEVYUCAoY25kLCAwKSkgPT0gMQorCSAgJiYgQ09OU1RfSU5UX1AgKFhFWFAg KGNuZCwgMSkpKQorCXsKKwkgIHJ0eCBpbXBsaWNpdF9zZXQgPSBnZW5fcnR4X1NFVCAoWEVY UCAoY25kLCAwKSwgWEVYUCAoY25kLCAxKSk7CisJICBtb3ZlMmFkZF9ub3RlX3N0b3JlIChT RVRfREVTVCAoaW1wbGljaXRfc2V0KSwgaW1wbGljaXRfc2V0LCBpbnNuKTsKKwl9CisgICAg fQorCisgIC8qIElmIHRoaXMgaXMgYSBDQUxMX0lOU04sIGFsbCBjYWxsIHVzZWQgcmVnaXN0 ZXJzIGFyZSBzdG9yZWQgd2l0aAorICAgICB1bmtub3duIHZhbHVlcy4gICovCisgIGlmIChD QUxMX1AgKGluc24pKQorICAgIHsKKyAgICAgIGZ1bmN0aW9uX2FiaSBjYWxsZWVfYWJpID0g aW5zbl9jYWxsZWVfYWJpIChpbnNuKTsKKyAgICAgIGZvciAoaW50IGkgPSBGSVJTVF9QU0VV RE9fUkVHSVNURVIgLSAxOyBpID49IDA7IGktLSkKKwlpZiAocmVnX21vZGVbaV0gIT0gVk9J RG1vZGUKKwkgICAgJiYgcmVnX21vZGVbaV0gIT0gQkxLbW9kZQorCSAgICAmJiBjYWxsZWVf YWJpLmNsb2JiZXJzX3JlZ19wIChyZWdfbW9kZVtpXSwgaSkpCisJICAgIC8qIFJlc2V0IHRo ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIHJlZ2lzdGVyLiAgKi8KKwkgIHJlZ19tb2RlW2ld ID0gVk9JRG1vZGU7CisgICAgfQorfQorCiAvKiBDb252ZXJ0IG1vdmUgaW5zbnMgd2l0aCBj b25zdGFudCBpbnB1dHMgdG8gYWRkaXRpb25zIGlmIHRoZXkgYXJlIGNoZWFwZXIuCiAgICBS ZXR1cm4gdHJ1ZSBpZiBhbnkgY2hhbmdlcyB3ZXJlIG1hZGUuICAqLwogc3RhdGljIGJvb2wK QEAgLTE5MjEsNyArMTk5NCw3IEBAIHJlbG9hZF9jc2VfbW92ZTJhZGQgKHJ0eF9pbnNuICpm aXJzdCkKICAgbW92ZTJhZGRfbHVpZCA9IDI7CiAgIGZvciAoaW5zbiA9IGZpcnN0OyBpbnNu OyBpbnNuID0gTkVYVF9JTlNOIChpbnNuKSwgbW92ZTJhZGRfbHVpZCsrKQogICAgIHsKLSAg ICAgIHJ0eCBzZXQsIG5vdGU7CisgICAgICBydHggc2V0OwogCiAgICAgICBpZiAoTEFCRUxf UCAoaW5zbikpCiAJewpAQCAtMjA0MSw2ICsyMTE0LDEyIEBAIHJlbG9hZF9jc2VfbW92ZTJh ZGQgKHJ0eF9pbnNuICpmaXJzdCkKIAkJCWRlbGV0ZV9pbnNuIChpbnNuKTsKIAkJICAgICAg Y2hhbmdlZCB8PSBzdWNjZXNzOwogCQkgICAgICBpbnNuID0gbmV4dDsKKwkJICAgICAgLyog TWFrZSBzdXJlIHRvIHBlcmZvcm0gYW55IGludmFsaWRhdGlvbnMgcmVsYXRlZCB0bworCQkJ IE5FWFQvSU5TTiBzaW5jZSB3ZSdyZSBnb2luZyB0byBieXBhc3MgdGhlIG5vcm1hbAorCQkJ IGZsb3cgd2l0aCB0aGUgY29udGludWUgYmVsb3cuCisKKwkJCSBEbyB0aGlzIGJlZm9yZSBy ZWNvcmRpbmcgdGhlIG5ldyBtb2RlL29mZnNldC4gICovCisJCSAgICAgIHJlbG9hZF9jc2Vf bW92ZTJhZGRfaW52YWxpZGF0ZSAoaW5zbik7CiAJCSAgICAgIG1vdmUyYWRkX3JlY29yZF9t b2RlIChyZWcpOwogCQkgICAgICByZWdfb2Zmc2V0W3JlZ25vXQogCQkJPSB0cnVuY19pbnRf Zm9yX21vZGUgKGFkZGVkX29mZnNldCArIGJhc2Vfb2Zmc2V0LApAQCAtMjA5NCw3NCArMjE3 Myw3IEBAIHJlbG9hZF9jc2VfbW92ZTJhZGQgKHJ0eF9pbnNuICpmaXJzdCkKIAkgICAgICBj b250aW51ZTsKIAkgICAgfQogCX0KLQotICAgICAgZm9yIChub3RlID0gUkVHX05PVEVTIChp bnNuKTsgbm90ZTsgbm90ZSA9IFhFWFAgKG5vdGUsIDEpKQotCXsKLQkgIGlmIChSRUdfTk9U RV9LSU5EIChub3RlKSA9PSBSRUdfSU5DCi0JICAgICAgJiYgUkVHX1AgKFhFWFAgKG5vdGUs IDApKSkKLQkgICAgewotCSAgICAgIC8qIFJlc2V0IHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0 aGlzIHJlZ2lzdGVyLiAgKi8KLQkgICAgICBpbnQgcmVnbm8gPSBSRUdOTyAoWEVYUCAobm90 ZSwgMCkpOwotCSAgICAgIGlmIChyZWdubyA8IEZJUlNUX1BTRVVET19SRUdJU1RFUikKLQkJ ewotCQkgIG1vdmUyYWRkX3JlY29yZF9tb2RlIChYRVhQIChub3RlLCAwKSk7Ci0JCSAgcmVn X21vZGVbcmVnbm9dID0gVk9JRG1vZGU7Ci0JCX0KLQkgICAgfQotCX0KLQotICAgICAgLyog VGhlcmUgYXJlIG5vIFJFR19JTkMgbm90ZXMgZm9yIFNQIGF1dG9pbmMuICAqLwotICAgICAg c3VicnR4X3Zhcl9pdGVyYXRvcjo6YXJyYXlfdHlwZSBhcnJheTsKLSAgICAgIEZPUl9FQUNI X1NVQlJUWF9WQVIgKGl0ZXIsIGFycmF5LCBQQVRURVJOIChpbnNuKSwgTk9OQ09OU1QpCi0J ewotCSAgcnR4IG1lbSA9ICppdGVyOwotCSAgaWYgKG1lbQotCSAgICAgICYmIE1FTV9QICht ZW0pCi0JICAgICAgJiYgR0VUX1JUWF9DTEFTUyAoR0VUX0NPREUgKFhFWFAgKG1lbSwgMCkp KSA9PSBSVFhfQVVUT0lOQykKLQkgICAgewotCSAgICAgIGlmIChYRVhQIChYRVhQIChtZW0s IDApLCAwKSA9PSBzdGFja19wb2ludGVyX3J0eCkKLQkJcmVnX21vZGVbU1RBQ0tfUE9JTlRF Ul9SRUdOVU1dID0gVk9JRG1vZGU7Ci0JICAgIH0KLQl9Ci0KLSAgICAgIG5vdGVfc3RvcmVz IChpbnNuLCBtb3ZlMmFkZF9ub3RlX3N0b3JlLCBpbnNuKTsKLQotICAgICAgLyogSWYgSU5T TiBpcyBhIGNvbmRpdGlvbmFsIGJyYW5jaCwgd2UgdHJ5IHRvIGV4dHJhY3QgYW4KLQkgaW1w bGljaXQgc2V0IG91dCBvZiBpdC4gICovCi0gICAgICBpZiAoYW55X2NvbmRqdW1wX3AgKGlu c24pKQotCXsKLQkgIHJ0eCBjbmQgPSBmaXNfZ2V0X2NvbmRpdGlvbiAoaW5zbik7Ci0KLQkg IGlmIChjbmQgIT0gTlVMTF9SVFgKLQkgICAgICAmJiBHRVRfQ09ERSAoY25kKSA9PSBORQot CSAgICAgICYmIFJFR19QIChYRVhQIChjbmQsIDApKQotCSAgICAgICYmICFyZWdfc2V0X3Ag KFhFWFAgKGNuZCwgMCksIGluc24pCi0JICAgICAgLyogVGhlIGZvbGxvd2luZyB0d28gY2hl Y2tzLCB3aGljaCBhcmUgYWxzbyBpbgotCQkgbW92ZTJhZGRfbm90ZV9zdG9yZSwgYXJlIGlu dGVuZGVkIHRvIHJlZHVjZSB0aGUKLQkJIG51bWJlciBvZiBjYWxscyB0byBnZW5fcnR4X1NF VCB0byBhdm9pZCBtZW1vcnkKLQkJIGFsbG9jYXRpb24gaWYgcG9zc2libGUuICAqLwotCSAg ICAgICYmIFNDQUxBUl9JTlRfTU9ERV9QIChHRVRfTU9ERSAoWEVYUCAoY25kLCAwKSkpCi0J ICAgICAgJiYgUkVHX05SRUdTIChYRVhQIChjbmQsIDApKSA9PSAxCi0JICAgICAgJiYgQ09O U1RfSU5UX1AgKFhFWFAgKGNuZCwgMSkpKQotCSAgICB7Ci0JICAgICAgcnR4IGltcGxpY2l0 X3NldCA9Ci0JCWdlbl9ydHhfU0VUIChYRVhQIChjbmQsIDApLCBYRVhQIChjbmQsIDEpKTsK LQkgICAgICBtb3ZlMmFkZF9ub3RlX3N0b3JlIChTRVRfREVTVCAoaW1wbGljaXRfc2V0KSwg aW1wbGljaXRfc2V0LCBpbnNuKTsKLQkgICAgfQotCX0KLQotICAgICAgLyogSWYgdGhpcyBp cyBhIENBTExfSU5TTiwgYWxsIGNhbGwgdXNlZCByZWdpc3RlcnMgYXJlIHN0b3JlZCB3aXRo Ci0JIHVua25vd24gdmFsdWVzLiAgKi8KLSAgICAgIGlmIChDQUxMX1AgKGluc24pKQotCXsK LQkgIGZ1bmN0aW9uX2FiaSBjYWxsZWVfYWJpID0gaW5zbl9jYWxsZWVfYWJpIChpbnNuKTsK LQkgIGZvciAoaSA9IEZJUlNUX1BTRVVET19SRUdJU1RFUiAtIDE7IGkgPj0gMDsgaS0tKQot CSAgICBpZiAocmVnX21vZGVbaV0gIT0gVk9JRG1vZGUKLQkJJiYgcmVnX21vZGVbaV0gIT0g QkxLbW9kZQotCQkmJiBjYWxsZWVfYWJpLmNsb2JiZXJzX3JlZ19wIChyZWdfbW9kZVtpXSwg aSkpCi0JICAgICAgLyogUmVzZXQgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgcmVnaXN0 ZXIuICAqLwotCSAgICAgIHJlZ19tb2RlW2ldID0gVk9JRG1vZGU7Ci0JfQorICAgICAgcmVs b2FkX2NzZV9tb3ZlMmFkZF9pbnZhbGlkYXRlIChpbnNuKTsKICAgICB9CiAgIHJldHVybiBj aGFuZ2VkOwogfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2V4 ZWN1dGUvcHIxMDExODguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9leGVjdXRl L3ByMTAxMTg4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ2 MDE0OWFkYTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0 dXJlL2V4ZWN1dGUvcHIxMDExODguYwpAQCAtMCwwICsxLDYwIEBACit0eXBlZGVmIF9fVUlO VDhfVFlQRV9fIHVpbnQ4X3Q7Cit0eXBlZGVmIF9fVUlOVDE2X1RZUEVfXyB1aW50MTZfdDsK KwordHlwZWRlZiB1aW50OF90ICgqZm4xKSh2b2lkICphKTsKK3R5cGVkZWYgdm9pZCAoKmZu Mikodm9pZCAqYSwgaW50ICphcmcpOworCitzdHJ1Y3QgUworeworICAgIHVpbnQ4X3QgYnVm ZmVyWzY0XTsKKyAgICB1aW50MTZfdCBuOworICAgIGZuMiBmMjsKKyAgICB2b2lkICphOwor ICAgIGZuMSBmMTsKK307CisKK3ZvbGF0aWxlIHVpbnQxNl90IHg7CisKK3ZvaWQgX19hdHRy aWJ1dGVfXygoX19ub2lubGluZV9fLF9fbm9jbG9uZV9fKSkKK2ZvbyAodWludDE2X3QgbikK K3sKKyAgeCA9IG47Cit9CisKK3ZvaWQgX19hdHRyaWJ1dGVfXygoX19ub2lubGluZV9fLF9f bm9jbG9uZV9fKSkKK3Rlc3RmbiAoc3RydWN0IFMgKnNlbGYpCit7CisgICAgaW50IGFyZzsK KworICAgIGZvbyAoc2VsZi0+bik7CisgICAgc2VsZi0+bisrOworICAgIHNlbGYtPmYyIChz ZWxmLT5hLCAmYXJnKTsKKyAgICBzZWxmLT5idWZmZXJbMF0gPSBzZWxmLT5mMSAoc2VsZi0+ YSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIG15Zm4yX2NhbGxlZCA9IDA7CisKK3N0 YXRpYyB2b2lkCitteWZuMiAodm9pZCAqYSwgaW50ICphcmcpCit7CisgIG15Zm4yX2NhbGxl ZCA9IDE7Cit9CisKK3N0YXRpYyB1aW50OF90CitteWZuMSAodm9pZCAqYSkKK3sKKyAgcmV0 dXJuIDA7Cit9CisKK2ludCBtYWluICh2b2lkKQoreworICBzdHJ1Y3QgUyBzOworICBzLm4g PSAwOworICBzLmYyID0gbXlmbjI7CisgIHMuZjEgPSBteWZuMTsKKyAgdGVzdGZuICgmcyk7 CisgIGlmIChteWZuMl9jYWxsZWQgIT0gMSkKKyAgICBfX2J1aWx0aW5fYWJvcnQoKTsKKyAg cmV0dXJuIDA7Cit9CisK --------------u61W5PS3rjpwB7jKQxi7lLkA--