From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 1CB493858415 for ; Tue, 18 Oct 2022 21:49:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1CB493858415 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29IKx98D026952 for ; Tue, 18 Oct 2022 21:49:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=0U92HAPhLv8JryjbTWu/sy2jhbonxGHJqPWanaNtw/E=; b=u+JfnCH3BhnOXun++wIB8+EeLMP6U3XQ1C1D5wL64S7FX7kKpG1RaI+duih/sebMY4aS jIT4aCgaKfdJJ6vbZVTGDH+Koux/7zZ6O8Qx/ffVsX/O91owDB5fcEkHK6odkQyffuga pFovChxq95E8btuuVXKNBCKWQqbJuliTCIUsQBNEjwFtO+jk5d7NijBsGI4r8ucBFS7b kARPoyyI07QFc/5rsM5SVSAo3kCtuMark0I9qveuEUgZYWDBbGeiluwL+vcae9kuaPr8 jz0ntuEwIlZIb5LE3I01eJflVTn4sR53mbA3AFoLOSLbhtAh98K5biNMYC5acorOYXlb ng== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3k9aww3tsw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 18 Oct 2022 21:49:01 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 29IJqNhB024268 for ; Tue, 18 Oct 2022 21:48:58 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2168.outbound.protection.outlook.com [104.47.58.168]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3k8hu6v89q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 18 Oct 2022 21:48:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dZOFpPSowogKoy03NO0XiKAwykKO8YHfmgAaNdCSHy6tBR/bLAHv45hp6F5ibE3Pt/8lbGZvo2/tPCE7Wqi7Ek97EGqy8eB4s36L6KL0dJv5oCJvFx8ISogkhU4RWL5qL/U/mhqllkXrK2wG8fY7dGenJdxXlKHcjNtcdy6GM3TJZ592ETvURI5amK2l0obJp9wMkTXhxqNg48PiQ1al3gFVD6KHszj0bzUo+WCXoxlL3tY5An8m7Qs9ddzjZ4tTYraeexwbVjmvc306YV+Mhbdo7PxJIlNbCeFwBPnRBoBq79xxyYVTvAJUa99Ief1JHeU9+fUbhcBfi8UKkSKc2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0U92HAPhLv8JryjbTWu/sy2jhbonxGHJqPWanaNtw/E=; b=SM6Xy+oKIrnRd7ARmiCGreF3ZjwAekBMd7Js2tX7WnwII3Eg2a2imYf1oLN8w9Hpsuzl9j70qCwkwB2htgRAhBIm4fWXcUOizID/2qF23jcqjEIv5a7nWMxsX+1TQ1a0j31CiJYFzTcRa50E0fXPJ0RjLAEqoLvdDLKnIBmp1JzuJhXV+VWg0IzsNIeQaV0Ffj0CuZhlGCw0NrYaSvNuVsFcpGxEgrcazaSJgS4jfi74SYQ1KMmioWojBJWBj8uSusobMm//j8pRgdhdEKKN/x1zmni/Gsu1MZPbqelG74okDsog5HR+k7z8t7HTacoJhMKI/FYFTTPR8oi3Qy2wXQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0U92HAPhLv8JryjbTWu/sy2jhbonxGHJqPWanaNtw/E=; b=fSiCYlcFn9EzIz8m6S1RJOrhRPuTYsX7RI0rfZGLaTR1EZFANNzkYPX1bwoBktZ8brWK4NSp0SDzTpmVzDEH72Bv/rtyQ/+kYR4Tt5kK1UdstcQEHlVhpksqtF2Fbizikz/6Aq5UxIxjtVafk+TUL75ZyAkgWAYqTlGm14RL0ls= Received: from MWHPR10MB1407.namprd10.prod.outlook.com (2603:10b6:300:23::20) by SA1PR10MB6639.namprd10.prod.outlook.com (2603:10b6:806:2b8::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.32; Tue, 18 Oct 2022 21:48:55 +0000 Received: from MWHPR10MB1407.namprd10.prod.outlook.com ([fe80::d05e:773d:2a05:eaed]) by MWHPR10MB1407.namprd10.prod.outlook.com ([fe80::d05e:773d:2a05:eaed%2]) with mapi id 15.20.5723.033; Tue, 18 Oct 2022 21:48:55 +0000 Message-ID: <4e8dc5be-5516-e4f6-7893-a594948e16d5@oracle.com> Date: Tue, 18 Oct 2022 16:48:51 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 Subject: Re: [PATCH v3] btf: Add support to BTF_KIND_ENUM64 type Content-Language: en-US To: Indu Bhagat , gcc-patches@gcc.gnu.org Cc: david.faust@oracle.com References: <20220928211501.2647123-1-guillermo.e.martinez@oracle.com> <20221015035548.274704-1-guillermo.e.martinez@oracle.com> <89f6eab1-aaf7-2f54-f3e5-c3618603cfc2@oracle.com> From: "Guillermo E. Martinez" Organization: Oracle Corporation In-Reply-To: <89f6eab1-aaf7-2f54-f3e5-c3618603cfc2@oracle.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SN4PR0501CA0033.namprd05.prod.outlook.com (2603:10b6:803:40::46) To MWHPR10MB1407.namprd10.prod.outlook.com (2603:10b6:300:23::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR10MB1407:EE_|SA1PR10MB6639:EE_ X-MS-Office365-Filtering-Correlation-Id: 425dd9d1-83cd-4a18-269a-08dab1528de2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TzlXfZdLIewe3fbMz33ImcjMw2Sxa7+VYM0tR1A/TxpwpZzw9XzBhSOyw5cTxQhkmtAQ4gT6+FKjHp8Rta+3Iytqa+ZyJZdxjgBrW/VwgrQgx/+uRJEm9VUaTiHXKHJTwUR2l/wfBdVqf7398VuontHGbiqp2LVHN98zsn8nnoyFxnIwXUULxy1hFgs3FTWUgfbwrBhighmEis6qLWbXTiA75ENAuGzaxSqx2ynXV1xRyuTzsnfvwpNMWFgOkFeRmwqAW6ThqSblkrN5lyfuj/BFDselxgEso666Jek6tzs/do5OzI0iPcZCiVDZw4M911mwzdlWg4jbrMbERrTtoCCRw0IGv7wKjh4nm6+X9BarK7Pwm+PU7mr157fCb2ZcmrQRgzGakWjT3EWzyTMbf8/H5Yrh4RWL1vO9PV0m/Q9o9fpNwDuCXePMzqRkWD8bTiyEas2u/8QZeBXix3kaf1lI7hPw2hVudTNBUyCOcLv0M17i9M6p5YT6uSHN9lNUKBcIFWQ2IGd28fy8nfkhxHFJGJQdZ7zi6RWmgzaxeCWx1OpAn8ko+GuBcpxFe2+cYO8suTTOujiP4UypXrTYhMgNhhsIrcGOs6fRtHW1pkS5Vmcue20wz2t1M3ouzDfxWioeDyurl0pmFtQ7sMZHBMBKTtQqPJ5z3ySTMcdGZnL4hYoG6EKLBsW2cDvvAuG6r8BEUSUySuTeS3ix2jbPYxgcZVJW7tye0CvNgBN4UGtq74hd+vCNjySwFBIgJpyfQJAZZM5jzVs8xOdavZbEUora6vaXr+6JX3b7nnme0FkpPBhowdo/mFbiZfFKKmEYS+yG3Yphtyf0twUsNiiSQSClfDI8ZqSgOw6odRnxq4Q= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR10MB1407.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(346002)(396003)(136003)(376002)(366004)(39860400002)(451199015)(36756003)(31696002)(86362001)(38100700002)(83380400001)(31686004)(316002)(6666004)(107886003)(478600001)(6486002)(66899015)(4326008)(6506007)(53546011)(36916002)(84970400001)(186003)(5660300002)(6512007)(8936002)(41300700001)(2906002)(8676002)(2616005)(66946007)(66476007)(66556008)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Si9YUCtLZkNyZ1VxTEc4c3p6TXdlL3piMnRQSW1OVjNsdEpIL090OXFoblFQ?= =?utf-8?B?Z21jUjR6NXhFWDk0SVJUcEJJcldrTTZCYVY5Qjc2UCtxWDF4NkR3Rnh0dEZ0?= =?utf-8?B?L2publcxblBPRTZueXRjWXllNGVnY2FYK1QvUHl1cC8yb0xqVXJLTUE1c2U0?= =?utf-8?B?dFZIUzlsQ1Z3cHpobW9nVy9ybGFYbEtXOFA1V0c5bmtJdkNHcnZyNEFtcWs2?= =?utf-8?B?YlU4aGJ5UjZXbDI1Z2FMamM5TWZuQTJLRGFaQy9BRmxRZW9PVXA2MVYyTUs5?= =?utf-8?B?TGtVZ0xZRjFKYTA2cTJrMC9RelRFQ2NPN0tSMFA5c0NjTWRab0R6b2NtQjhF?= =?utf-8?B?L0xyVW9CZlBMbTJVbXFRdXdHNWxrQnBmSm5QM2drQWRyRDlmTzZTSHkzWnht?= =?utf-8?B?dDFDeVQ3VW9waFVwM2E5V2E1clZzbEU0d3FZSjZTQmtwUmpZdXlnUVRqSlN2?= =?utf-8?B?TFFQNll1cW1xYnVLdFhpMWJ4RzVEaU9SMzRacUxuOTc0ZkZOckNPcEVPMS8x?= =?utf-8?B?TnNmektGUkpKUm5jZWkvZGVjK0VoRG1KS3FuSklTOEttQi8yMk5pdHFjd1Zs?= =?utf-8?B?UUZ2YTFBZDZtbzcraldQbG8wR3BTd1RJNDFKN2svakgwbnc0RHJ1dVFsbjcz?= =?utf-8?B?S2NOQmdkZXpaUDF4R1NGWE5lNU5vTmxaNnpqYWt5ZjhrUkJxdytYVE9pWU1m?= =?utf-8?B?OEZ3RHdSWW5MWEVlR3g2VnZlQlErY2NrZWVGSUtjREFwRmVpOWRobXJxVW95?= =?utf-8?B?YUxHbkRVUG0wc045Y2ZRR2E2bUpnOEI1Q0JsbHVnWjZ1RzdFNUU5S0dJcDNI?= =?utf-8?B?eUtoSG1ya2tVWHlEbGF3aUYyN0tiWG9jR2MyRS9ra2pnVXZzNTMrWXpXMDAx?= =?utf-8?B?a2JSSTJqVkgweUtRTUhHQmFxWlJyc0hQWVF0QUpORy9hZkplTjZoRmZVM1JI?= =?utf-8?B?eUFjb1FKcHZZQzZVclVpVGZ1Nit1a0Y2UjJJdzdoNnhIa3FteCtXZngyTHd6?= =?utf-8?B?ajlYRWQ0bFZWVVl6Tnh4QW5iT0lhN1RrWWtOQUp3OG5FM1lMRDMwODlyUmJB?= =?utf-8?B?V3FiSzF1L2htS2VuMVhkMVI2R1JnN0wrRGVYZE1aOHJuUkVmQnlnRUUrVVo1?= =?utf-8?B?U3A4S0picms4M2srU2RMeVRZK3l4ZCtDb2ExandTRTlFeTFmUHpSVzVUNkNt?= =?utf-8?B?c1J6ZlZXNGpZMnRFRXZRUTM5RFZZZFNEVjhRY2tIU0tqc0l1V1VKem1CTUFP?= =?utf-8?B?aVVTdlhOMHIvWm5PTEpBMmRFNktUczIwSER6MFIwVnEvb3lQcFNsWWMvNXFX?= =?utf-8?B?Y0oyMm1EK0pIcXdIZmFLSkF5NmhXblZMTFVxeDNoYTkwU3J1SGpQbHhHbmV6?= =?utf-8?B?NDhQTUJJZVlLeEFoQnAwbVQ3cVd2WTl1OVZ3N3MvbTFtQXgrTzV1aXo1RUhl?= =?utf-8?B?V1lyN0ZOalZ4UW5lcFQxRGY2WWFicWF0cGlzMC80eXBJWnhmTVhOS2ViM3lH?= =?utf-8?B?TWRxLzd5Q1U3Tm8rR3JvbERWbkFFKzlkZUNOVVkrUDVyY0I3VVhQRW9OVVhG?= =?utf-8?B?L3Qya2RxTTI4eEltVEV1UWlIQ2gxdXhPSUNFWER1QzFjLzBxSGViT1I0dzQr?= =?utf-8?B?WTMwM2dBcU1PZ3kvaElNK1FlRGROWmJwcU5pZTNjYWNaWkR3dmM0SHRmSGo3?= =?utf-8?B?cUY1VkFTZW0yUFlJOTVMSUJyb0drZGIraGpYemlyZ3JqNmtJYkFXUmVNUzRE?= =?utf-8?B?T0o4OUpCVEVxK29hWmdHTHQ5dzFJNUR0cTV0Q3ltVlp0QW8wVUNueWwxbUt2?= =?utf-8?B?bVdIdDk0eTJqYkUxemhMZzFyeS9aT2sxK2pic2xIRWVNdFpETFhaYzVDV3Z0?= =?utf-8?B?Vk5RYmd1TVFudWt1RkhFQjdYTGFENGVGV0NIZlhnSzN1aFFDWnhCbHh5Q3pi?= =?utf-8?B?N0dTZk04cEZIa0FlZk5qcFM3QVhMOGJhYi9HWlYrY2FtaVJsakZ0T3gzaWRM?= =?utf-8?B?bDNNT1lodEcxTHhNbmNSbWpubFprcEZjVzNZRDQ5WnhvbzZRUWpsWXF4WEVs?= =?utf-8?B?OFpkaVpmNFlsZHpEUjNhcGRSdVM3RkpWMWk2SE5aYWxPaWtKbGxMb0doTWhj?= =?utf-8?B?QlRSVkRHak56T2xkTHVXZXJnUmxLRWlVM2ttamFiU2dmSFdoOFhaK01xWEtv?= =?utf-8?B?ZmFiSHJpSElEaWUzNzFTN1I1YUo4SCt5ak15RUpqUzJvVVNUd0V5d0czR3Ra?= =?utf-8?Q?7ySEWJyvWmxde+YaRM35bdB5rSONkdkWyZfemJTarQ=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 425dd9d1-83cd-4a18-269a-08dab1528de2 X-MS-Exchange-CrossTenant-AuthSource: MWHPR10MB1407.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Oct 2022 21:48:55.4689 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: sXd+aURMVyw4Yo7t0uWMvd1Tf3ssZ7fSzG302BZKZSrraVyYxajfTX2fo5RaRegx3Y3ZnOSQJJgkoKExtgrJ31JZ19NXZpGWJeJRw9gvnng= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB6639 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-18_07,2022-10-18_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 malwarescore=0 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210180123 X-Proofpoint-GUID: gaHfNx8lYf221F76mpkLG-3mkLsRezG_ X-Proofpoint-ORIG-GUID: gaHfNx8lYf221F76mpkLG-3mkLsRezG_ X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,NICE_REPLY_A,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,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: On 10/18/22 16:40, Indu Bhagat wrote: > Hi Guillermo, > Hi Indu, > On 10/14/22 8:55 PM, Guillermo E. Martinez wrote: >> Hello, >> >> The following is patch v3 to update BTF/CTF backend supporting >> BTF_KIND_ENUM64 type. Changes from v2: >> >>    + Add a new `dtd_enum_unsigned' field in `ctf_dtdef' to indicate >>      signedness of the enum type. >>    + Fix endianness for representing BTF enum 64-bits enumerators. >>    + Add {little,big}-endian testcases. >> >> Comments will be welcomed and appreciated!, >> >> Kind regards, >> guillermo >> >> -- >> >> BTF supports 64-bits enumerators with following encoding: >> >>    struct btf_type: >>      name_off: 0 or offset to a valid C identifier >>      info.kind_flag: 0 for unsigned, 1 for signed >>      info.kind: BTF_KIND_ENUM64 >>      info.vlen: number of enum values >>      size: 1/2/4/8 >> >> The btf_type is followed by info.vlen number of: >> >>      struct btf_enum64 >>      { >>        uint32_t name_off;   /* Offset in string section of enumerator name.  */ >>        uint32_t val_lo32;   /* lower 32-bit value for a 64-bit value Enumerator */ >>        uint32_t val_hi32;   /* high 32-bit value for a 64-bit value Enumerator */ >>      }; >> >> So, a new btf_enum64 structure was added to represent BTF_KIND_ENUM64 >> and a new field dtd_enum_unsigned in ctf_dtdef structure to distinguish >> when CTF enum is a signed or unsigned type, later that information is >> used to encode the BTF enum type. >> >> gcc/ChangeLog: >> >>     * btfout.cc (btf_calc_num_vbytes): Compute enumeration size depending of >>     enumerator type btf_enum{,64}. >>     (btf_asm_type): Update btf_kflag according to enumeration type sign >>     using dtd_enum_unsigned field for both:  BTF_KIND_ENUM{,64}. >>     (btf_asm_enum_const): New argument to represent the size of >>     the BTF enum type, writing the enumerator constant value for >>     32 bits, if it's 64 bits then explicitly writes lower 32-bits >>     value and higher 32-bits value. >>     (output_asm_btf_enum_list): Add enumeration size argument. >>     * ctfc.cc (ctf_add_enum): New argument to represent CTF enum >>     basic information. >>     (ctf_add_generic): Use of ei_{name. size, unsigned} to build the >>     dtd structure containing enumeration information. >>     (ctf_add_enumerator): Update comment mention support for BTF >>     enumeration in 64-bits. >>     * ctfc.h (ctf_dmdef): Update dmd_value to HOST_WIDE_INT to allow >>     use 32/64 bits enumerators. >>     (ctf_enum_binfo): New type to represent CTF basic enum type >>     information. >>     (ctf_dtdef): New field to describe enum signedness. >>     * dwarf2ctf.cc (gen_ctf_enumeration_type): Use of ctf_enum_binfo >>     type to pass information to ctf_add_enum to build the enum type. >> >> include/ >>     * btf.h (btf_enum64): Add new definition and new symbolic >>     constant to BTF_KIND_ENUM64 and BTF_KF_ENUM_{UN,}SIGNED. >> >> gcc/testsuite/ChangeLog: >> >>     * gcc.dg/debug/btf/btf-enum-1.c: Update testcase, with correct >>     info.kflags encoding. >>     * gcc.dg/debug/btf/btf-enum64-be-1.c: New testcase. >>     * gcc.dg/debug/btf/btf-enum64-le-1.c: New testcase. >> --- >>   gcc/btfout.cc                                 | 30 ++++++++++--- >>   gcc/ctfc.cc                                   | 22 +++++----- >>   gcc/ctfc.h                                    | 15 +++++-- >>   gcc/dwarf2ctf.cc                              |  8 +++- >>   gcc/testsuite/gcc.dg/debug/btf/btf-enum-1.c   |  2 +- >>   .../gcc.dg/debug/btf/btf-enum64-be-1.c        | 44 +++++++++++++++++++ >>   .../gcc.dg/debug/btf/btf-enum64-le-1.c        | 44 +++++++++++++++++++ >>   include/btf.h                                 | 19 ++++++-- >>   8 files changed, 160 insertions(+), 24 deletions(-) >>   create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-enum64-be-1.c >>   create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-enum64-le-1.c >> >> diff --git a/gcc/btfout.cc b/gcc/btfout.cc >> index 997a33fa089..aef9fd70a28 100644 >> --- a/gcc/btfout.cc >> +++ b/gcc/btfout.cc >> @@ -223,7 +223,9 @@ btf_calc_num_vbytes (ctf_dtdef_ref dtd) >>         break; >>       case BTF_KIND_ENUM: >> -      vlen_bytes += vlen * sizeof (struct btf_enum); >> +      vlen_bytes += (dtd->dtd_data.ctti_size == 0x8) >> +            ? vlen * sizeof (struct btf_enum64) >> +            : vlen * sizeof (struct btf_enum); >>         break; >>       case BTF_KIND_FUNC_PROTO: >> @@ -622,6 +624,15 @@ btf_asm_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd) >>         btf_size_type = 0; >>       } >> +  if (btf_kind == BTF_KIND_ENUM) >> +    { >> +      btf_kflag = dtd->dtd_enum_unsigned >> +            ? BTF_KF_ENUM_UNSIGNED >> +            : BTF_KF_ENUM_SIGNED; >> +      if (dtd->dtd_data.ctti_size == 0x8) >> +    btf_kind = BTF_KIND_ENUM64; >> +   } >> + >>     dw2_asm_output_data (4, dtd->dtd_data.ctti_name, "btt_name"); >>     dw2_asm_output_data (4, BTF_TYPE_INFO (btf_kind, btf_kflag, btf_vlen), >>                  "btt_info: kind=%u, kflag=%u, vlen=%u", >> @@ -634,6 +645,7 @@ btf_asm_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd) >>       case BTF_KIND_UNION: >>       case BTF_KIND_ENUM: >>       case BTF_KIND_DATASEC: >> +    case BTF_KIND_ENUM64: >>         dw2_asm_output_data (4, dtd->dtd_data.ctti_size, "btt_size: %uB", >>                  dtd->dtd_data.ctti_size); >>         return; >> @@ -707,13 +719,19 @@ btf_asm_sou_member (ctf_container_ref ctfc, ctf_dmdef_t * dmd) >>       } >>   } >> -/* Asm'out an enum constant following a BTF_KIND_ENUM.  */ >> +/* Asm'out an enum constant following a BTF_KIND_ENUM{,64}.  */ >>   static void >> -btf_asm_enum_const (ctf_dmdef_t * dmd) >> +btf_asm_enum_const (unsigned int size, ctf_dmdef_t * dmd) >>   { >>     dw2_asm_output_data (4, dmd->dmd_name_offset, "bte_name"); >> -  dw2_asm_output_data (4, dmd->dmd_value, "bte_value"); >> +  if (size == 4) >> +    dw2_asm_output_data (size, dmd->dmd_value, "bte_value"); >> +  else >> +    { >> +      dw2_asm_output_data (4, dmd->dmd_value & 0xffffffff, "bte_value_lo32"); >> +      dw2_asm_output_data (4, (dmd->dmd_value >> 32) & 0xffffffff, "bte_value_hi32"); >> +    } >>   } >>   /* Asm'out a function parameter description following a BTF_KIND_FUNC_PROTO.  */ >> @@ -871,7 +889,7 @@ output_asm_btf_sou_fields (ctf_container_ref ctfc, ctf_dtdef_ref dtd) >>         btf_asm_sou_member (ctfc, dmd); >>   } >> -/* Output all enumerator constants following a BTF_KIND_ENUM.  */ >> +/* Output all enumerator constants following a BTF_KIND_ENUM{,64}.  */ >>   static void >>   output_asm_btf_enum_list (ctf_container_ref ARG_UNUSED (ctfc), >> @@ -881,7 +899,7 @@ output_asm_btf_enum_list (ctf_container_ref ARG_UNUSED (ctfc), >>     for (dmd = dtd->dtd_u.dtu_members; >>          dmd != NULL; dmd = (ctf_dmdef_t *) ctf_dmd_list_next (dmd)) >> -    btf_asm_enum_const (dmd); >> +    btf_asm_enum_const (dtd->dtd_data.ctti_size, dmd); >>   } >>   /* Output all function arguments following a BTF_KIND_FUNC_PROTO.  */ >> diff --git a/gcc/ctfc.cc b/gcc/ctfc.cc >> index 9773358a475..80322eea91a 100644 >> --- a/gcc/ctfc.cc >> +++ b/gcc/ctfc.cc >> @@ -576,8 +576,8 @@ ctf_add_array (ctf_container_ref ctfc, uint32_t flag, const ctf_arinfo_t * arp, >>   } >>   ctf_id_t >> -ctf_add_enum (ctf_container_ref ctfc, uint32_t flag, const char * name, >> -          HOST_WIDE_INT size, dw_die_ref die) >> +ctf_add_enum (ctf_container_ref ctfc, uint32_t flag, >> +          const ctf_enum_binfo_t *ei, dw_die_ref die) > > The name and size information is typically being passed via explicit arguments in the other similar APIs in this functionality.  I have a slight preference towards keeping it that way when possible.  So in this API ctf_add_enum, how about just adding another function argument for signedness and getting rid of the data structure ctf_enum_binfo_t altogether. What do you think ? > Sure!, I'll send the patch v4 with this change. > Patch looks good to me otherwise. > Thanks for your comments, > Thanks > Indu > >> [...] Kind regards, guillermo