From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30844 invoked by alias); 2 May 2014 09:08:59 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 30832 invoked by uid 89); 2 May 2014 09:08:58 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-ie0-f174.google.com Received: from mail-ie0-f174.google.com (HELO mail-ie0-f174.google.com) (209.85.223.174) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Fri, 02 May 2014 09:08:56 +0000 Received: by mail-ie0-f174.google.com with SMTP id ar20so4825239iec.33 for ; Fri, 02 May 2014 02:08:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type; bh=0EQCe0qWDFznOB3QdByUmFfORGMPKd6tf40mEENgNpo=; b=XHwETc0o55cx0203PquXoYARcU/H47i7FHSC3yquK7OZ3HamsJkYvkcSgf32xRuTgp 16lb2A5HfOziOf/JxDm09gwYXR5TtPf8U05oVFZ5ZZng4UElFDCxU7WbLhCddQLgx5Q0 CesxYfCqPMsSXZWjsreemz2nDigxnRCFKv/DcDDacLudXCu2ND5LYRrB6C8X8ncbJtPl KkFm92OgD7lsIX24jIzprfPCY8mrDwJ9OXBgABkjpdjDGUHTN23wrm+imgUTkBHDly/+ YrVJiT8RtMdI6RpPjENIqzU5T1Gd0xd6urK3SGBdjq6SKnhu4U3UTSqy0fvLgRL0xvqE mGLw== X-Gm-Message-State: ALoCoQmMN0u7oPHbtuRbR2Dxa3rkKSdoh11hnKtcWlayLHvliC2YTOxO8DFyuqcNgghZ00+t48ra X-Received: by 10.50.33.74 with SMTP id p10mr2355319igi.5.1399021734677; Fri, 02 May 2014 02:08:54 -0700 (PDT) Received: from [10.1.1.2] (58-6-183-210.dyn.iinet.net.au. [58.6.183.210]) by mx.google.com with ESMTPSA id sc2sm4525810igb.5.2014.05.02.02.08.51 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 02 May 2014 02:08:53 -0700 (PDT) Message-ID: <536360A1.6000303@linaro.org> Date: Fri, 02 May 2014 09:08:00 -0000 From: Kugan User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Ramana Radhakrishnan CC: "gcc-patches@gcc.gnu.org" , Marcus Shawcroft , Richard Earnshaw Subject: Re: [RFC][AARCH64] TARGET_ATOMIC_ASSIGN_EXPAND_FENV hook References: <535B9132.40703@linaro.org> <535E3503.3020203@arm.com> <535F1061.90908@linaro.org> In-Reply-To: <535F1061.90908@linaro.org> Content-Type: multipart/mixed; boundary="------------050909040105020604010708" X-IsSubscribed: yes X-SW-Source: 2014-05/txt/msg00063.txt.bz2 This is a multi-part message in MIME format. --------------050909040105020604010708 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-length: 1424 > > +2014-04-29 Kugan Vivekanandarajah > + > + * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New > + define. > + * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv): > + New function declaration. > + * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add > + AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR. > + AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR. > + (aarch64_init_builtins) : Initialize builtins > + __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr. > + __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr. > + (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr > + __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr, > + and __builtins_aarch64_set_fpsr. > + (aarch64_atomic_assign_expand_fenv): New function. > + * config/aarch64/aarch64.md (set_fpcr): New pattern. > + (get_fpcr) : Likewise. > + (set_fpsr) : Likewise. > + (get_fpsr) : Likewise. > + (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR > + and UNSPECV_SET_FPSR. > + * doc/extend.texi (AARCH64 Built-in Functions) : Document > + __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr. > + __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr. > Updated is based on the review at http://gcc.gnu.org/ml/gcc-patches/2014-05/msg00041.html. FE_* values are now changed to AARCH64_FE-*. Thanks, Kugan --------------050909040105020604010708 Content-Type: text/plain; charset=UTF-8; name="aarch64_v3.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="aarch64_v3.txt" Content-length: 14258 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LWJ1aWx0 aW5zLmMgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1idWlsdGlucy5j CmluZGV4IDU1Y2ZlMGEuLjQwZDUzYjEgMTAwNjQ0Ci0tLSBhL2djYy9jb25m aWcvYWFyY2g2NC9hYXJjaDY0LWJ1aWx0aW5zLmMKKysrIGIvZ2NjL2NvbmZp Zy9hYXJjaDY0L2FhcmNoNjQtYnVpbHRpbnMuYwpAQCAtMzcxLDYgKzM3MSwx MiBAQCBzdGF0aWMgYWFyY2g2NF9zaW1kX2J1aWx0aW5fZGF0dW0gYWFyY2g2 NF9zaW1kX2J1aWx0aW5fZGF0YVtdID0gewogZW51bSBhYXJjaDY0X2J1aWx0 aW5zCiB7CiAgIEFBUkNINjRfQlVJTFRJTl9NSU4sCisKKyAgQUFSQ0g2NF9C VUlMVElOX0dFVF9GUENSLAorICBBQVJDSDY0X0JVSUxUSU5fU0VUX0ZQQ1Is CisgIEFBUkNINjRfQlVJTFRJTl9HRVRfRlBTUiwKKyAgQUFSQ0g2NF9CVUlM VElOX1NFVF9GUFNSLAorCiAgIEFBUkNINjRfU0lNRF9CVUlMVElOX0JBU0Us CiAjaW5jbHVkZSAiYWFyY2g2NC1zaW1kLWJ1aWx0aW5zLmRlZiIKICAgQUFS Q0g2NF9TSU1EX0JVSUxUSU5fTUFYID0gQUFSQ0g2NF9TSU1EX0JVSUxUSU5f QkFTRQpAQCAtNzUyLDYgKzc1OCwyNCBAQCBhYXJjaDY0X2luaXRfc2ltZF9i dWlsdGlucyAodm9pZCkKIHZvaWQKIGFhcmNoNjRfaW5pdF9idWlsdGlucyAo dm9pZCkKIHsKKyAgdHJlZSBmdHlwZV9zZXRfZnByCisgICAgPSBidWlsZF9m dW5jdGlvbl90eXBlX2xpc3QgKHZvaWRfdHlwZV9ub2RlLCB1bnNpZ25lZF90 eXBlX25vZGUsIE5VTEwpOworICB0cmVlIGZ0eXBlX2dldF9mcHIKKyAgICA9 IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAodW5zaWduZWRfdHlwZV9ub2Rl LCBOVUxMKTsKKworICBhYXJjaDY0X2J1aWx0aW5fZGVjbHNbQUFSQ0g2NF9C VUlMVElOX0dFVF9GUENSXQorICAgID0gYWRkX2J1aWx0aW5fZnVuY3Rpb24g KCJfX2J1aWx0aW5fYWFyY2g2NF9nZXRfZnBjciIsIGZ0eXBlX2dldF9mcHIs CisJCQkgICAgQUFSQ0g2NF9CVUlMVElOX0dFVF9GUENSLCBCVUlMVF9JTl9N RCwgTlVMTCwgTlVMTF9UUkVFKTsKKyAgYWFyY2g2NF9idWlsdGluX2RlY2xz W0FBUkNINjRfQlVJTFRJTl9TRVRfRlBDUl0KKyAgICA9IGFkZF9idWlsdGlu X2Z1bmN0aW9uICgiX19idWlsdGluX2FhcmNoNjRfc2V0X2ZwY3IiLCBmdHlw ZV9zZXRfZnByLAorCQkJICAgIEFBUkNINjRfQlVJTFRJTl9TRVRfRlBDUiwg QlVJTFRfSU5fTUQsIE5VTEwsIE5VTExfVFJFRSk7CisgIGFhcmNoNjRfYnVp bHRpbl9kZWNsc1tBQVJDSDY0X0JVSUxUSU5fR0VUX0ZQU1JdCisgICAgPSBh ZGRfYnVpbHRpbl9mdW5jdGlvbiAoIl9fYnVpbHRpbl9hYXJjaDY0X2dldF9m cHNyIiwgZnR5cGVfZ2V0X2ZwciwKKwkJCSAgICBBQVJDSDY0X0JVSUxUSU5f R0VUX0ZQU1IsIEJVSUxUX0lOX01ELCBOVUxMLCBOVUxMX1RSRUUpOworICBh YXJjaDY0X2J1aWx0aW5fZGVjbHNbQUFSQ0g2NF9CVUlMVElOX1NFVF9GUFNS XQorICAgID0gYWRkX2J1aWx0aW5fZnVuY3Rpb24gKCJfX2J1aWx0aW5fYWFy Y2g2NF9zZXRfZnBzciIsIGZ0eXBlX3NldF9mcHIsCisJCQkgICAgQUFSQ0g2 NF9CVUlMVElOX1NFVF9GUFNSLCBCVUlMVF9JTl9NRCwgTlVMTCwgTlVMTF9U UkVFKTsKKwogICBpZiAoVEFSR0VUX1NJTUQpCiAgICAgYWFyY2g2NF9pbml0 X3NpbWRfYnVpbHRpbnMgKCk7CiB9CkBAIC05NjQsNiArOTg4LDM2IEBAIGFh cmNoNjRfZXhwYW5kX2J1aWx0aW4gKHRyZWUgZXhwLAogewogICB0cmVlIGZu ZGVjbCA9IFRSRUVfT1BFUkFORCAoQ0FMTF9FWFBSX0ZOIChleHApLCAwKTsK ICAgaW50IGZjb2RlID0gREVDTF9GVU5DVElPTl9DT0RFIChmbmRlY2wpOwor ICBpbnQgaWNvZGU7CisgIHJ0eCBwYXQsIG9wMDsKKyAgdHJlZSBhcmcwOwor CisgIHN3aXRjaCAoZmNvZGUpCisgICAgeworICAgIGNhc2UgQUFSQ0g2NF9C VUlMVElOX0dFVF9GUENSOgorICAgIGNhc2UgQUFSQ0g2NF9CVUlMVElOX1NF VF9GUENSOgorICAgIGNhc2UgQUFSQ0g2NF9CVUlMVElOX0dFVF9GUFNSOgor ICAgIGNhc2UgQUFSQ0g2NF9CVUlMVElOX1NFVF9GUFNSOgorICAgICAgaWYg KChmY29kZSA9PSBBQVJDSDY0X0JVSUxUSU5fR0VUX0ZQQ1IpCisJICB8fCAo ZmNvZGUgPT0gQUFSQ0g2NF9CVUlMVElOX0dFVF9GUFNSKSkKKwl7CisJICBp Y29kZSA9IChmY29kZSA9PSBBQVJDSDY0X0JVSUxUSU5fR0VUX0ZQU1IpID8K KwkgICAgQ09ERV9GT1JfZ2V0X2Zwc3IgOiBDT0RFX0ZPUl9nZXRfZnBjcjsK KwkgIHRhcmdldCA9IGdlbl9yZWdfcnR4IChTSW1vZGUpOworCSAgcGF0ID0g R0VOX0ZDTiAoaWNvZGUpICh0YXJnZXQpOworCX0KKyAgICAgIGVsc2UKKwl7 CisJICB0YXJnZXQgPSBOVUxMX1JUWDsKKwkgIGljb2RlID0gKGZjb2RlID09 IEFBUkNINjRfQlVJTFRJTl9TRVRfRlBTUikgPworCSAgICBDT0RFX0ZPUl9z ZXRfZnBzciA6IENPREVfRk9SX3NldF9mcGNyOworCSAgYXJnMCA9IENBTExf RVhQUl9BUkcgKGV4cCwgMCk7CisJICBvcDAgPSBleHBhbmRfbm9ybWFsIChh cmcwKTsKKwkgIHBhdCA9IEdFTl9GQ04gKGljb2RlKSAob3AwKTsKKwl9Cisg ICAgICBlbWl0X2luc24gKHBhdCk7CisgICAgICByZXR1cm4gdGFyZ2V0Owor ICAgIH0KIAogICBpZiAoZmNvZGUgPj0gQUFSQ0g2NF9TSU1EX0JVSUxUSU5f QkFTRSkKICAgICByZXR1cm4gYWFyY2g2NF9zaW1kX2V4cGFuZF9idWlsdGlu IChmY29kZSwgZXhwLCB0YXJnZXQpOwpAQCAtMTE5Niw2ICsxMjUwLDEwNiBA QCBhYXJjaDY0X2dpbXBsZV9mb2xkX2J1aWx0aW4gKGdpbXBsZV9zdG10X2l0 ZXJhdG9yICpnc2kpCiAgIHJldHVybiBjaGFuZ2VkOwogfQogCit2b2lkCith YXJjaDY0X2F0b21pY19hc3NpZ25fZXhwYW5kX2ZlbnYgKHRyZWUgKmhvbGQs IHRyZWUgKmNsZWFyLCB0cmVlICp1cGRhdGUpCit7CisgIGNvbnN0IHVuc2ln bmVkIEFBUkNINjRfRkVfSU5WQUxJRCA9IDE7CisgIGNvbnN0IHVuc2lnbmVk IEFBUkNINjRfRkVfRElWQllaRVJPID0gMjsKKyAgY29uc3QgdW5zaWduZWQg QUFSQ0g2NF9GRV9PVkVSRkxPVyA9IDQ7CisgIGNvbnN0IHVuc2lnbmVkIEFB UkNINjRfRkVfVU5ERVJGTE9XID0gODsKKyAgY29uc3QgdW5zaWduZWQgQUFS Q0g2NF9GRV9JTkVYQUNUID0gMTY7CisgIGNvbnN0IHVuc2lnbmVkIEhPU1Rf V0lERV9JTlQgQUFSQ0g2NF9GRV9BTExfRVhDRVBUID0gKEFBUkNINjRfRkVf SU5WQUxJRAorCQkJCQkJCXwgQUFSQ0g2NF9GRV9ESVZCWVpFUk8KKwkJCQkJ CQl8IEFBUkNINjRfRkVfT1ZFUkZMT1cKKwkJCQkJCQl8IEFBUkNINjRfRkVf VU5ERVJGTE9XCisJCQkJCQkJfCBBQVJDSDY0X0ZFX0lORVhBQ1QpOworICBj b25zdCB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIEFBUkNINjRfRkVfRVhDRVBU X1NISUZUID0gODsKKyAgdHJlZSBmZW52X2NyLCBmZW52X3NyLCBnZXRfZnBj ciwgc2V0X2ZwY3IsIG1hc2tfY3IsIG1hc2tfc3I7CisgIHRyZWUgbGRfZmVu dl9jciwgbGRfZmVudl9zciwgbWFza2VkX2ZlbnZfY3IsIG1hc2tlZF9mZW52 X3NyLCBob2xkX2ZuY2xleF9jcjsKKyAgdHJlZSBob2xkX2ZuY2xleF9zciwg bmV3X2ZlbnZfdmFyLCByZWxvYWRfZmVudiwgcmVzdG9yZV9mbmVudiwgZ2V0 X2Zwc3IsIHNldF9mcHNyOworICB0cmVlIHVwZGF0ZV9jYWxsLCBhdG9taWNf ZmVyYWlzZWV4Y2VwdCwgaG9sZF9mbmNsZXgsIG1hc2tlZF9mZW52LCBsZF9m ZW52OworCisgIC8qIEdlbmVyYXRlIHRoZSBlcXVpdmFsZW5jZSBvZiA6Cisg ICAgICAgdW5zaWduZWQgaW50IGZlbnZfY3I7CisgICAgICAgZmVudl9jciA9 IF9fYnVpbHRpbl9hYXJjaDY0X2dldF9mcGNyICgpOworCisgICAgICAgdW5z aWduZWQgaW50IGZlbnZfc3I7CisgICAgICAgZmVudl9zciA9IF9fYnVpbHRp bl9hYXJjaDY0X2dldF9mcHNyICgpOworCisgICAgICAgTm93IHNldCBhbGwg ZXhjZXB0aW9ucyB0byBub24tc3RvcAorICAgICAgIHVuc2lnbmVkIGludCBt YXNrX2NyCisJCT0gfihBQVJDSDY0X0ZFX0FMTF9FWENFUFQgPDwgQUFSQ0g2 NF9GRV9FWENFUFRfU0hJRlQpOworICAgICAgIHVuc2lnbmVkIGludCBtYXNr ZWRfY3I7CisgICAgICAgbWFza2VkX2NyID0gZmVudl9jciAmIG1hc2tfY3I7 CisKKyAgICAgICBBbmQgY2xlYXIgYWxsIGV4Y2VwdGlvbiBmbGFncworICAg ICAgIHVuc2lnbmVkIGludCBtYXNrZV9zciA9IH5BQVJDSDY0X0ZFX0FMTF9F WENFUFQ7CisgICAgICAgdW5zaWduZWQgaW50IG1hc2tlZF9jcjsKKyAgICAg ICBtYXNrZWRfc3IgPSBmZW52X3NyICYgbWFza19zcjsKKworICAgICAgIF9f YnVpbHRpbl9hYXJjaDY0X3NldF9jciAobWFza2VkX2NyKTsKKyAgICAgICBf X2J1aWx0aW5fYWFyY2g2NF9zZXRfc3IgKG1hc2tlZF9zcik7ICAqLworCisg IGZlbnZfY3IgPSBjcmVhdGVfdG1wX3ZhciAodW5zaWduZWRfdHlwZV9ub2Rl LCBOVUxMKTsKKyAgZmVudl9zciA9IGNyZWF0ZV90bXBfdmFyICh1bnNpZ25l ZF90eXBlX25vZGUsIE5VTEwpOworCisgIGdldF9mcGNyID0gYWFyY2g2NF9i dWlsdGluX2RlY2xzW0FBUkNINjRfQlVJTFRJTl9HRVRfRlBDUl07CisgIHNl dF9mcGNyID0gYWFyY2g2NF9idWlsdGluX2RlY2xzW0FBUkNINjRfQlVJTFRJ Tl9TRVRfRlBDUl07CisgIGdldF9mcHNyID0gYWFyY2g2NF9idWlsdGluX2Rl Y2xzW0FBUkNINjRfQlVJTFRJTl9HRVRfRlBTUl07CisgIHNldF9mcHNyID0g YWFyY2g2NF9idWlsdGluX2RlY2xzW0FBUkNINjRfQlVJTFRJTl9TRVRfRlBT Ul07CisKKyAgbWFza19jciA9IGJ1aWxkX2ludF9jc3QgKHVuc2lnbmVkX3R5 cGVfbm9kZSwKKwkJCSAgIH4oQUFSQ0g2NF9GRV9BTExfRVhDRVBUIDw8IEFB UkNINjRfRkVfRVhDRVBUX1NISUZUKSk7CisgIG1hc2tfc3IgPSBidWlsZF9p bnRfY3N0ICh1bnNpZ25lZF90eXBlX25vZGUsCisJCQkgICB+KEFBUkNINjRf RkVfQUxMX0VYQ0VQVCkpOworCisgIGxkX2ZlbnZfY3IgPSBidWlsZDIgKE1P RElGWV9FWFBSLCB1bnNpZ25lZF90eXBlX25vZGUsCisJCSAgICBmZW52X2Ny LCBidWlsZF9jYWxsX2V4cHIgKGdldF9mcGNyLCAwKSk7CisgIGxkX2ZlbnZf c3IgPSBidWlsZDIgKE1PRElGWV9FWFBSLCB1bnNpZ25lZF90eXBlX25vZGUs CisJCSAgICBmZW52X3NyLCBidWlsZF9jYWxsX2V4cHIgKGdldF9mcHNyLCAw KSk7CisKKyAgbWFza2VkX2ZlbnZfY3IgPSBidWlsZDIgKEJJVF9BTkRfRVhQ UiwgdW5zaWduZWRfdHlwZV9ub2RlLCBmZW52X2NyLCBtYXNrX2NyKTsKKyAg bWFza2VkX2ZlbnZfc3IgPSBidWlsZDIgKEJJVF9BTkRfRVhQUiwgdW5zaWdu ZWRfdHlwZV9ub2RlLCBmZW52X3NyLCBtYXNrX3NyKTsKKworICBob2xkX2Zu Y2xleF9jciA9IGJ1aWxkX2NhbGxfZXhwciAoc2V0X2ZwY3IsIDEsIG1hc2tl ZF9mZW52X2NyKTsKKyAgaG9sZF9mbmNsZXhfc3IgPSBidWlsZF9jYWxsX2V4 cHIgKHNldF9mcHNyLCAxLCBtYXNrZWRfZmVudl9zcik7CisKKyAgaG9sZF9m bmNsZXggPSBidWlsZDIgKENPTVBPVU5EX0VYUFIsIHZvaWRfdHlwZV9ub2Rl LCBob2xkX2ZuY2xleF9jciwKKwkJCWhvbGRfZm5jbGV4X3NyKTsKKyAgbWFz a2VkX2ZlbnYgPSBidWlsZDIgKENPTVBPVU5EX0VYUFIsIHZvaWRfdHlwZV9u b2RlLCBtYXNrZWRfZmVudl9jciwKKwkJCW1hc2tlZF9mZW52X3NyKTsKKyAg bGRfZmVudiA9IGJ1aWxkMiAoQ09NUE9VTkRfRVhQUiwgdm9pZF90eXBlX25v ZGUsIGxkX2ZlbnZfY3IsIGxkX2ZlbnZfc3IpOworCisgICpob2xkID0gYnVp bGQyIChDT01QT1VORF9FWFBSLCB2b2lkX3R5cGVfbm9kZSwKKwkJICBidWls ZDIgKENPTVBPVU5EX0VYUFIsIHZvaWRfdHlwZV9ub2RlLCBtYXNrZWRfZmVu diwgbGRfZmVudiksCisJCSAgaG9sZF9mbmNsZXgpOworCisgIC8qIFN0b3Jl IHRoZSB2YWx1ZSBvZiBtYXNrZWRfZmVudiB0byBjbGVhciB0aGUgZXhjZXB0 aW9uczoKKyAgICAgX19idWlsdGluX2FhcmNoNjRfc2V0X2ZwY3IgKG1hc2tl ZF9zcik7ICAqLworCisgICpjbGVhciA9IGJ1aWxkX2NhbGxfZXhwciAoc2V0 X2Zwc3IsIDEsIG1hc2tlZF9mZW52X3NyKTsKKworICAvKiBHZW5lcmF0ZSB0 aGUgZXF1aXZhbGVudCBvZiA6CisgICAgICAgdW5zaWduZWQgaW50IG5ld19m ZW52X3ZhcjsKKyAgICAgICBuZXdfZmVudl92YXIgPSBfX2J1aWx0aW5fYWFy Y2g2NF9nZXRfZnBzciAoKTsKKworICAgICAgIF9fYnVpbHRpbl9hYXJjaDY0 X3NldF9mcHNyIChmZW52X3NyKTsKKworICAgICAgIF9fYXRvbWljX2ZlcmFp c2VleGNlcHQgKG5ld19mZW52X3Zhcik7ICAqLworCisgIG5ld19mZW52X3Zh ciA9IGNyZWF0ZV90bXBfdmFyICh1bnNpZ25lZF90eXBlX25vZGUsIE5VTEwp OworICByZWxvYWRfZmVudiA9IGJ1aWxkMiAoTU9ESUZZX0VYUFIsIHVuc2ln bmVkX3R5cGVfbm9kZSwKKwkJCW5ld19mZW52X3ZhciwgYnVpbGRfY2FsbF9l eHByIChnZXRfZnBzciwgMCkpOworICByZXN0b3JlX2ZuZW52ID0gYnVpbGRf Y2FsbF9leHByIChzZXRfZnBzciwgMSwgZmVudl9zcik7CisgIGF0b21pY19m ZXJhaXNlZXhjZXB0ID0gYnVpbHRpbl9kZWNsX2ltcGxpY2l0IChCVUlMVF9J Tl9BVE9NSUNfRkVSQUlTRUVYQ0VQVCk7CisgIHVwZGF0ZV9jYWxsID0gYnVp bGRfY2FsbF9leHByIChhdG9taWNfZmVyYWlzZWV4Y2VwdCwgMSwKKwkJCQkg Zm9sZF9jb252ZXJ0IChpbnRlZ2VyX3R5cGVfbm9kZSwgbmV3X2ZlbnZfdmFy KSk7CisgICp1cGRhdGUgPSBidWlsZDIgKENPTVBPVU5EX0VYUFIsIHZvaWRf dHlwZV9ub2RlLAorCQkgICAgYnVpbGQyIChDT01QT1VORF9FWFBSLCB2b2lk X3R5cGVfbm9kZSwKKwkJCSAgICByZWxvYWRfZmVudiwgcmVzdG9yZV9mbmVu diksIHVwZGF0ZV9jYWxsKTsKK30KKworCiAjdW5kZWYgQUFSQ0g2NF9DSEVD S19CVUlMVElOX01PREUKICN1bmRlZiBBQVJDSDY0X0ZJTkRfRlJJTlRfVkFS SUFOVAogI3VuZGVmIEJVSUxUSU5fRFgKZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvYWFyY2g2NC9hYXJjaDY0LXByb3Rvcy5oIGIvZ2NjL2NvbmZpZy9hYXJj aDY0L2FhcmNoNjQtcHJvdG9zLmgKaW5kZXggNTU0MmYwMi4uZjRmM2Y2MSAx MDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtcHJvdG9z LmgKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtcHJvdG9zLmgK QEAgLTI4OSw0ICsyODksNSBAQCBleHRlcm4gdm9pZCBhYXJjaDY0X3NwbGl0 X2NvbWJpbmV2MTZxaSAocnR4IG9wZXJhbmRzWzNdKTsKIGV4dGVybiB2b2lk IGFhcmNoNjRfZXhwYW5kX3ZlY19wZXJtIChydHggdGFyZ2V0LCBydHggb3Aw LCBydHggb3AxLCBydHggc2VsKTsKIGV4dGVybiBib29sCiBhYXJjaDY0X2V4 cGFuZF92ZWNfcGVybV9jb25zdCAocnR4IHRhcmdldCwgcnR4IG9wMCwgcnR4 IG9wMSwgcnR4IHNlbCk7Cit2b2lkIGFhcmNoNjRfYXRvbWljX2Fzc2lnbl9l eHBhbmRfZmVudiAodHJlZSAqLCB0cmVlICosIHRyZWUgKik7CiAjZW5kaWYg LyogR0NDX0FBUkNINjRfUFJPVE9TX0ggKi8KZGlmZiAtLWdpdCBhL2djYy9j b25maWcvYWFyY2g2NC9hYXJjaDY0LmMgYi9nY2MvY29uZmlnL2FhcmNoNjQv YWFyY2g2NC5jCmluZGV4IGEzMTQ3ZWUuLmZiYmRjMjMgMTAwNjQ0Ci0tLSBh L2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmMKKysrIGIvZ2NjL2NvbmZp Zy9hYXJjaDY0L2FhcmNoNjQuYwpAQCAtODQ4OCw2ICs4NDg4LDEwIEBAIGFh cmNoNjRfY2Fubm90X2NoYW5nZV9tb2RlX2NsYXNzIChlbnVtIG1hY2hpbmVf bW9kZSBmcm9tLAogI2RlZmluZSBUQVJHRVRfVkVDVE9SSVpFX0FVVE9WRUNU T1JJWkVfVkVDVE9SX1NJWkVTIFwKICAgYWFyY2g2NF9hdXRvdmVjdG9yaXpl X3ZlY3Rvcl9zaXplcwogCisjdW5kZWYgVEFSR0VUX0FUT01JQ19BU1NJR05f RVhQQU5EX0ZFTlYKKyNkZWZpbmUgVEFSR0VUX0FUT01JQ19BU1NJR05fRVhQ QU5EX0ZFTlYgXAorICBhYXJjaDY0X2F0b21pY19hc3NpZ25fZXhwYW5kX2Zl bnYKKwogLyogU2VjdGlvbiBhbmNob3Igc3VwcG9ydC4gICovCiAKICN1bmRl ZiBUQVJHRVRfTUlOX0FOQ0hPUl9PRkZTRVQKZGlmZiAtLWdpdCBhL2djYy9j b25maWcvYWFyY2g2NC9hYXJjaDY0Lm1kIGIvZ2NjL2NvbmZpZy9hYXJjaDY0 L2FhcmNoNjQubWQKaW5kZXggYzg2YTI5ZC4uMjRmMjM1ZiAxMDA2NDQKLS0t IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQubWQKKysrIGIvZ2NjL2Nv bmZpZy9hYXJjaDY0L2FhcmNoNjQubWQKQEAgLTEwNyw2ICsxMDcsMTAgQEAK IAogKGRlZmluZV9jX2VudW0gInVuc3BlY3YiIFsKICAgICBVTlNQRUNWX0VI X1JFVFVSTgkJOyBSZXByZXNlbnQgRUhfUkVUVVJOCisgICAgVU5TUEVDVl9H RVRfRlBDUgkJOyBSZXByZXNlbnQgZmV0Y2ggb2YgRlBDUiBjb250ZW50Lgor ICAgIFVOU1BFQ1ZfU0VUX0ZQQ1IJCTsgUmVwcmVzZW50IGFzc2lnbiBvZiBG UENSIGNvbnRlbnQuCisgICAgVU5TUEVDVl9HRVRfRlBTUgkJOyBSZXByZXNl bnQgZmV0Y2ggb2YgRlBTUiBjb250ZW50LgorICAgIFVOU1BFQ1ZfU0VUX0ZQ U1IJCTsgUmVwcmVzZW50IGFzc2lnbiBvZiBGUFNSIGNvbnRlbnQuCiAgIF0K ICkKIApAQCAtMzYzNSw2ICszNjM5LDM3IEBACiAgIERPTkU7CiB9KQogCis7 OyBXcml0ZSBGbG9hdGluZy1wb2ludCBDb250cm9sIFJlZ2lzdGVyLgorKGRl ZmluZV9pbnNuICJzZXRfZnBjciIKKyAgWyh1bnNwZWNfdm9sYXRpbGUgWyht YXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJyIildIFVO U1BFQ1ZfU0VUX0ZQQ1IpXQorICAiIgorICAibXNyXFx0ZnBjciwgJTAiCisg IFsoc2V0X2F0dHIgInR5cGUiICJtcnMiKV0pCisKKzs7IFJlYWQgRmxvYXRp bmctcG9pbnQgQ29udHJvbCBSZWdpc3Rlci4KKyhkZWZpbmVfaW5zbiAiZ2V0 X2ZwY3IiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVy X29wZXJhbmQiICI9ciIpCisgICAgICAgICh1bnNwZWNfdm9sYXRpbGU6U0kg Wyhjb25zdF9pbnQgMCldIFVOU1BFQ1ZfR0VUX0ZQQ1IpKV0KKyAgIiIKKyAg Im1yc1xcdCUwLCBmcGNyIgorICBbKHNldF9hdHRyICJ0eXBlIiAibXJzIild KQorCis7OyBXcml0ZSBGbG9hdGluZy1wb2ludCBTdGF0dXMgUmVnaXN0ZXIu CisoZGVmaW5lX2luc24gInNldF9mcHNyIgorICBbKHVuc3BlY192b2xhdGls ZSBbKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgInIi KV0gVU5TUEVDVl9TRVRfRlBTUildCisgICIiCisgICJtc3JcXHRmcHNyLCAl MCIKKyAgWyhzZXRfYXR0ciAidHlwZSIgIm1ycyIpXSkKKworOzsgUmVhZCBG bG9hdGluZy1wb2ludCBTdGF0dXMgUmVnaXN0ZXIuCisoZGVmaW5lX2luc24g ImdldF9mcHNyIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPXIiKQorICAgICAgICAodW5zcGVjX3ZvbGF0aWxl OlNJIFsoY29uc3RfaW50IDApXSBVTlNQRUNWX0dFVF9GUFNSKSldCisgICIi CisgICJtcnNcXHQlMCwgZnBzciIKKyAgWyhzZXRfYXR0ciAidHlwZSIgIm1y cyIpXSkKKworCiA7OyBBZHZTSU1EIFN0dWZmCiAoaW5jbHVkZSAiYWFyY2g2 NC1zaW1kLm1kIikKIApkaWZmIC0tZ2l0IGEvZ2NjL2RvYy9leHRlbmQudGV4 aSBiL2djYy9kb2MvZXh0ZW5kLnRleGkKaW5kZXggMzQ3YTk0YS4uOGJkMTNm MyAxMDA2NDQKLS0tIGEvZ2NjL2RvYy9leHRlbmQudGV4aQorKysgYi9nY2Mv ZG9jL2V4dGVuZC50ZXhpCkBAIC05MTA3LDYgKzkxMDcsNyBAQCB0byB0aG9z ZSBtYWNoaW5lcy4gIEdlbmVyYWxseSB0aGVzZSBnZW5lcmF0ZSBjYWxscyB0 byBzcGVjaWZpYyBtYWNoaW5lCiBpbnN0cnVjdGlvbnMsIGJ1dCBhbGxvdyB0 aGUgY29tcGlsZXIgdG8gc2NoZWR1bGUgdGhvc2UgY2FsbHMuCiAKIEBtZW51 CisqIEFBUkNINjQgQnVpbHQtaW4gRnVuY3Rpb25zOjoKICogQWxwaGEgQnVp bHQtaW4gRnVuY3Rpb25zOjoKICogQWx0ZXJhIE5pb3MgSUkgQnVpbHQtaW4g RnVuY3Rpb25zOjoKICogQVJDIEJ1aWx0LWluIEZ1bmN0aW9uczo6CkBAIC05 MTM5LDYgKzkxNDAsMTggQEAgaW5zdHJ1Y3Rpb25zLCBidXQgYWxsb3cgdGhl IGNvbXBpbGVyIHRvIHNjaGVkdWxlIHRob3NlIGNhbGxzLgogKiBUSUxFUHJv IEJ1aWx0LWluIEZ1bmN0aW9uczo6CiBAZW5kIG1lbnUKIAorQG5vZGUgQUFS Q0g2NCBCdWlsdC1pbiBGdW5jdGlvbnMKK0BzdWJzZWN0aW9uIEFBUkNINjQg QnVpbHQtaW4gRnVuY3Rpb25zCisKK1RoZXNlIGJ1aWx0LWluIGZ1bmN0aW9u cyBhcmUgYXZhaWxhYmxlIGZvciB0aGUgQUFSQ0g2NCBmYW1pbHkgb2YKK3By b2Nlc3NvcnMuCitAc21hbGxleGFtcGxlCit1bnNpZ25lZCBpbnQgX19idWls dGluX2FhcmNoNjRfZ2V0X2ZwY3IgKCkKK3ZvaWQgX19idWlsdGluX2FhcmNo NjRfc2V0X2ZwY3IgKHVuc2lnbmVkIGludCkKK3Vuc2lnbmVkIGludCBfX2J1 aWx0aW5fYWFyY2g2NF9nZXRfZnBzciAoKQordm9pZCBfX2J1aWx0aW5fYWFy Y2g2NF9zZXRfZnBzciAodW5zaWduZWQgaW50KQorQGVuZCBzbWFsbGV4YW1w bGUKKwogQG5vZGUgQWxwaGEgQnVpbHQtaW4gRnVuY3Rpb25zCiBAc3Vic2Vj dGlvbiBBbHBoYSBCdWlsdC1pbiBGdW5jdGlvbnMKIAo= --------------050909040105020604010708--