From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 0E8F83858C20 for ; Mon, 15 Jan 2024 12:08:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0E8F83858C20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0E8F83858C20 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1705320507; cv=pass; b=Cz5Cafobd0RWQXV3z0wu/OvzLQ3jQNzT0TJxJnT41QeDz4fVWbLdTF447N2v/tEvpwbasrUezsbA4P501RNIR+GPXKkf8EX7gc+SZbfhnuAcr/iyaM6oKc/nOWVu9vBiXbkdJ/zG70MS6frr1oURI8PWzAypKE/LqLuccR6+L/s= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1705320507; c=relaxed/simple; bh=ttwDQ7TQKwMdjvUoK4M36t/Wt4+DtTKp/RkQnct6IuA=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=x+FnLLSgXN327EIY/HWgQWcnkR7PjSB/mbW6X+RuZ892+Lmbp4rRby746/3ok19+ZVZIpM0FI+jy5B4LlPBgmgFbMbBM4nWMXSapE41HxAZjKUXlP1tE+rsYXMrvRP+iTiGPaoZJ0fWR9sgyi/Hz9xKlP6N47HNUbsssrBx0R34= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 40F9DtPm005096 for ; Mon, 15 Jan 2024 12:08:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=tsO2B6ZcqOpJ3mAw6eBTAQ1qMdPxh4C16+nJ1Ps40UU=; b=DJOPflX655icTgEqkxM6B0KmjQlKA0djH/etg0NXqUVE3gcSSNZNqkHe4pKHcP0JewW3 b2IxPogsaspTOx42Ix2LD0qeeONosXYP7cQmyjbpkTLV0oY3ls4SBRmnHKaVGIlBOlFH vOPR9DDhntDNB9CnkqtIh0EUaxONlqIoR5sILPv1tpYplCNxigutS8JYlt8cL5NVuZyQ EZWoRtB7R/FqhqdDDH7TGkBFUsIUhOEVL1oOp/U7ZI60ZfLfJVhpjPuXdPLJsREOdgXw W9Kw+gtl8sffiHLqDVGSuP8YH7gEgPXWZbyXWny3KebPid9iDrB1XRuYMVPj8oODFAhp ow== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3vkjjea9d2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 15 Jan 2024 12:08:20 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 40FASbWB023375 for ; Mon, 15 Jan 2024 12:08:19 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2100.outbound.protection.outlook.com [104.47.58.100]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3vkgy5x294-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 15 Jan 2024 12:08:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R3yfgdhE2BMd3B0LbTKnQZxprTw8Ri3o8kAZpMfsEfK9I3zy7LgaCQNrAfMa0WIRuoQTxCEZqXjA80dDwI3xCTTPpriOEp8jrFTvnSsx03Lzw4Z8+eNofDyDiWbMdFz71jx2sukk40F9qQZcblFFm8ncckg8N2KhciTh2D8uwXDK45HMGlmdFPyxyC1BNBebOT1W24a0aGBGkz0K/8czo5hJ9UUIqKfXxhD/pT5KPbJFEgHEYFNzTlUEvIDUEpptkQEMfP1ShQwKLXSQPJdcI/W/gon8KwDzGqQIeZWdVvVw7eKDRR6pYztdhnZPG+vvfv3TFBUZgK7RYC7L9BFKCA== 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=tsO2B6ZcqOpJ3mAw6eBTAQ1qMdPxh4C16+nJ1Ps40UU=; b=NnycN8WlwGZKrzpKzeY4hal1IWqQiPVm4R9nRnho3CjK3PIsgcOQVviROSzwnbRH62REJXAtWJTMc1nl11B9Kc4aF7LmcdhaiUtrEGl0OXtZU5ylG+MqichMpblTGhAiZlP7jHlkPtUcOOUA5+S/q6FXTKxGbqTb2PY/fhVwXMPtANyHF0okxcs9PSF1eI0IJfwkRLKfZ+ggkO7MMyeJ/jwmA2Xhr/djYPNbBA06fKdCGhyLblsGQ4jkDGDflNuv7swaA91cZxVuHj3LC8f8RpiuqRF7RcSBemdBfAvbOz6A000QsI+E69gk3gx9ca3n3hikPjHl747JavxHzqv/dw== 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=tsO2B6ZcqOpJ3mAw6eBTAQ1qMdPxh4C16+nJ1Ps40UU=; b=ahwE30HAVtPO1UqZtFjuo7xUAg2ZFGNYyAzdDi9LPWHXC3x1vNwpZSPJusPMqpO7xLVEO9ONdp3jdb58C1mVlYOuhHAtOJ0O+hSTptCEA/FQdLh1U2wUXx5h3Hh0Lfggu8S2f05MAQjAzGFwc3aOnGGJ+qp5SHHHxmpXYZ7JwG8= Received: from MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by SA3PR10MB7094.namprd10.prod.outlook.com (2603:10b6:806:31b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.23; Mon, 15 Jan 2024 12:08:12 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::fde7:fb92:8ea1:a5ac]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::fde7:fb92:8ea1:a5ac%4]) with mapi id 15.20.7181.026; Mon, 15 Jan 2024 12:08:12 +0000 From: Indu Bhagat To: binutils@sourceware.org Cc: Indu Bhagat Subject: [COMMITTED 07/15] gas: add new command line option --scfi=experimental Date: Mon, 15 Jan 2024 04:07:21 -0800 Message-ID: <20240115120729.29771-8-indu.bhagat@oracle.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240115120729.29771-1-indu.bhagat@oracle.com> References: <20240115120729.29771-1-indu.bhagat@oracle.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MW4PR04CA0291.namprd04.prod.outlook.com (2603:10b6:303:89::26) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR1001MB2158:EE_|SA3PR10MB7094:EE_ X-MS-Office365-Filtering-Correlation-Id: 81adb6fa-02fe-446b-6d41-08dc15c2a528 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kvPZ6jRzBTYHo0Q6F+8QGxzzjOCKIi9uWTV2ERUmBEu6ZfV3ydioo3v/vO251YWZ9Ifakha/u7J4NDTxBRuu9m+5Jzf9JNJAAXwV3LRopxhyLyKBq59j7g81MhpKNePaFI1ki6Hxb/N2/4XOxJMlmyKX74PUDsV0f2BTIhm2kFYQlbvh1B87UqH2cumL+4ox29FOcipV+Qer1dUBbfgGgPlrL1bz83YLWJ21ZDkybTpxUeJqw0ORqIG395ozna6b3Jlw+cANc/nkJw0h5Kepd7Z/rmnNZtzTePIoEg5ayUle/llNEiwc/k1sQtPQOlArKfqq/T29ut2IwpDhc18h+sfT4gRGqi8SjfNgr2qY0TOAmZK0fegW3xPbqZRjL+y2thiDYDAcP1PeAysc1LEFw7v6n/29EGruoKsWi7FUyyuLUJt3KKNMQptf565NOoBXceNybKP0TF7yIUClKcLzcWyxZ4pwwV1sWHVqM9w3BJAtjkuxWnxoYfQUoau5aqZlKnUTBZ1BAWjC/SJG6xpBvh9bQevpjitNn+CxzfdXkdsEyrxrVIGLsE5BJy89VnsSyFT2h6ja/ErI/Wl6G2F9dCoFBC4rXp126mOuoaoD6o9qYowtMMjFrkE8gIle2ZzT X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR1001MB2158.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(366004)(39860400002)(136003)(396003)(346002)(230922051799003)(230173577357003)(230273577357003)(1800799012)(186009)(451199024)(64100799003)(8936002)(5660300002)(44832011)(2906002)(6512007)(38100700002)(316002)(4326008)(8676002)(86362001)(66556008)(66476007)(66946007)(6916009)(6506007)(478600001)(6486002)(6666004)(66899024)(36756003)(1076003)(2616005)(83380400001)(41300700001)(107886003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EKF3iWnzOrNGSCvac+OpLOpRNcCMlrtfNks/APATInSBlfnf0gnYbeAt3Kt/?= =?us-ascii?Q?qTj/eurdpi8+Wi5vDaLabbht8hT7aA2X8pT5lTnM9caAFuehTLvvdXzXj4dA?= =?us-ascii?Q?HCk7Me+Gv2PTZRh2LKa3FtTZ1unG43Hpp7/9z8EaO08emnpgL9BJ4CAWOznS?= =?us-ascii?Q?cbmo3I/OH8+5MdPK4NfuDUKBzIt9OoH3MZQ+/Br7DFJjaL+5CZjDv7zFD5kE?= =?us-ascii?Q?Jrprk3bFaY/HPdN72QClcTxXGKRLoTQa+MraHG42H1DccMIlgrcMjHtymlLc?= =?us-ascii?Q?+YHc2L8CGRRDZooWJAbeyef/UiK8ZONN4uBdQ9WjPErq/EJ4vHvmG2XDpATh?= =?us-ascii?Q?/k5Voe6DsjNT/Eten/vhnJj9EnJ26yyte6dikEe1cNWgUizyEm0YW0+p4FWT?= =?us-ascii?Q?6JFDPw7feLKCL9LgIAcI5LHrsKRSchCJlKeUOf5UwxCRlNIZnExvDORxi4nd?= =?us-ascii?Q?PRyiwxTLXUVZyq9sFkrd1Bi3ORyWflZwqCjy8yVqJC7Ic9yL/BNwYR6294Ml?= =?us-ascii?Q?nj8VDFyI1B59jIKtruHEZwM3Kx0TKXBUOSWTtitME4dwXcfupTx5zOrBg+xj?= =?us-ascii?Q?d9rGIfieABIiEtVAtp41tLUpLlUR3mU3ENFiX+ix0OF/l/ND+5zbXpS7OLDU?= =?us-ascii?Q?JiCkAgio7/8jKj4YIn1fb4Jf6dY2DUJ9b6zaEoquV9ekeHc4r+1ozUaIlYW+?= =?us-ascii?Q?OV3PoG1/lFkr4es4JkGNgvQubF/uppiZIpn/WWkq+S+lIo7urE/RJ0xZOKb1?= =?us-ascii?Q?VDdhIATTQshiHwEbKUdy7nbneeTKtmze9cQEhuvAVHSp40w+Frb27X/EiW8M?= =?us-ascii?Q?2Qhet6sO9QokZcFNC2UUkKCBTys0FSBtD/QpUsEIm29kqyDhRGByFso9J5ST?= =?us-ascii?Q?hNCPp46my32Ab+fJMoI88g7Pyya58St7ZRPBpZjQE/6XBfum+MWon/ArY+xj?= =?us-ascii?Q?UNf0h51Mlyn2K55zkLzl7uj1DhplddAzLXwTnGlKAuXTGDZot+LaF7rFeaoy?= =?us-ascii?Q?RQlWaRGHnVmVYq4ljlQPUcm0txzhWecQidQkH8KePoDshq7aPoAXTl6U+uAX?= =?us-ascii?Q?JxzvCSOlqAiKcQGD61cott3Ziv4RVzGno0q3UFuNQsJtSGEr7XlOy1RnMted?= =?us-ascii?Q?fO8Sg+4k+kjnsDUmwnh+BiLHKyEhRoD6Wn6diwzxzA2ceXl4PN9OgB8f0PwK?= =?us-ascii?Q?Lubkn3BBF1ML6C39LKr1r2iWZ7+bXmsc3j9m8XPrqQ8ULfsUKgXHlFPZ1yqw?= =?us-ascii?Q?ymXuapy0m0eorcsCfxpccJYC9RtxASqoao0EeOHFuTESGVx2mTzX/ZvHvpkZ?= =?us-ascii?Q?o4NDGOExZKfeFUc/r8aK9gersYbVd69S6GfBVrl0X9LIXmDXCICMAxqco5lJ?= =?us-ascii?Q?3Vik6tEbNeTqk/JO4o2uxy7xeNAA48CYgTlAYL3t39a0dDLwHtNHu9/6Fsb6?= =?us-ascii?Q?RObZF2CE8Uprcv4q49jl+MTeQa74vrfvUQcM2LSNNH6aB+woqjBe+L9urrD9?= =?us-ascii?Q?lfmxPsWAV31duZJ1inmtC3lE1srp8VuMI+EV3RG+G4eCi5M0YYbhxQn8fZFo?= =?us-ascii?Q?hesMXCXcpsUMlIyJDMlOe2okgaOiUbnlSsKtqF/CKcSY890khzEfkaS855Cd?= =?us-ascii?Q?b7X/sQz+m6LM9fg11F8Qt30=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: j460XLw+wNCINGhzTzeCEOPbJVCJcGErdkN7+GuZew6KfmHy3T+4ylDEcUhk9TOYaCt3/9Ycf0UOlJ/QVje7XWUO3uDFrYh/CjtAXwWbFfiVWLpxqw+slDP98u4v/bQwbvVpisiG2JAecZIr41p7MJZ3cbw0ahSmiwlAJWnumroFeoTy/P0ctN1bi4JQJCrkNBBHSaEm1Cf0qLK64jghy3graUDEVVPDyVdsXy/BwaPZItYPKOca1mqRN7wvKLVf2nM9KGimUVkOWG0aUNvL7Kdh0lXOW5nJQcWTPizyrlNcZvL1KbhvuR7SX1Vvg+jckK2NPjwIhhx1Tl4nOGXtZP08sapXqwYTL7X5/S5j7rLqQvdWTowVHcElMOf9Fz4/TqH19Pzd6sW6olOn+9cs0dKdzwVsTgkhQ5r2DM3adfXaBE819V2Hnvv0c8MYJW/18k9lzexo74ZCkFeQGTYXB4UYiMhbMr2l8a7lWvA7QCSeEDyrUxbrQIGtukIdf6cn8sOwDYuDBryjAwA4+GJIno7hOnOcmGQbhzt5M2qeQ0Ucd4W0oWKQE37Xg9S4EdxQ1LSzc3Gaxhx0mAXouIJRgoe8XHULr8pCeRQ5fZtubkU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 81adb6fa-02fe-446b-6d41-08dc15c2a528 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2024 12:08:12.0302 (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: F91ftQEy1gWPKsikoSEJaRjKN4IKdvWjUkqL4YVRvhSMioLDtJEYbVLqNy21dGtvJG10EbtA+BfYzQ+slMCsrA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR10MB7094 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-01-15_06,2024-01-15_03,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 mlxlogscore=999 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2401150087 X-Proofpoint-ORIG-GUID: ISRwBs0qIt2p4TZv4OXeXBzq9kmTSBpG X-Proofpoint-GUID: ISRwBs0qIt2p4TZv4OXeXBzq9kmTSBpG X-Spam-Status: No, score=-13.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,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: When the command line option --scfi=experimenta is passed to the GNU assembler, it will synthesize DWARF call frame information (CFI) for the input assembly. The option --scfi=experimental will also ignore most of the existing .cfi_* directives, if already contained in the provided input file. Only the following CFI directives will not be ignored: - .cfi_sections, - .cfi_label, - .cfi_signal_frame To use SCFI, a target will need to: - define TARGET_USE_SCFI and TARGET_USE_GINSN, and other necessary definitions, - provide means to help GAS understand the target specific instruction semantics by creating ginsns. The upcoming support for SCFI is inteded to be experimental, hence the option --scfi=experimental. The --scfi= may see more options like --scfi=[all,none] added in future, once the SCFI support in GAS is mature and robust. The offering may also see for example, an --scfi=inline option for dealing with inline asm may be added in the future. In --scfi=inline option, the GNU assembler may consume (and not ignore) the compiler generated CFI for the code surrounding the inline asm. Also document the option. gas/ * as.c (show_usage): Add support for --scfi=experimental. (parse_args): Likewise. * as.h (enum synth_cfi_type): Define new type. * doc/as.texi: Document the new option. --- gas/as.c | 23 +++++++++++++++++++++-- gas/as.h | 8 ++++++++ gas/doc/as.texi | 15 +++++++++++++++ 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/gas/as.c b/gas/as.c index b83f0c618be..659da188da5 100644 --- a/gas/as.c +++ b/gas/as.c @@ -321,6 +321,11 @@ Options:\n\ generate GNU Build notes if none are present in the input\n")); fprintf (stream, _("\ --gsframe generate SFrame stack trace information\n")); +# if defined (TARGET_USE_SCFI) && defined (TARGET_USE_GINSN) + fprintf (stream, _("\ + --scfi=experimental Synthesize DWARF CFI for hand-written asm\n\ + (experimental support)\n")); +# endif #endif /* OBJ_ELF */ fprintf (stream, _("\ @@ -511,7 +516,8 @@ parse_args (int * pargc, char *** pargv) OPTION_NOCOMPRESS_DEBUG, OPTION_NO_PAD_SECTIONS, OPTION_MULTIBYTE_HANDLING, /* = STD_BASE + 40 */ - OPTION_SFRAME + OPTION_SFRAME, + OPTION_SCFI /* When you add options here, check that they do not collide with OPTION_MD_BASE. See as.h. */ }; @@ -543,7 +549,10 @@ parse_args (int * pargc, char *** pargv) ,{"sectname-subst", no_argument, NULL, OPTION_SECTNAME_SUBST} ,{"generate-missing-build-notes", required_argument, NULL, OPTION_ELF_BUILD_NOTES} ,{"gsframe", no_argument, NULL, OPTION_SFRAME} -#endif +# if defined (TARGET_USE_SCFI) && defined (TARGET_USE_GINSN) + ,{"scfi", required_argument, NULL, OPTION_SCFI} +# endif +#endif /* OBJ_ELF || OBJ_MAYBE_ELF. */ ,{"fatal-warnings", no_argument, NULL, OPTION_WARN_FATAL} ,{"gdwarf-2", no_argument, NULL, OPTION_GDWARF_2} ,{"gdwarf-3", no_argument, NULL, OPTION_GDWARF_3} @@ -982,6 +991,16 @@ This program has absolutely no warranty.\n")); flag_execstack = 0; break; +# if defined (TARGET_USE_SCFI) && defined (TARGET_USE_GINSN) + case OPTION_SCFI: + if (optarg && strcasecmp (optarg, "experimental") == 0) + flag_synth_cfi = SYNTH_CFI_EXPERIMENTAL; + else + as_fatal (_("Invalid --scfi= option: `%s'; suggested option: experimental"), + optarg); + break; +# endif + case OPTION_SIZE_CHECK: if (strcasecmp (optarg, "error") == 0) flag_allow_nonconst_size = false; diff --git a/gas/as.h b/gas/as.h index 1297e3dae41..69d7ae2cd17 100644 --- a/gas/as.h +++ b/gas/as.h @@ -324,6 +324,14 @@ COMMON int flag_fatal_warnings; /* --fatal-warnings */ are detected. */ COMMON unsigned char flag_always_generate_output; /* -Z */ +enum synth_cfi_type +{ + SYNTH_CFI_NONE = 0, + SYNTH_CFI_EXPERIMENTAL, +}; + +COMMON enum synth_cfi_type flag_synth_cfi; + /* This is true if the assembler should output time and space usage. */ COMMON unsigned char flag_print_statistics; diff --git a/gas/doc/as.texi b/gas/doc/as.texi index 7526b221a36..370f40fcbae 100644 --- a/gas/doc/as.texi +++ b/gas/doc/as.texi @@ -255,6 +255,7 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}. [@b{--multibyte-handling=[allow|warn|warn-sym-only]}] [@b{--no-pad-sections}] [@b{-o} @var{objfile}] [@b{-R}] + [@b{--scfi=experimental}] [@b{--sectname-subst}] [@b{--size-check=[error|warning]}] [@b{--statistics}] @@ -932,6 +933,20 @@ Ignored. Supported for compatibility with tools that apss the same option to both the assembler and the linker. @ifset ELF +@item --scfi=experimental +This option controls whether the assembler should synthesize CFI for +hand-written input. If the input already contains some synthesizable CFI +directives, the assembler ignores them and emits a warning. Note that +@code{--scfi=experimental} is not intended to be used for compiler-generated +code, including inline assembly. This experimental support is work in +progress. Only System V AMD64 ABI is supported. + +Each input function in assembly must begin with the @code{.type} directive, and +should ideally be closed off using a @code{.size} directive. When using SCFI, +each @code{.type} directive prompts GAS to start a new FDE (a.k.a., Function +Descriptor Entry). This implies that with each @code{.type} directive, a +previous block of instructions, if any, is finalised as a distinct FDE. + @item --sectname-subst Honor substitution sequences in section names. @ifclear man -- 2.41.0