From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A275BC7EE24 for ; Mon, 5 Jun 2023 03:15:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=NhiPFqS9I6L29sbRyq8hQT3reaVC46sFf6MBUpWrYM8=; b=zoFdIj/6P9XS7T IYxbbku6kPpP1Gq9Q98/C968MrFoXOwlTXXi357ACznU3CRg79hEKDQQTDD+R/Kxytjfulx3yoB9u ct0WUuUxUFoNPYMKX8hZXNbZGGXieJtVYz+/STbK7JbptzFUARhIynJ29/Y0NC8sZO4vbS1K+Ao7a wTKUzEhExsW6fyqlp7vhw1O1MRzPMvBUIrggmvoBLzJVcWMputYV8F1C57Y3ZLaEi2hVvdNPNIpLZ lN1FCRhgG2sNFYcgaqZhLGLFx/sER6BNiyGUX54nNC1VjTsEcriUMJZgFfx2UP/FIeCcGifiSPBeO CVR7jDAY/pFBz6p9dTwQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q60gV-00Dt5v-0E; Mon, 05 Jun 2023 03:15:07 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q60gS-00Dt4H-03 for linux-arm-kernel@lists.infradead.org; Mon, 05 Jun 2023 03:15:05 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 504A1D75; Sun, 4 Jun 2023 20:15:43 -0700 (PDT) Received: from [10.162.41.6] (a077893.blr.arm.com [10.162.41.6]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 45FE03F663; Sun, 4 Jun 2023 20:14:52 -0700 (PDT) Message-ID: Date: Mon, 5 Jun 2023 08:44:50 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PATCH V11 08/10] arm64/perf: Add struct brbe_regset helper functions Content-Language: en-US To: Namhyung Kim Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, will@kernel.org, catalin.marinas@arm.com, mark.rutland@arm.com, Mark Brown , James Clark , Rob Herring , Marc Zyngier , Suzuki Poulose , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , linux-perf-users@vger.kernel.org References: <20230531040428.501523-1-anshuman.khandual@arm.com> <20230531040428.501523-9-anshuman.khandual@arm.com> From: Anshuman Khandual In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230604_201504_175972_3C305919 X-CRM114-Status: GOOD ( 26.05 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiA2LzIvMjMgMDg6MTAsIE5hbWh5dW5nIEtpbSB3cm90ZToKPiBPbiBUdWUsIE1heSAzMCwg MjAyMyBhdCA5OjE14oCvUE0gQW5zaHVtYW4gS2hhbmR1YWwKPiA8YW5zaHVtYW4ua2hhbmR1YWxA YXJtLmNvbT4gd3JvdGU6Cj4+Cj4+IFRoZSBwcmltYXJ5IGFic3RyYWN0aW9uIGxldmVsIGZvciBm ZXRjaGluZyBicmFuY2ggcmVjb3JkcyBmcm9tIEJSQkUgSFcgaGFzCj4+IGJlZW4gY2hhbmdlZCBh cyAnc3RydWN0IGJyYmVfcmVnc2V0Jywgd2hpY2ggY29udGFpbnMgc3RvcmFnZSBmb3IgYWxsIHRo cmVlCj4+IEJSQkUgcmVnaXN0ZXJzIGkuZSBCUkJTUkMsIEJSQlRHVCwgQlJCSU5GLiBXaGV0aGVy IGJyYW5jaCByZWNvcmQgcHJvY2Vzc2luZwo+PiBoYXBwZW5zIGluIHRoZSB0YXNrIHNjaGVkIG91 dCBwYXRoLCBvciBpbiB0aGUgUE1VIElSUSBoYW5kbGluZyBwYXRoLCB0aGVzZQo+PiByZWdpc3Rl cnMgbmVlZCB0byBiZSBleHRyYWN0ZWQgZnJvbSB0aGUgSFcuIEFmdGVyd2FyZHMgYm90aCBsaXZl IGFuZCBzdG9yZWQKPj4gc2V0cyBuZWVkIHRvIGJlIHN0aXRjaGVkIHRvZ2V0aGVyIHRvIGNyZWF0 ZSBmaW5hbCBicmFuY2ggcmVjb3JkcyBzZXQuIFRoaXMKPj4gYWRkcyByZXF1aXJlZCBoZWxwZXIg ZnVuY3Rpb25zIGZvciBzdWNoIG9wZXJhdGlvbnMuCj4+Cj4+IENjOiBDYXRhbGluIE1hcmluYXMg PGNhdGFsaW4ubWFyaW5hc0Bhcm0uY29tPgo+PiBDYzogV2lsbCBEZWFjb24gPHdpbGxAa2VybmVs Lm9yZz4KPj4gQ2M6IE1hcmsgUnV0bGFuZCA8bWFyay5ydXRsYW5kQGFybS5jb20+Cj4+IENjOiBs aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPj4gQ2M6IGxpbnV4LWtlcm5lbEB2 Z2VyLmtlcm5lbC5vcmcKPj4gVGVzdGVkLWJ5OiBKYW1lcyBDbGFyayA8amFtZXMuY2xhcmtAYXJt LmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogQW5zaHVtYW4gS2hhbmR1YWwgPGFuc2h1bWFuLmtoYW5k dWFsQGFybS5jb20+Cj4+IC0tLQo+IAo+IFtTTklQXQo+PiArCj4+ICtzdGF0aWMgaW5saW5lIHZv aWQgY29weV9icmJlX3JlZ3NldChzdHJ1Y3QgYnJiZV9yZWdzZXQgKnNyYywgaW50IHNyY19pZHgs Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBicmJlX3JlZ3Nl dCAqZHN0LCBpbnQgZHN0X2lkeCkKPj4gK3sKPj4gKyAgICAgICBkc3RbZHN0X2lkeF0uYnJiaW5m ID0gc3JjW3NyY19pZHhdLmJyYmluZjsKPj4gKyAgICAgICBkc3RbZHN0X2lkeF0uYnJic3JjID0g c3JjW3NyY19pZHhdLmJyYnNyYzsKPj4gKyAgICAgICBkc3RbZHN0X2lkeF0uYnJidGd0ID0gc3Jj W3NyY19pZHhdLmJyYnRndDsKPj4gK30KPj4gKwo+PiArLyoKPj4gKyAqIFRoaXMgZnVuY3Rpb24g Y29uY2F0ZW5hdGVzIGJyYW5jaCByZWNvcmRzIGZyb20gc3RvcmVkIGFuZCBsaXZlIGJ1ZmZlcgo+ PiArICogdXAgdG8gbWF4aW11bSBucl9tYXggcmVjb3JkcyBhbmQgdGhlIHN0b3JlZCBidWZmZXIg aG9sZHMgdGhlIHJlc3VsdGFudAo+PiArICogYnVmZmVyLiBUaGUgY29uY2F0ZW5hdGVkIGJ1ZmZl ciBjb250YWlucyBhbGwgdGhlIGJyYW5jaCByZWNvcmRzIGZyb20KPj4gKyAqIHRoZSBsaXZlIGJ1 ZmZlciBidXQgbWlnaHQgY29udGFpbiBzb21lIGZyb20gc3RvcmVkIGJ1ZmZlciBjb25zaWRlcmlu Zwo+PiArICogdGhlIG1heGltdW0gY29tYmluZWQgbGVuZ3RoIGRvZXMgbm90IGV4Y2VlZCAnbnJf bWF4Jy4KPj4gKyAqCj4+ICsgKiAgICAgU3RvcmVkIHJlY29yZHMgIExpdmUgcmVjb3Jkcwo+PiAr ICogICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLV4K Pj4gKyAqICAgICB8ICAgICAgIFMwICAgICAgfCAgICAgICBMMCAgICAgIHwgICAgICAgTmV3ZXN0 ICB8Cj4+ICsgKiAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICAgICAg ICAgICAgfAo+PiArICogICAgIHwgICAgICAgUzEgICAgICB8ICAgICAgIEwxICAgICAgfCAgICAg ICAgICAgICAgIHwKPj4gKyAqICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g ICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgfCAgICAgICBTMiAgICAgIHwgICAgICAgTDIgICAg ICB8ICAgICAgICAgICAgICAgfAo+PiArICogICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSAgICAgICAgICAgICAgIHwKPj4gKyAqICAgICB8ICAgICAgIFMzICAgICAgfCAgICAg ICBMMyAgICAgIHwgICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tICAgICAgICAgICAgICAgfAo+PiArICogICAgIHwgICAgICAgUzQgICAg ICB8ICAgICAgIEw0ICAgICAgfCAgICAgICAgICAgICAgIG5yX21heAo+PiArICogICAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAgICAgIHwKPj4gKyAqICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICBMNSAgICAgIHwgICAgICAgICAgICAgICB8Cj4+ICsgKiAg ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICAgICAgICAgICAgfAo+PiAr ICogICAgIHwgICAgICAgICAgICAgICB8ICAgICAgIEw2ICAgICAgfCAgICAgICAgICAgICAgIHwK Pj4gKyAqICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAg ICB8Cj4+ICsgKiAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgTDcgICAgICB8ICAgICAgICAg ICAgICAgfAo+PiArICogICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAg ICAgICAgICAgIHwKPj4gKyAqICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tICAgICAgICAgICAgICAgfAo+PiArICogICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgfCAgICAgICBPbGRlc3QgIHwKPj4gKyAqICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1WCj4+ICsgKgo+PiArICoKPj4gKyAqIFMwIGlzIHRo ZSBuZXdlc3QgaW4gdGhlIHN0b3JlZCByZWNvcmRzLCB3aGVyZSBhcyBMNyBpcyB0aGUgb2xkZXN0 IGluCj4+ICsgKiB0aGUgbGl2ZSByZW9jb3Jkcy4gVW5sZXNzIHRoZSBsaXZlIGJ1ZmZlciBpcyBk ZXRldGN0ZWQgYXMgYmVpbmcgZnVsbAo+PiArICogdGh1cyBwb3RlbnRpYWxseSBkcm9wcGluZyBv ZmYgc29tZSBvbGRlciByZWNvcmRzLCBMNyBhbmQgUzAgcmVjb3Jkcwo+PiArICogYXJlIGNvbnRp Z3VvdXMgaW4gdGltZSBmb3IgYSB1c2VyIHRhc2sgY29udGV4dC4gVGhlIHN0aXRjaGVkIGJ1ZmZl cgo+PiArICogaGVyZSByZXByZXNlbnRzIG1heGltdW0gcG9zc2libGUgYnJhbmNoIHJlY29yZHMs IGNvbnRpZ3VvdXMgaW4gdGltZS4KPj4gKyAqCj4+ICsgKiAgICAgU3RvcmVkIHJlY29yZHMgIExp dmUgcmVjb3Jkcwo+PiArICogICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLV4KPj4gKyAqICAgICB8ICAgICAgIEwwICAgICAgfCAgICAgICBMMCAgICAg IHwgICAgICAgTmV3ZXN0ICB8Cj4+ICsgKiAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICAgICAgICAgICAgICAgfAo+PiArICogICAgIHwgICAgICAgTDAgICAgICB8ICAgICAg IEwxICAgICAgfCAgICAgICAgICAgICAgIHwKPj4gKyAqICAgICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgfCAgICAgICBMMiAgICAg IHwgICAgICAgTDIgICAgICB8ICAgICAgICAgICAgICAgfAo+PiArICogICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAgICAgIHwKPj4gKyAqICAgICB8ICAgICAg IEwzICAgICAgfCAgICAgICBMMyAgICAgIHwgICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICAgICAgICAgICAgfAo+PiArICogICAg IHwgICAgICAgTDQgICAgICB8ICAgICAgIEw0ICAgICAgfCAgICAgICAgICAgICBucl9tYXgKPj4g KyAqICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICB8 Cj4+ICsgKiAgICAgfCAgICAgICBMNSAgICAgIHwgICAgICAgTDUgICAgICB8ICAgICAgICAgICAg ICAgfAo+PiArICogICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAg ICAgICAgIHwKPj4gKyAqICAgICB8ICAgICAgIEw2ICAgICAgfCAgICAgICBMNiAgICAgIHwgICAg ICAgICAgICAgICB8Cj4+ICsgKiAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ICAgICAgICAgICAgICAgfAo+PiArICogICAgIHwgICAgICAgTDcgICAgICB8ICAgICAgIEw3ICAg ICAgfCAgICAgICAgICAgICAgIHwKPj4gKyAqICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgfCAgICAgICBTMCAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfAo+PiArICogICAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAgICAgIHwKPj4gKyAqICAgICB8ICAgICAgIFMxICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgT2xkZXN0ICAgICB8Cj4+ICsgKiAgICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tVgo+PiArICogICAgIHwgICAg ICAgUzIgICAgICB8IDwtLS0tfAo+PiArICogICAgIC0tLS0tLS0tLS0tLS0tLS0tICAgICAgfAo+ PiArICogICAgIHwgICAgICAgUzMgICAgICB8IDwtLS0tfCBEcm9wcGVkIG9mZiBhZnRlciBucl9t YXgKPj4gKyAqICAgICAtLS0tLS0tLS0tLS0tLS0tLSAgICAgIHwKPj4gKyAqICAgICB8ICAgICAg IFM0ICAgICAgfCA8LS0tLXwKPj4gKyAqICAgICAtLS0tLS0tLS0tLS0tLS0tLQo+PiArICovCj4+ ICtzdGF0aWMgaW50IHN0aXRjaF9zdG9yZWRfbGl2ZV9lbnRyaWVzKHN0cnVjdCBicmJlX3JlZ3Nl dCAqc3RvcmVkLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBicmJlX3JlZ3NldCAqbGl2ZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgbnJfc3RvcmVkLCBpbnQgbnJfbGl2ZSwKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgbnJfbWF4KQo+PiArewo+PiArICAgICAgIGludCBucl90b3Rh bCwgbnJfZXhjZXNzLCBucl9sYXN0LCBpOwo+PiArCj4+ICsgICAgICAgbnJfdG90YWwgPSBucl9z dG9yZWQgKyBucl9saXZlOwo+PiArICAgICAgIG5yX2V4Y2VzcyA9IG5yX3RvdGFsIC0gbnJfbWF4 Owo+PiArCj4+ICsgICAgICAgLyogU3RvcmVkIGJyYW5jaCByZWNvcmRzIGluIHN0aXRjaGVkIGJ1 ZmZlciAqLwo+PiArICAgICAgIGlmIChucl9saXZlID09IG5yX21heCkKPj4gKyAgICAgICAgICAg ICAgIG5yX3N0b3JlZCA9IDA7Cj4+ICsgICAgICAgZWxzZSBpZiAobnJfZXhjZXNzID4gMCkKPj4g KyAgICAgICAgICAgICAgIG5yX3N0b3JlZCAtPSBucl9leGNlc3M7Cj4+ICsKPj4gKyAgICAgICAv KiBTdGl0Y2hlZCBidWZmZXIgYnJhbmNoIHJlY29yZHMgbGVuZ3RoICovCj4+ICsgICAgICAgaWYg KG5yX3RvdGFsID4gbnJfbWF4KQo+PiArICAgICAgICAgICAgICAgbnJfbGFzdCA9IG5yX21heDsK Pj4gKyAgICAgICBlbHNlCj4+ICsgICAgICAgICAgICAgICBucl9sYXN0ID0gbnJfdG90YWw7Cj4+ ICsKPj4gKyAgICAgICAvKiBNb3ZlIHN0b3JlZCBicmFuY2ggcmVjb3JkcyAqLwo+PiArICAgICAg IGZvciAoaSA9IDA7IGkgPCBucl9zdG9yZWQ7IGkrKykKPj4gKyAgICAgICAgICAgICAgIGNvcHlf YnJiZV9yZWdzZXQoc3RvcmVkLCBpLCBzdG9yZWQsIG5yX2xhc3QgLSBucl9zdG9yZWQgLSAxICsg aSk7Cj4gCj4gSSdtIGFmcmFpZCBpdCBjYW4gb3ZlcndyaXRlIHNvbWUgZW50cmllcyBpZiBucl9s aXZlIGlzIHNtYWxsCj4gYW5kIG5yX3N0b3JlZCBpcyBiaWcuICBXaHkgbm90IHVzZSBtZW1tb3Zl KCk/Cgpucl9zdG9yZWQgaXMgZmlyc3QgYWRqdXN0ZWQgd2l0aCBucl9leGNlc3MgaWYgYm90aCBs aXZlIGFuZCBzdG9yZWQgZW50cmllcyBjb21iaW5lZApleGNlZWQgdGhlIG1heGltdW0gYnJhbmNo IHJlY29yZHMgaW4gdGhlIEhXLiBJIGFtIHdvbmRlcmluZyBob3cgaXQgY2FuIG92ZXJyaWRlID8K Cj4gCj4gQWxzbyBJIHRoaW5rIGl0J2QgYmUgc2ltcGxlciBpZiB5b3UgY29weSBzdG9yZSB0byBs aXZlLgo+IEl0J2xsIHNhdmUgY29weWluZyBsaXZlIGluIHRoZSBJUlEgYnV0IGl0IHdpbGwgY29w eSB0aGUKPiB3aG9sZSBjb250ZW50IHRvIHN0b3JlIGFnYWluIGZvciB0aGUgc2NoZWQgc3dpdGNo LgoKQnV0IGhvdyB0aGF0IGlzIGJldHRlciB0aGFuIHRoZSBjdXJyZW50IHNjaGVtZSA/CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2Vy bmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVs Cg==