From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa4.mentor.iphmx.com (esa4.mentor.iphmx.com [68.232.137.252]) by sourceware.org (Postfix) with ESMTPS id B1E563858D35 for ; Wed, 1 Feb 2023 15:35:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B1E563858D35 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.97,263,1669104000"; d="scan'208,223";a="95461907" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa4.mentor.iphmx.com with ESMTP; 01 Feb 2023 07:35:09 -0800 IronPort-SDR: ErZ1W/3stIt7nUH0NN7/tiheY9pL6q3Z4/gl3tbeqQqLyOj2toHRS5TVpl5DoK9/3/j9i6mNmL oqWji8SszYevskxRgQlbRmHbA/B3omqBbICoHEi6fUNmE8JKTQpE7cKSN038trYqm3MvzIFLT3 e41XDdGh71iyFy7040BDRXs67aMDOmgjHvxH0XFgtroVNSV21POhrU8FyStKe8GL6avJ5guNQl eifHt63DX1GrPFi2wUmu7T36cGzyErkFPE9OK90tnSez/QD/DyZZrNZn4yDEc93+CW3sFJcCNC 8Pk= Content-Type: multipart/mixed; boundary="------------B9ZdqLT42taSZXznE0URv0LQ" Message-ID: Date: Wed, 1 Feb 2023 16:35:03 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Content-Language: en-GB, fr To: From: Paul-Antoine Arras Subject: [PATCH] amdgcn: Add instruction pattern for conditional shift operations X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-14.mgc.mentorg.com (139.181.222.14) To svr-ies-mbx-13.mgc.mentorg.com (139.181.222.13) X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_SHORT,SPF_HELO_PASS,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: --------------B9ZdqLT42taSZXznE0URv0LQ Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit This patch introduces an instruction pattern for conditional shift operations (cond_{ashl|ashr|lshr}) in the GCN machine description. Tested on GCN3 Fiji gfx803. OK to commit? -- PA --------------B9ZdqLT42taSZXznE0URv0LQ Content-Type: text/x-patch; charset="UTF-8"; name="0001-amdgcn-Add-instruction-pattern-for-conditional-shift.patch" Content-Disposition: attachment; filename*0="0001-amdgcn-Add-instruction-pattern-for-conditional-shift.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBlOWM5NzQ2NzBlOGQzN2Y3MjUwOThlZWE5N2UyMmJlNWUyZTlmZDIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsLUFudG9pbmUgQXJyYXMgPHBhQGNvZGVzb3Vy Y2VyeS5jb20+CkRhdGU6IFdlZCwgMSBGZWIgMjAyMyAxNjoxMzoyMyArMDEwMApTdWJqZWN0 OiBbUEFUQ0hdIGFtZGdjbjogQWRkIGluc3RydWN0aW9uIHBhdHRlcm4gZm9yIGNvbmRpdGlv bmFsIHNoaWZ0CiBvcGVyYXRpb25zCgpnY2MvQ2hhbmdlTG9nOgoKCSogY29uZmlnL2djbi9n Y24tdmFsdS5tZCAoY29uZF88ZXhwYW5kZXI+PG1vZGU+KTogQWRkIGNvbmRfe2FzaGx8YXNo cnxsc2hyfQoKZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgoJKiBnY2MudGFyZ2V0L2djbi9j b25kX3NoaWZ0XzMuYzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvZ2NuL2NvbmRfc2hpZnRf M19ydW4uYzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvZ2NuL2NvbmRfc2hpZnRfNC5jOiBO ZXcgdGVzdC4KCSogZ2NjLnRhcmdldC9nY24vY29uZF9zaGlmdF80X3J1bi5jOiBOZXcgdGVz dC4KCSogZ2NjLnRhcmdldC9nY24vY29uZF9zaGlmdF84LmM6IE5ldyB0ZXN0LgoJKiBnY2Mu dGFyZ2V0L2djbi9jb25kX3NoaWZ0XzhfcnVuLmM6IE5ldyB0ZXN0LgoJKiBnY2MudGFyZ2V0 L2djbi9jb25kX3NoaWZ0XzkuYzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQvZ2NuL2NvbmRf c2hpZnRfOV9ydW4uYzogTmV3IHRlc3QuCi0tLQogZ2NjL2NvbmZpZy9nY24vZ2NuLXZhbHUu bWQgICAgICAgICAgICAgICAgICAgIHwgMjMgKysrKysrKysrKysKIGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9nY24vY29uZF9zaGlmdF8zLmMgICB8IDM3ICsrKysrKysrKysrKysrKysr KwogLi4uL2djYy50YXJnZXQvZ2NuL2NvbmRfc2hpZnRfM19ydW4uYyAgICAgICAgIHwgMjcg KysrKysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX3NoaWZ0 XzQuYyAgIHwgMzggKysrKysrKysrKysrKysrKysrKwogLi4uL2djYy50YXJnZXQvZ2NuL2Nv bmRfc2hpZnRfNF9ydW4uYyAgICAgICAgIHwgMjcgKysrKysrKysrKysrKwogZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX3NoaWZ0XzguYyAgIHwgMzUgKysrKysrKysrKysr KysrKysKIC4uLi9nY2MudGFyZ2V0L2djbi9jb25kX3NoaWZ0XzhfcnVuLmMgICAgICAgICB8 IDI4ICsrKysrKysrKysrKysrCiBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRf c2hpZnRfOS5jICAgfCAzNiArKysrKysrKysrKysrKysrKysKIC4uLi9nY2MudGFyZ2V0L2dj bi9jb25kX3NoaWZ0XzlfcnVuLmMgICAgICAgICB8IDI4ICsrKysrKysrKysrKysrCiA5IGZp bGVzIGNoYW5nZWQsIDI3OSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX3NoaWZ0XzMuYwogY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9zaGlmdF8zX3J1bi5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25k X3NoaWZ0XzQuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9nY24vY29uZF9zaGlmdF80X3J1bi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX3NoaWZ0XzguYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9zaGlmdF84X3J1bi5jCiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX3NoaWZ0 XzkuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24v Y29uZF9zaGlmdF85X3J1bi5jCgpkaWZmIC0tZ2l0IGdjYy9jb25maWcvZ2NuL2djbi12YWx1 Lm1kIGdjYy9jb25maWcvZ2NuL2djbi12YWx1Lm1kCmluZGV4IDQ0YjA0YzIyMmY3Li40N2Q5 ZDg3ZDU4YSAxMDA2NDQKLS0tIGdjYy9jb25maWcvZ2NuL2djbi12YWx1Lm1kCisrKyBnY2Mv Y29uZmlnL2djbi9nY24tdmFsdS5tZApAQCAtMzQ4OSw2ICszNDg5LDI5IEBAIChkZWZpbmVf ZXhwYW5kICJjb25kXzxleHBhbmRlcj48bW9kZT4iCiAgICAgRE9ORTsKICAgfSkKIAorKGRl ZmluZV9jb2RlX2l0ZXJhdG9yIGNvbmRfc2hpZnRvcCBbYXNoaWZ0IGxzaGlmdHJ0IGFzaGlm dHJ0XSkKKworKGRlZmluZV9leHBhbmQgImNvbmRfPGV4cGFuZGVyPjxtb2RlPiIKKyAgWyht YXRjaF9vcGVyYW5kOlZfSU5UX25vSEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIpCisgICAobWF0 Y2hfb3BlcmFuZDpESSAxICJyZWdpc3Rlcl9vcGVyYW5kIikKKyAgIChjb25kX3NoaWZ0b3A6 Vl9JTlRfbm9ISQorICAgICAobWF0Y2hfb3BlcmFuZDpWX0lOVF9ub0hJIDIgImdjbl9hbHVf b3BlcmFuZCIpCisgICAgIChtYXRjaF9vcGVyYW5kOlZfSU5UX25vSEkgMyAiZ2NuX2FsdV9v cGVyYW5kIikpCisgICAobWF0Y2hfb3BlcmFuZDpWX0lOVF9ub0hJIDQgInJlZ2lzdGVyX29w ZXJhbmQiKV0KKyAgIiIKKyAgeworICAgIG9wZXJhbmRzWzFdID0gZm9yY2VfcmVnIChESW1v ZGUsIG9wZXJhbmRzWzFdKTsKKyAgICBvcGVyYW5kc1syXSA9IGZvcmNlX3JlZyAoPE1PREU+ bW9kZSwgb3BlcmFuZHNbMl0pOworCisgICAgcnR4IHNoaWZ0YnkgPSBnZW5fcmVnX3J0eCAo PFZuU0k+bW9kZSk7CisgICAgY29udmVydF9tb3ZlIChzaGlmdGJ5LCBvcGVyYW5kc1szXSwg MCk7CisKKyAgICBlbWl0X2luc24gKGdlbl92PGV4cGFuZGVyPjxtb2RlPjNfZXhlYyAob3Bl cmFuZHNbMF0sIG9wZXJhbmRzWzJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaGlmdGJ5LCBvcGVyYW5kc1s0XSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmFuZHNbMV0pKTsKKyAgICBET05FOwor ICB9KQorCiA7OyB9fX0KIDs7IHt7eyBWZWN0b3IgcmVkdWN0aW9ucwogCmRpZmYgLS1naXQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX3NoaWZ0XzMuYyBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfc2hpZnRfMy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi45ODMzODZjMTQ2NAotLS0gL2Rldi9udWxsCisrKyBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfc2hpZnRfMy5jCkBAIC0wLDAgKzEsMzcg QEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRy ZWUtdmVjdG9yaXplIC1kcCIgfSAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNkZWZp bmUgREVGX0xPT1AoVFlQRSwgTkFNRSwgT1ApICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgIHZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vaXBhKSkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICB0 ZXN0XyMjVFlQRSMjXyMjTkFNRSAoVFlQRSAqX19yZXN0cmljdCByLCBUWVBFICpfX3Jlc3Ry aWN0IGEsICAgICAgICAgICAgICAgIFwKKwkJCVRZUEUgKl9fcmVzdHJpY3QgYiwgaW50IG4p ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIHsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHJbaV0gPSBhW2ldID4g MjAgPyBiW2ldIE9QIDMgOiA3MjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgIH0KKworI2RlZmluZSBURVNUX1RZUEUoVCwgVFlQRSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgVCAoVFlQRSwg c2hsLCA8PCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgIFQgKFRZUEUsIHNociwgPj4pCisKKyNkZWZpbmUgVEVTVF9B TEwoVCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgIFRFU1RfVFlQRSAoVCwgaW50MzJfdCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBURVNUX1RZUEUg KFQsIHVpbnQzMl90KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgVEVTVF9UWVBFIChULCBpbnQ2NF90KSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIFRFU1RfVFlQ RSAoVCwgdWludDY0X3QpCisKK1RFU1RfQUxMIChERUZfTE9PUCkKKworLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHZfbHNobHJldl9iMzJcdHZbMC05XSssIDMs IHZbMC05XSt9IDEwIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtcdHZfYXNocnJldl9pMzJcdHZbMC05XSssIDMsIHZbMC05XSt9IDEgfSB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zhc2hsdjY0c2kzX2V4ZWN9 IDE4IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2YXNo cnY2NHNpM19leGVjfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2YXNobHY2NGRpM19leGVjfSAyIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2YXNocnY2NGRpM19leGVjfSAxIH0gfSAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2bHNocnY2NHNpM19leGVjfSAxIH0g fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2bHNocnY2NGRp M19leGVjfSAxIH0gfSAqLworCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90 IHt2X2NuZG1hc2tfYjMyfSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3Qge21vdnY2NGRpX2V4ZWMvMn0gfSB9ICovCmRpZmYgLS1naXQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2djbi9jb25kX3NoaWZ0XzNfcnVuLmMgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2djbi9jb25kX3NoaWZ0XzNfcnVuLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjhmODk5MThlOGFjCi0tLSAvZGV2L251bGwKKysrIGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9zaGlmdF8zX3J1bi5jCkBAIC0wLDAgKzEsMjcg QEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mdHJlZS12 ZWN0b3JpemUiIH0gKi8KKworI2luY2x1ZGUgImNvbmRfc2hpZnRfMy5jIgorCisjZGVmaW5l IE4gOTkKKworI2RlZmluZSBURVNUX0xPT1AoVFlQRSwgTkFNRSwgT1ApCQkJCVwKKyAgewkJ CQkJCQkJXAorICAgIFRZUEUgcltOXSwgYVtOXSwgYltOXTsJCQkJCVwKKyAgICBmb3IgKGlu dCBpID0gMDsgaSA8IE47ICsraSkJCQkJCVwKKyAgICAgIHsJCQkJCQkJCVwKKwlhW2ldID0g KGkgJiAxID8gaSA6IDMgKiBpKTsJCQkJXAorCWJbaV0gPSAoaSA+PiA0KSA8PCAoaSAmIDE1 KTsJCQkJXAorCWFzbSB2b2xhdGlsZSAoIiIgOjo6ICJtZW1vcnkiKTsJCQkJXAorICAgICAg fQkJCQkJCQkJXAorICAgIHRlc3RfIyNUWVBFIyNfIyNOQU1FIChyLCBhLCBiLCBOKTsJCQkJ XAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKQkJCQkJXAorICAgICAgaWYgKHJb aV0gIT0gKFRZUEUpIChhW2ldID4gMjAgPyBiW2ldIE9QIDMgOiA3MikpCQlcCisJX19idWls dGluX2Fib3J0ICgpOwkJCQkJXAorICB9CisKK2ludCBtYWluICgpCit7CisgIFRFU1RfQUxM IChURVNUX0xPT1ApCisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9nY24vY29uZF9zaGlmdF80LmMgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2djbi9jb25kX3NoaWZ0XzQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uYzYxMDM2M2Q5ZGYKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2djbi9jb25kX3NoaWZ0XzQuYwpAQCAtMCwwICsxLDM4IEBACisvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVlLXZlY3Rvcml6ZSAt ZHAiIH0gKi8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisjZGVmaW5lIERFRl9MT09QKFRZ UEUsIE5BTUUsIE9QKQkJCQkJXAorICB2b2lkIF9fYXR0cmlidXRlX18gKChub2lwYSkpCQkJ CQkJXAorICB0ZXN0XyMjVFlQRSMjXyMjTkFNRSAoVFlQRSAqX19yZXN0cmljdCByLCBUWVBF ICpfX3Jlc3RyaWN0IGEsCQlcCisJCQlUWVBFICpfX3Jlc3RyaWN0IGIsIGludCBuKQkJCVwK KyAgewkJCQkJCQkJCVwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkJCQkJCQlc CisgICAgICByW2ldID0gYVtpXSA+IDIwID8gYltpXSBPUCAzIDogMDsJCQkJCVwKKyAgfQor CisjZGVmaW5lIFRFU1RfVFlQRShULCBUWVBFKSBcCisgIFQgKFRZUEUsIHNobCwgPDwpIFwK KyAgVCAoVFlQRSwgc2hyLCA+PikKKworI2RlZmluZSBURVNUX0FMTChUKSBcCisgIFRFU1Rf VFlQRSAoVCwgaW50MzJfdCkgXAorICBURVNUX1RZUEUgKFQsIHVpbnQzMl90KSBcCisgIFRF U1RfVFlQRSAoVCwgaW50NjRfdCkgXAorICBURVNUX1RZUEUgKFQsIHVpbnQ2NF90KQorCitU RVNUX0FMTCAoREVGX0xPT1ApCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7XHR2X2xzaGxyZXZfYjMyXHR2WzAtOV0rLCAzLCB2WzAtOV0rfSAxMCB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHR2X2FzaHJyZXZfaTMy XHR2WzAtOV0rLCAzLCB2WzAtOV0rfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2YXNobHY2NHNpM19leGVjfSAxOCB9IH0gKi8KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmFzaHJ2NjRzaTNfZXhlY30gMSB9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmFzaGx2NjRkaTNf ZXhlY30gMiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dmFzaHJ2NjRkaTNfZXhlY30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dmxzaHJ2NjRzaTNfZXhlY30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmxzaHJ2NjRkaTNfZXhlY30gMSB9IH0gKi8KKwor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7dl9jbmRtYXNrX2IzMn0gfSB9 ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHttb3Z2NjRkaV9leGVj LzJ9IH0gfSAqLworCmRpZmYgLS1naXQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9j b25kX3NoaWZ0XzRfcnVuLmMgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX3No aWZ0XzRfcnVuLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYw MTdkNjhlODIwCi0tLSAvZGV2L251bGwKKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9n Y24vY29uZF9zaGlmdF80X3J1bi5jCkBAIC0wLDAgKzEsMjcgQEAKKy8qIHsgZGctZG8gcnVu IH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mdHJlZS12ZWN0b3JpemUiIH0gKi8KKwor I2luY2x1ZGUgImNvbmRfc2hpZnRfNC5jIgorCisjZGVmaW5lIE4gOTkKKworI2RlZmluZSBU RVNUX0xPT1AoVFlQRSwgTkFNRSwgT1ApCQkJCVwKKyAgewkJCQkJCQkJXAorICAgIFRZUEUg cltOXSwgYVtOXSwgYltOXTsJCQkJCVwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsr aSkJCQkJCVwKKyAgICAgIHsJCQkJCQkJCVwKKwlhW2ldID0gKGkgJiAxID8gaSA6IDMgKiBp KTsJCQkJXAorCWJbaV0gPSAoaSA+PiA0KSA8PCAoaSAmIDE1KTsJCQkJXAorCWFzbSB2b2xh dGlsZSAoIiIgOjo6ICJtZW1vcnkiKTsJCQkJXAorICAgICAgfQkJCQkJCQkJXAorICAgIHRl c3RfIyNUWVBFIyNfIyNOQU1FIChyLCBhLCBiLCBOKTsJCQkJXAorICAgIGZvciAoaW50IGkg PSAwOyBpIDwgTjsgKytpKQkJCQkJXAorICAgICAgaWYgKHJbaV0gIT0gKFRZUEUpIChhW2ld ID4gMjAgPyBiW2ldIE9QIDMgOiAwKSkJCVwKKwlfX2J1aWx0aW5fYWJvcnQgKCk7CQkJCQlc CisgIH0KKworaW50IG1haW4gKCkKK3sKKyAgVEVTVF9BTEwgKFRFU1RfTE9PUCkKKyAgcmV0 dXJuIDA7Cit9CmRpZmYgLS1naXQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25k X3NoaWZ0XzguYyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfc2hpZnRfOC5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wNzQ5ZTJlNWU1Mwot LS0gL2Rldi9udWxsCisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfc2hp ZnRfOC5jCkBAIC0wLDAgKzEsMzUgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7 IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUtdmVjdG9yaXplIC1kcCIgfSAqLworCisjaW5jbHVk ZSA8c3RkaW50Lmg+CisKKyNkZWZpbmUgREVGX0xPT1AoVFlQRSwgTkFNRSwgT1ApCQkJCQlc CisgIHZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vaXBhKSkJCQkJCQlcCisgIHRlc3RfIyNUWVBF IyNfIyNOQU1FIChUWVBFICpfX3Jlc3RyaWN0IHIsIFRZUEUgKl9fcmVzdHJpY3QgYSwJCVwK KwkJCVRZUEUgKl9fcmVzdHJpY3QgYiwgVFlQRSAqX19yZXN0cmljdCBjLCBpbnQgbikJXAor ICB7CQkJCQkJCQkJXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQkJCQkJCVwK KyAgICAgIHJbaV0gPSBhW2ldID4gMjAgPyBiW2ldIE9QIGNbaV0gOiA5MTsJCQkJXAorICB9 CisKKyNkZWZpbmUgVEVTVF9UWVBFKFQsIFRZUEUpIFwKKyAgVCAoVFlQRSwgc2hsLCA8PCkg XAorICBUIChUWVBFLCBzaHIsID4+KQorCisjZGVmaW5lIFRFU1RfQUxMKFQpIFwKKyAgVEVT VF9UWVBFIChULCBpbnQzMl90KSBcCisgIFRFU1RfVFlQRSAoVCwgdWludDMyX3QpIFwKKyAg VEVTVF9UWVBFIChULCBpbnQ2NF90KSBcCisgIFRFU1RfVFlQRSAoVCwgdWludDY0X3QpCisK K1RFU1RfQUxMIChERUZfTE9PUCkKKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2YXNobHY2NHNpM19leGVjfSAxOCB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dmFzaHJ2NjRzaTNfZXhlY30gMSB9IH0gKi8KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmFzaGx2NjRkaTNfZXhlY30gMiB9 IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmFzaHJ2NjRk aTNfZXhlY30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dmxzaHJ2NjRzaTNfZXhlY30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dmxzaHJ2NjRkaTNfZXhlY30gMSB9IH0gKi8KKworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7bW92djY0c2lfZXhlYy8wfSB9IH0gKi8KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge21vdnY2NGRpX2V4ZWMvMH0gfSB9 ICovCmRpZmYgLS1naXQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX3NoaWZ0 XzhfcnVuLmMgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX3NoaWZ0XzhfcnVu LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjEzZGEwMTk3NTY5 Ci0tLSAvZGV2L251bGwKKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9z aGlmdF84X3J1bi5jCkBAIC0wLDAgKzEsMjggQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKy8q IHsgZGctb3B0aW9ucyAiLU8yIC1mdHJlZS12ZWN0b3JpemUiIH0gKi8KKworI2luY2x1ZGUg ImNvbmRfc2hpZnRfOC5jIgorCisjZGVmaW5lIE4gOTkKKworI2RlZmluZSBURVNUX0xPT1Ao VFlQRSwgTkFNRSwgT1ApCQkJCVwKKyAgewkJCQkJCQkJXAorICAgIFRZUEUgcltOXSwgYVtO XSwgYltOXSwgY1tOXTsJCQkJXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKQkJ CQkJXAorICAgICAgewkJCQkJCQkJXAorCWFbaV0gPSAoaSAmIDEgPyBpIDogMyAqIGkpOwkJ CQlcCisJYltpXSA9IChpID4+IDQpIDw8IChpICYgMTUpOwkJCQlcCisJY1tpXSA9IH5pICYg NzsJCQkJCQlcCisJYXNtIHZvbGF0aWxlICgiIiA6OjogIm1lbW9yeSIpOwkJCQlcCisgICAg ICB9CQkJCQkJCQlcCisgICAgdGVzdF8jI1RZUEUjI18jI05BTUUgKHIsIGEsIGIsIGMsIE4p OwkJCVwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkJCQkJCVwKKyAgICAgIGlm IChyW2ldICE9IChUWVBFKSAoYVtpXSA+IDIwID8gYltpXSBPUCBjW2ldIDogOTEpKQlcCisJ X19idWlsdGluX2Fib3J0ICgpOwkJCQkJXAorICB9CisKK2ludCBtYWluICgpCit7CisgIFRF U1RfQUxMIChURVNUX0xPT1ApCisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9nY24vY29uZF9zaGlmdF85LmMgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2djbi9jb25kX3NoaWZ0XzkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uNjFhYmEyNzUwNGUKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2djbi9jb25kX3NoaWZ0XzkuYwpAQCAtMCwwICsxLDM2IEBACisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVlLXZlY3Rv cml6ZSAtZHAiIH0gKi8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisjZGVmaW5lIERFRl9M T09QKFRZUEUsIE5BTUUsIE9QKQkJCQkJXAorICB2b2lkIF9fYXR0cmlidXRlX18gKChub2lw YSkpCQkJCQkJXAorICB0ZXN0XyMjVFlQRSMjXyMjTkFNRSAoVFlQRSAqX19yZXN0cmljdCBy LCBUWVBFICpfX3Jlc3RyaWN0IGEsCQlcCisJCQlUWVBFICpfX3Jlc3RyaWN0IGIsIFRZUEUg Kl9fcmVzdHJpY3QgYywgaW50IG4pCVwKKyAgewkJCQkJCQkJCVwKKyAgICBmb3IgKGludCBp ID0gMDsgaSA8IG47ICsraSkJCQkJCQlcCisgICAgICByW2ldID0gYVtpXSA+IDIwID8gYltp XSBPUCBjW2ldIDogMDsJCQkJXAorICB9CisKKyNkZWZpbmUgVEVTVF9UWVBFKFQsIFRZUEUp IFwKKyAgVCAoVFlQRSwgc2hsLCA8PCkgXAorICBUIChUWVBFLCBzaHIsID4+KQorCisjZGVm aW5lIFRFU1RfQUxMKFQpIFwKKyAgVEVTVF9UWVBFIChULCBpbnQzMl90KSBcCisgIFRFU1Rf VFlQRSAoVCwgdWludDMyX3QpIFwKKyAgVEVTVF9UWVBFIChULCBpbnQ2NF90KSBcCisgIFRF U1RfVFlQRSAoVCwgdWludDY0X3QpCisKK1RFU1RfQUxMIChERUZfTE9PUCkKKworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2YXNobHY2NHNpM19leGVjfSAxOCB9 IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmFzaHJ2NjRz aTNfZXhlY30gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dmFzaGx2NjRkaTNfZXhlY30gMiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dmFzaHJ2NjRkaTNfZXhlY30gMSB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmxzaHJ2NjRzaTNfZXhlY30gMSB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmxzaHJ2NjRkaTNfZXhl Y30gMSB9IH0gKi8KKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7dl9j bmRtYXNrX2IzMn0gfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90 IHttb3Z2NjRzaV9leGVjLzJ9IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLW5vdCB7bW92djY0ZGlfZXhlYy8xfSB9IH0gKi8KZGlmZiAtLWdpdCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvZ2NuL2NvbmRfc2hpZnRfOV9ydW4uYyBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvZ2NuL2NvbmRfc2hpZnRfOV9ydW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uZGU4ZTAxMGJkYWIKLS0tIC9kZXYvbnVsbAorKysgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2djbi9jb25kX3NoaWZ0XzlfcnVuLmMKQEAgLTAsMCArMSwy OCBAQAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVl LXZlY3Rvcml6ZSIgfSAqLworCisjaW5jbHVkZSAiY29uZF9zaGlmdF85LmMiCisKKyNkZWZp bmUgTiA5OQorCisjZGVmaW5lIFRFU1RfTE9PUChUWVBFLCBOQU1FLCBPUCkJCQkJXAorICB7 CQkJCQkJCQlcCisgICAgVFlQRSByW05dLCBhW05dLCBiW05dLCBjW05dOwkJCQlcCisgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpCQkJCQlcCisgICAgICB7CQkJCQkJCQlcCisJ YVtpXSA9IChpICYgMSA/IGkgOiAzICogaSk7CQkJCVwKKwliW2ldID0gKGkgPj4gNCkgPDwg KGkgJiAxNSk7CQkJCVwKKwljW2ldID0gfmkgJiA3OwkJCQkJCVwKKwlhc20gdm9sYXRpbGUg KCIiIDo6OiAibWVtb3J5Iik7CQkJCVwKKyAgICAgIH0JCQkJCQkJCVwKKyAgICB0ZXN0XyMj VFlQRSMjXyMjTkFNRSAociwgYSwgYiwgYywgTik7CQkJXAorICAgIGZvciAoaW50IGkgPSAw OyBpIDwgTjsgKytpKQkJCQkJXAorICAgICAgaWYgKHJbaV0gIT0gKFRZUEUpIChhW2ldID4g MjAgPyBiW2ldIE9QIGNbaV0gOiAwKSkJXAorCV9fYnVpbHRpbl9hYm9ydCAoKTsJCQkJCVwK KyAgfQorCitpbnQgbWFpbiAoKQoreworICBURVNUX0FMTCAoVEVTVF9MT09QKQorICByZXR1 cm4gMDsKK30KLS0gCjIuMzkuMQoK --------------B9ZdqLT42taSZXznE0URv0LQ--