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 876263858D32 for ; Thu, 26 Oct 2023 19:13:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 876263858D32 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 876263858D32 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=1698347631; cv=pass; b=xNWh0jJWmtSKLI8I1XDtl7wwJ8wjOeKHwwWZyVOmotj7Hs/3WVcfyx6oc7CDSx6JQRajfX0iOXKGsUiGovhBT78zx5ZZrnPVB3yHnFuRzoRHKzPMbtXav16/TFtgYoVYu26I0JK+QsAGRWWHLkg0QCe8byuChcx6cRjyrdpBr80= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1698347631; c=relaxed/simple; bh=A1+5v+LQ0Y+JqbpBnErL/iLQYbBdkQYxtzppE1q9mLA=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=mAVkfv2PvDlbJU5NHi4tKur2X0rppKA8WvOIUqkcUOey+zDWhNWREats464uIA3qfZOE9FD2eHJLOkMQhYq/AZnF5H2rajAF2KFEIx7QvI45K0Bx26nay4Sj1tZUnfso1mN9m6v59DH6X3vd9NqYSFlQiMFllgUTmmk2k4QhPUw= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 39QJB9O6019522 for ; Thu, 26 Oct 2023 19:13:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=PCmtJwzr/XWEemCNOaChtuKp2UpAdIQuABZqovQW2uo=; b=KgpcD6jVzabFW/qFvOrZq55BWmpQG0sooqFp06QSShmXufks6DlL7jmW2KcFJ8XrTRT6 s6pkJcAntyt0EuFuSAmWzDbwYKDzX7KbJsrpQBb3UneksjfWBWa77aXXFgTyts7W0rQi qPq9eKsw3e3jxWDRsjedFyMiuzfH93M6QKdtTtBh+Omo8FChbOi1lDDR6+9Yr9o2RBgx 9vRPmrLwAgvN+YfQQyEz2fvz4FOA5XscshLRUSALnG9KYdf+JRe7UxebP/p17MPBuwiG uUCz9UBX3LU//Azuw7p7lELrhBC98EWPsWFzaAp55ekQ6BXUYz9S+2s4mT6pTVialbWc cA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3tyx21807u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 26 Oct 2023 19:13:46 +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 39QImpsL020061 for ; Thu, 26 Oct 2023 19:13:46 GMT Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2041.outbound.protection.outlook.com [104.47.57.41]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3tywqj905a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 26 Oct 2023 19:13:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mBN+NaxbIFS0+4uRcsdjKRtIxN03CeU9zw3fgWVNx7WI/m9vHRQaIB+57lJh8/VZpPghynapWS6iXJF0SgKMStpRmrFRUCaYQM1Fcx2rvq5M55ORVcDA2iTTqj8HyNgJwMFWsevQo2RMDcoYDtfg5fnKpRstwfzPWJgPZ+NP8F6juEs6Bpj21byOD9/V0pM+cOloaR3MZBDgWtMRM9/966qSR9RKipIFi7UgFt5Zl7ZhBmc7AYKSoFZ5qwlEiYMR1LUZo4UBUt6KO6CSKTEWhnz6w3WZxmyaYcdd/Hl5VuTcU45IdNmyN3LFmjklh6Q/gDcpmygxJwBv7elc8ydYjg== 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=PCmtJwzr/XWEemCNOaChtuKp2UpAdIQuABZqovQW2uo=; b=KEdzCRFwmYlahH6GKCbfwJol3qNLIGb3uTWk6hSDgG8jdXoPDrgRZdxpbOCPHgM64dR+5h6JCC9hYvaTReJCPaFlCDBVjCvu9wQSiNUg6dbWvV9VbZaB/KCGmhAqUoiYTDTesR7GefNEDTTDP6+wCfnHCehxHiDfXx41QsHPhsZ6Zc4Dt3NHpJadt2EAXAyUctN9qqWQqnIg9VQ+lUCnCVx2+GeETf5aXnFGe1IRZQhDcu7/fgnhihimzRbtEtlHNt+xZ0UahPxAFTJ61SjXtPWUhdxVWxK3iuLs9sXkRDg0H4iBdzWOvbVi6H3LW3vt3rCCOYkRq2er/uFVpRb+pg== 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=PCmtJwzr/XWEemCNOaChtuKp2UpAdIQuABZqovQW2uo=; b=ZpwAaYiaHXUu3gs3+HDro15jnv0UJWz656nvOR0j+yeIst0tRl/v/LDnQs+lCFtc16iq77AFiW9CVFdJQJlPsxYGygZn7YKnP/cdZHQaShwkEZJL3ItKqY5TJqcYsRNRzz3zatX5uQ4K6WHIpWzAcXSjkgFgxYs0edrbIOyawag= Received: from MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by IA1PR10MB6899.namprd10.prod.outlook.com (2603:10b6:208:421::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.33; Thu, 26 Oct 2023 19:13:43 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::7f02:c28d:9802:20fd]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::7f02:c28d:9802:20fd%3]) with mapi id 15.20.6933.019; Thu, 26 Oct 2023 19:13:43 +0000 From: Indu Bhagat To: binutils@sourceware.org Cc: Indu Bhagat Subject: [PATCH,V1 0/9] Synthesize CFI for hand-written asm Date: Thu, 26 Oct 2023 12:13:28 -0700 Message-ID: <20231026191337.3872149-1-indu.bhagat@oracle.com> X-Mailer: git-send-email 2.41.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MW2PR16CA0007.namprd16.prod.outlook.com (2603:10b6:907::20) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR1001MB2158:EE_|IA1PR10MB6899:EE_ X-MS-Office365-Filtering-Correlation-Id: 6cba2b2c-95d0-4dc1-3345-08dbd657ab77 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LwYIpBzHA6xnz6AE8p4fd0aeQ1UHMEUilX6ClNwp7t51z7XsnljF8Tfz4+oQgxVQjEzqHoW+SJ3pavcqu34vghedWmVPnze3j5rHHOylOOAdIf+eYXvSNB+jS/6yvXEMJsv0q0R1j5oP1/9/pVx2EfaBnjQy58USK6KzjJZKaxbqK6SPT5+8e8pYoIlGMFxlBLqOHEposThp5oxmP3j2EnTCgiEGyFC+7h2pdwn2ezGMBh4GWsoQ7BJX4CxCsnbEEvU9MhY1oFXwCPvihPHiMJDi5uHgy3d8ReGAJMR+424SAt7M4JkyYPWdncSc3xx3mH7386rz/rAnCyWCJjSfVWvhG/Dzu+HI5G00kAmNnne87ujGZDDqvw68ZM8Tz8K84C3CO3PfQzT5JuRUysuCN+N83UYeDZjoLOwjv1sDpYuSxTOXDABVVOH/a8f5+kqGbKqU53GpN41zZJRRzQ/wlkvWK7Fl7TYlUHD3GJb2mtSnVsxpT3P+XQhkMiFImaIecs7oGFYHo+7UcTIEGaKus19t0ugREKx+Qf3B/+gw3PY= 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)(39860400002)(376002)(136003)(366004)(346002)(396003)(230922051799003)(64100799003)(1800799009)(451199024)(186009)(2616005)(66476007)(66556008)(107886003)(1076003)(83380400001)(41300700001)(6506007)(6916009)(316002)(5660300002)(6512007)(478600001)(6666004)(86362001)(66946007)(6486002)(38100700002)(2906002)(36756003)(30864003)(8936002)(4326008)(44832011)(8676002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YLZcq8zx/+i8c5MQN/FdLg47pv560ZMojHAihriqIH6rE77glfY03hpZUnPi?= =?us-ascii?Q?jL0/KfulqqRvqTJc3SrRTf3qqSXfdo8acXK/1XfmKQRQ4Fngk7MDYlaBG8yD?= =?us-ascii?Q?A+0BtcEh3J5go3vwoy7lhps6LnHQliQwVRCM+dgsl4ULhe5bwaK4fHHERZG3?= =?us-ascii?Q?ynM2e/Omecgj3QHH9tu8WCHLWMzZWAN1RbeRDym8N2J9VMg7QtWzpR7E12zX?= =?us-ascii?Q?cv9XuOsFVrI9CHX6OVyE273viDnMSBtGaaTs71Nv/RNEFxCIv7qY7Dq4Z3qY?= =?us-ascii?Q?mfjoBC9iSwIRLwZyU7dTIxIeC6hv9FWFbx40oZawii/J+PkNEjuKVnJKt8f/?= =?us-ascii?Q?fyw3tFRYonumPYuZY03r/aIFQZOQ1vPZtlctOK+hanW69ZH8YyjY1hjHYXpq?= =?us-ascii?Q?ePLTJVHOFDgeVb5ODchjRFGp3tN9AxVswPxyt7ZuHksZLpfphCg3ElXej+4Y?= =?us-ascii?Q?mnWHhUgrpjUPYjBk2pzQbOjluzaeDrBUx13ymsld2/MXysHbnnYy9pI9qEz3?= =?us-ascii?Q?yaccsX+kwjCm58NorfgX38M9LLVcD+28vjQ+JMu546+rm/7f94UfA2qik6dW?= =?us-ascii?Q?BY5qdamvH6zJLWVjfaMXybd4YlLijidDyVUh/MpRmeOe+r3l49JA63+xiAVY?= =?us-ascii?Q?ziKBE0NLqqutwehsPcsImPhSnP9txxzw8nRl1dGPOaPH+/n00I1eMPKQIeED?= =?us-ascii?Q?X/iIk/Da/unGawqyY1ctB011egli7PfpsBQNDXx08ajglzsicK3qebJVd6V9?= =?us-ascii?Q?dJWTxKzdPSE15XzboTsOQqYvCedt/ThPsJz044OMv7stCQs9qPPRT7EMXqye?= =?us-ascii?Q?GQCaeg6vrk6snqdrCpBvS1O1tOYOR8oSq3HhIj+Gwzdmolp8j92hm4oLBd8t?= =?us-ascii?Q?pdt72HNRxkIK6oR4xHhh7cuz7bZg/rA7mL7QHV5F/V9IhzueVPBP3NFjsr5+?= =?us-ascii?Q?fr5j8AeqtfVPiuxfQZUNVqvPqf6dZwckB6kf6BQ1EdiJzClBBttKrv0mCgYi?= =?us-ascii?Q?OEFqYDPAr4TPgNuiFrdkIEDWIkmW2GG8qCGrqSqZI8E5JkVXMGTZt8nEwhKh?= =?us-ascii?Q?rbCUhZr7OC+71RTRUha1Ns+dfI0WRhBgKpg9wzDsWR8d1hN0gdMCZR9SnrG2?= =?us-ascii?Q?isnH8Z3w/haX5CJt+MCVp1Ib/JOJz45nQZUpIyQ8PSUDhZz8vAeF/Ymdw2Xl?= =?us-ascii?Q?Vr10KsmL30ibAeOth0Xt1cnt3NyqAILMvL6F114Aha2qxr0TO2K1UGds5pyx?= =?us-ascii?Q?qNOw+YZuIcOI9HE/+yEhdiGFuMVB4mJQAspHYBT4fqw7s25PQVJfJyI4Dlga?= =?us-ascii?Q?qqEaqK6uOepNoiaUKXwQoukCwxFSJLwImwRpbaYeI27MCL3FKKMjNDdysBe+?= =?us-ascii?Q?KuEc5+d8zgLqF4Qp0eFW4N5P/yU5RgT2/pjVMrVtR2wgGXrQoCm3WMnqumvQ?= =?us-ascii?Q?VTqQFd0Q4vWTpG8VtlRbAe3Z1UdwSPBGvZVeGQP4Sq3K7cWi4wTt51clFGkF?= =?us-ascii?Q?cV2LKHLGteSgcEe3DwX3g4AH0nM5c+sbw+DIb/SCihiAMlCNTHKAhrtwvo32?= =?us-ascii?Q?eds6OHMadVCPF5MbD7XiKlD4lo3QZAj/S8fI9yqsc0wY8Sa0/Ji8VOwmBUUS?= =?us-ascii?Q?xqcqrLuiHG97c/2VFQt/E0c=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: eRLM5Vn9c80ERQIHop2dvZqYgzV+Qs/6/t4dAJCHIYRZYQSRGrdRRqSPsoY86eqY8vQZd1WZMjMyuzGq7QXKbD7l+fW8OJubHAgAb7DBHNVIuC23jWI2eO4xMuyUR60zoMcnnucCns/tV2EyTBALE7T2MqVhxCRGk3SCkXpRvJwjKx4rADk9dlh8W5goifEKqOvY/PMFYkkFlCY1QckHHDT13CM2PswSl+xoTkF52SUwYJSTOOKisAVxZ5eyJ2VCHFUunTPPRAx93ASDmz7qjdMoFit1+j3P97CJBGTmuH5VrX1B6CmHEFdbcDMYPo1ubSpVWEKBc3SxVG9tcHpdXCK3kS6ZKn4oENgaB1ktbq+rsH0SnOPBvzHtKgTsFXYKJX/jAe3wsIyKyEJT7Jno2L+vasgqIaPs/j45o9lBIy8+FMi9kQG8jrPLVbFp5aaovpix+TrQoaPbcZ7VtakAQJuj5domu+Q1+hirL3CTlzCg5tEFuzXiiadMFoeQZAWMJP5Kw9i5yfuJLEGgiVOsQqbhBRLEiMtdYRC4bYHhmOVwnobnfCn04SFfvDrnzyMLbNC7IfUC9h2swIrnPr6reJazwKOhR1Q+atnYEafWIsxV0uRh2s2+n4nFAd9XvQhizbwTcdk7ATGn5DMhqZ3bQLIh3yV8TB3JnBqe7Vt1z0ugYxO9scnioBeK3Bh+415F8luccp04tvYbD2q3Xwyq7TD9hXQq52LCZRwXa20rBPhbR32kjJSI+ugxKzBJ4G5w3J/2hqG/zqH/zTc5SOG/hQ== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6cba2b2c-95d0-4dc1-3345-08dbd657ab77 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2023 19:13:43.2526 (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: SMI4YPNC53qmDl/PTnTdjSAbMH2q0jql87xuESIS8FMugIBM8aLtFgyY3FAABq4JmXmNcOWQTJDEQ9hQ4DEVbA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6899 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.987,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-10-26_18,2023-10-26_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxscore=0 adultscore=0 phishscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2310240000 definitions=main-2310260167 X-Proofpoint-ORIG-GUID: 6p4OiJ-T_YxZBt2rkB_ydZnTqP61GZni X-Proofpoint-GUID: 6p4OiJ-T_YxZBt2rkB_ydZnTqP61GZni X-Spam-Status: No, score=-7.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,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: Hello, This patch series adds support in GAS to synthesize CFI for hand-written asm, acronym'd as SCFI. The RFC patch series were sent earlier (https://sourceware.org/pipermail/binutils/2023-September/129560.html). I have addressed the review comments, tested the implementation further and created the V1 series here. If you prefer to try out the code etc., the implementation is also available in the branch users/ibhagat/try-scfi-v2. Each patch in this series has notes on how it has evolved since the RFC posting, but here is a brief summary: - Updated some documentation stubs. - ginsn are now emitted in the listing output by using the flag -i. - GAS now warns once per file if there are CFI directives embedded in the user input of asm. The warning message is: "Warning: --scfi=all ignores some user-specified CFI directives" - A distinct set of pseudo_typeS are now defined in scfidwgen.c to handle (i.e. ignore most of) the .cfi_* directives when --scfi is in effect. Handling of .cfi_sections is TBD. - Bug fixes and other improvements. - Beginning of a asm block is identified with a .type foo, @function. If the user does not close the block with a .size foo, .-foo, the asm block is assumed to continue until the next .type bar, @function directive. The testcases scfi-asm-marker-* should be helpful. Motivation for the patch series is to alleviate users from manually adding the CFI directives in hand-written asm. Manually adding CFI annotations to user input asm needs additional expertise; human-errors are possible and indeed occur more often than one may like. These errors, if present at the time of virtual stack unwind, lead to unfavorable outcomes: incorrect stacktraces, program state corruption etc. For synthesis of CFI to work, the user input must adhere to the ABI and the appropriate calling conventions, as GAS derives the set of callee-saved registers based on that contract. The SCFI implementation is based on some heuristics/rules, please see the patch "gas: synthesize CFI for hand-written asm" for more details. Further, at the moment, SCFI does not help in cases when the control flow graph of the input asm cannot be generated (e.g., in case of indirect jumps, jump tables). Thanks, Indu Bhagat (9): gas: dw2gencfi: minor rejig for cfi_sections_set and all_cfi_sections gas: dw2gencfi: use all_cfi_sections instead of cfi_sections gas: dw2gencfi: expose a new cfi_set_last_fde API gas: dw2gencfi: move some tc_* defines to the header file gas: add new command line option --scfi[=all,none] gas: scfidw2gen: new functionality to prepapre for SCFI gas: synthesize CFI for hand-written asm gas: testsuite: add a x86_64 testsuite for SCFI gas/NEWS: announce the new command line option gas/Makefile.am | 6 + gas/Makefile.in | 18 +- gas/NEWS | 2 + gas/as.c | 27 +- gas/as.h | 8 + gas/config/obj-elf.c | 17 + gas/config/tc-i386.c | 730 +++++++++- gas/config/tc-i386.h | 21 + gas/doc/as.texi | 12 + gas/dw2gencfi.c | 42 +- gas/dw2gencfi.h | 14 + gas/ginsn.c | 1225 ++++++++++++++++ gas/ginsn.h | 396 ++++++ gas/listing.h | 1 + gas/read.c | 21 +- gas/scfi.c | 1226 +++++++++++++++++ gas/scfi.h | 38 + gas/scfidw2gen.c | 325 +++++ gas/scfidw2gen.h | 37 + gas/subsegs.c | 1 + gas/subsegs.h | 2 + gas/symbols.c | 3 + gas/testsuite/gas/scfi/README | 19 + gas/testsuite/gas/scfi/x86_64/scfi-add-1.d | 25 + gas/testsuite/gas/scfi/x86_64/scfi-add-1.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-add-1.s | 13 + gas/testsuite/gas/scfi/x86_64/scfi-add-2.d | 36 + gas/testsuite/gas/scfi/x86_64/scfi-add-2.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-add-2.s | 48 + .../gas/scfi/x86_64/scfi-asm-marker-1.d | 28 + .../gas/scfi/x86_64/scfi-asm-marker-1.l | 3 + .../gas/scfi/x86_64/scfi-asm-marker-1.s | 27 + .../gas/scfi/x86_64/scfi-asm-marker-2.d | 24 + .../gas/scfi/x86_64/scfi-asm-marker-2.l | 3 + .../gas/scfi/x86_64/scfi-asm-marker-2.s | 11 + .../gas/scfi/x86_64/scfi-asm-marker-3.d | 31 + .../gas/scfi/x86_64/scfi-asm-marker-3.l | 2 + .../gas/scfi/x86_64/scfi-asm-marker-3.s | 38 + gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-1.d | 31 + gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-1.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-1.s | 22 + gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-2.d | 57 + gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-2.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-2.s | 49 + .../gas/scfi/x86_64/scfi-callee-saved-1.d | 40 + .../gas/scfi/x86_64/scfi-callee-saved-1.l | 2 + .../gas/scfi/x86_64/scfi-callee-saved-1.s | 26 + .../gas/scfi/x86_64/scfi-callee-saved-2.d | 41 + .../gas/scfi/x86_64/scfi-callee-saved-2.l | 2 + .../gas/scfi/x86_64/scfi-callee-saved-2.s | 42 + .../gas/scfi/x86_64/scfi-callee-saved-3.d | 42 + .../gas/scfi/x86_64/scfi-callee-saved-3.l | 3 + .../gas/scfi/x86_64/scfi-callee-saved-3.s | 40 + .../gas/scfi/x86_64/scfi-callee-saved-4.d | 40 + .../gas/scfi/x86_64/scfi-callee-saved-4.l | 3 + .../gas/scfi/x86_64/scfi-callee-saved-4.s | 55 + gas/testsuite/gas/scfi/x86_64/scfi-cfg-1.d | 36 + gas/testsuite/gas/scfi/x86_64/scfi-cfg-1.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-cfg-1.s | 47 + gas/testsuite/gas/scfi/x86_64/scfi-cfg-2.d | 28 + gas/testsuite/gas/scfi/x86_64/scfi-cfg-2.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-cfg-2.s | 21 + .../gas/scfi/x86_64/scfi-cfi-label-1.d | 37 + .../gas/scfi/x86_64/scfi-cfi-label-1.l | 2 + .../gas/scfi/x86_64/scfi-cfi-label-1.s | 19 + gas/testsuite/gas/scfi/x86_64/scfi-cofi-1.d | 5 + gas/testsuite/gas/scfi/x86_64/scfi-cofi-1.l | 3 + gas/testsuite/gas/scfi/x86_64/scfi-cofi-1.s | 23 + gas/testsuite/gas/scfi/x86_64/scfi-diag-1.l | 4 + gas/testsuite/gas/scfi/x86_64/scfi-diag-1.s | 23 + gas/testsuite/gas/scfi/x86_64/scfi-diag-2.l | 4 + gas/testsuite/gas/scfi/x86_64/scfi-diag-2.s | 28 + .../gas/scfi/x86_64/scfi-dyn-stack-1.d | 23 + .../gas/scfi/x86_64/scfi-dyn-stack-1.l | 2 + .../gas/scfi/x86_64/scfi-dyn-stack-1.s | 50 + .../gas/scfi/x86_64/scfi-fp-diag-2.l | 3 + .../gas/scfi/x86_64/scfi-fp-diag-2.s | 55 + gas/testsuite/gas/scfi/x86_64/scfi-ignore-1.d | 26 + gas/testsuite/gas/scfi/x86_64/scfi-ignore-1.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-ignore-1.s | 13 + .../gas/scfi/x86_64/scfi-indirect-mov-1.d | 51 + .../gas/scfi/x86_64/scfi-indirect-mov-1.l | 2 + .../gas/scfi/x86_64/scfi-indirect-mov-1.s | 48 + .../gas/scfi/x86_64/scfi-indirect-mov-2.d | 41 + .../gas/scfi/x86_64/scfi-indirect-mov-2.l | 2 + .../gas/scfi/x86_64/scfi-indirect-mov-2.s | 38 + .../gas/scfi/x86_64/scfi-indirect-mov-3.d | 41 + .../gas/scfi/x86_64/scfi-indirect-mov-3.l | 2 + .../gas/scfi/x86_64/scfi-indirect-mov-3.s | 38 + .../gas/scfi/x86_64/scfi-indirect-mov-4.d | 63 + .../gas/scfi/x86_64/scfi-indirect-mov-4.l | 3 + .../gas/scfi/x86_64/scfi-indirect-mov-4.s | 68 + gas/testsuite/gas/scfi/x86_64/scfi-lea-1.d | 37 + gas/testsuite/gas/scfi/x86_64/scfi-lea-1.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-lea-1.s | 40 + gas/testsuite/gas/scfi/x86_64/scfi-leave-1.d | 36 + gas/testsuite/gas/scfi/x86_64/scfi-leave-1.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-leave-1.s | 26 + gas/testsuite/gas/scfi/x86_64/scfi-pushq-1.d | 35 + gas/testsuite/gas/scfi/x86_64/scfi-pushq-1.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-pushq-1.s | 24 + .../gas/scfi/x86_64/scfi-selfalign-func-1.d | 31 + .../gas/scfi/x86_64/scfi-selfalign-func-1.l | 2 + .../gas/scfi/x86_64/scfi-selfalign-func-1.s | 36 + gas/testsuite/gas/scfi/x86_64/scfi-simple-1.d | 26 + gas/testsuite/gas/scfi/x86_64/scfi-simple-1.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-simple-1.s | 15 + gas/testsuite/gas/scfi/x86_64/scfi-simple-2.d | 30 + gas/testsuite/gas/scfi/x86_64/scfi-simple-2.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-simple-2.s | 16 + gas/testsuite/gas/scfi/x86_64/scfi-sub-1.d | 25 + gas/testsuite/gas/scfi/x86_64/scfi-sub-1.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-sub-1.s | 12 + gas/testsuite/gas/scfi/x86_64/scfi-sub-2.d | 31 + gas/testsuite/gas/scfi/x86_64/scfi-sub-2.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-sub-2.s | 29 + .../gas/scfi/x86_64/scfi-unsupported-1.l | 2 + .../gas/scfi/x86_64/scfi-unsupported-1.s | 10 + .../gas/scfi/x86_64/scfi-unsupported-2.l | 3 + .../gas/scfi/x86_64/scfi-unsupported-2.s | 14 + .../gas/scfi/x86_64/scfi-unsupported-3.l | 3 + .../gas/scfi/x86_64/scfi-unsupported-3.s | 14 + .../gas/scfi/x86_64/scfi-unsupported-4.l | 4 + .../gas/scfi/x86_64/scfi-unsupported-4.s | 23 + .../gas/scfi/x86_64/scfi-unsupported-cfg-1.l | 3 + .../gas/scfi/x86_64/scfi-unsupported-cfg-1.s | 53 + .../gas/scfi/x86_64/scfi-unsupported-drap-1.l | 4 + .../gas/scfi/x86_64/scfi-unsupported-drap-1.s | 75 + gas/testsuite/gas/scfi/x86_64/scfi-x86-64.exp | 98 ++ 129 files changed, 6575 insertions(+), 34 deletions(-) create mode 100644 gas/ginsn.c create mode 100644 gas/ginsn.h create mode 100644 gas/scfi.c create mode 100644 gas/scfi.h create mode 100644 gas/scfidw2gen.c create mode 100644 gas/scfidw2gen.h create mode 100644 gas/testsuite/gas/scfi/README create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-add-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-add-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-add-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-add-2.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-add-2.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-add-2.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-asm-marker-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-asm-marker-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-asm-marker-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-asm-marker-2.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-asm-marker-2.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-asm-marker-2.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-asm-marker-3.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-asm-marker-3.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-asm-marker-3.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-2.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-2.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-2.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-callee-saved-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-callee-saved-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-callee-saved-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-callee-saved-2.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-callee-saved-2.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-callee-saved-2.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-callee-saved-3.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-callee-saved-3.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-callee-saved-3.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-callee-saved-4.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-callee-saved-4.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-callee-saved-4.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-cfg-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-cfg-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-cfg-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-cfg-2.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-cfg-2.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-cfg-2.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-cfi-label-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-cfi-label-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-cfi-label-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-cofi-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-cofi-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-cofi-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-diag-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-diag-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-diag-2.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-diag-2.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-dyn-stack-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-dyn-stack-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-dyn-stack-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-fp-diag-2.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-fp-diag-2.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-ignore-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-ignore-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-ignore-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-indirect-mov-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-indirect-mov-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-indirect-mov-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-indirect-mov-2.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-indirect-mov-2.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-indirect-mov-2.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-indirect-mov-3.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-indirect-mov-3.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-indirect-mov-3.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-indirect-mov-4.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-indirect-mov-4.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-indirect-mov-4.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-lea-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-lea-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-lea-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-leave-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-leave-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-leave-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-pushq-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-pushq-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-pushq-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-selfalign-func-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-selfalign-func-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-selfalign-func-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-simple-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-simple-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-simple-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-simple-2.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-simple-2.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-simple-2.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-sub-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-sub-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-sub-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-sub-2.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-sub-2.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-sub-2.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-unsupported-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-unsupported-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-unsupported-2.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-unsupported-2.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-unsupported-3.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-unsupported-3.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-unsupported-4.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-unsupported-4.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-unsupported-cfg-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-unsupported-cfg-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-unsupported-drap-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-unsupported-drap-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-x86-64.exp -- 2.40.0