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 4C219385840A for ; Mon, 30 Oct 2023 16:51:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4C219385840A 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 4C219385840A Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1698684713; cv=pass; b=qW7MY9mrNm56UAXSvTBKBAZCweHouNvM97QukWwHlsnaN2lKmt/8Nfox5+guchu2o5UjDpinBYlKV25DLGTSU27tg/7JxdLE4++myKNs5u+pH4Z5JrzTs4Ki7KeU9S2Q/skFc2Bg9YKpUWaf/hki7tqbLT+3PJTmOYxSnkEqFLo= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1698684713; c=relaxed/simple; bh=JYhEjQ8dUImZ1ZliqFjvUX/ZeKUtJaaHmqRKb57NEkw=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=vujBz0sfaIo8xcSDVxkS4slJnOjDjgj5fr9Nz6R6wy8blI3XaS5r8r/jHf5jnIMe3r/+iV0+3ezGjShqGtOUjBcd/xAFu/dfmDziprqZ+zaXNM8cGLP4u0/4c53ctKKjBMUhE/VJWchL+V+Q2ey0EzBSHyHb2SKTdC/In8Qswws= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 39UDk3KK010986 for ; Mon, 30 Oct 2023 16:51:48 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=3eOlzu4eobfAx0XZgrXRWZUWZN+XFeesM1LRN/Xttzc=; b=gwlk6u+iZXn/9fbTvjHz9tL6JTSsA16ckfeQS77NCEPC3dEFPbYn5+7Kby4Y/9+/ndU5 LYUzSRA0BC6hXNYUjYYHKFTjHUsvMOxj7kaG29fhJrjHDRPWC+KaNtwpBanJF1b5JO+R sYUoLtgRLdKI/0PHs1dZGx8q2OzhUi6Tcw06nlC3Z9UoEtsikU0RRPBBgLVC1DwtsPbq PIRI20dgI1OyYQwBQKt2W8BY8Ch1fGJhY5G5jZsRzNEB6QIEGetTJmZqjbddblsb82gX VX3+ryngQijrdbC438dNfimWsBO9f4MYzNXl5sH+ruW6dM2p8ofNzvJz1b+Ot2YpKZ3l pA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3u0s7bu8uq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 30 Oct 2023 16:51:47 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 39UFbTMX022527 for ; Mon, 30 Oct 2023 16:51:46 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3u0rr4hgqw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 30 Oct 2023 16:51:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NHjwLIEL/Zl6JR6IW3e9ANvvJZi8cf0oDhMwX29tQ4BIDusRfOPrSgol3u2G7iMtvVyzjvnY2H03FXo8iMQrnX9gq0MFbBsNTA2kCGRudFblzNpTe584P86gYiN9z0OENrOY5DL9FoAC8+Jn/UEs4pykPipB39giYMGurE1Sp5bgVZKFPrV1iEVP8m4WrfBXbO+vVh+6L/cirgFvQjgF6uLFIM0ft1cBsN59t2il8OddnbrXk9nbpvCWHQQ1dJDlpthkGHG4UDheDTE/QnqVNb8GX4awcZiGc4sTJ3H9i7o2Dc2o9ROLfBx5ewdji6uCz+Kx7gdiy2chd1uS+rFa2A== 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=3eOlzu4eobfAx0XZgrXRWZUWZN+XFeesM1LRN/Xttzc=; b=Lt5TVXANCw452BOc8Lwrd88gpIS4ux0J5UwqbP2Y8BEMSqN+84s41zBBxhZS4b7WXlmWZqQiOURdDT7/BHzBGe4DerH7gMAG7Vmgy2p80G8t60YRS64sEK2XMIlSQjRrm7cKlHwJa1kfu9ygW26uK8dO/yNHR6wt+s5qJReHmSKCT3loyWDk3UiwQn2pCuOYbVd+Hvh5EAG7byQINpuYiDd4gtppulWfb41wRufic8DW/zGI1oNBqGKTG0D0CJh9EFogYKmG3DNCvxdgXoAZREMq+k6wTR1+ucWhZFUNfM0hvjKquZFrd1KEikVdfOTPEUEi75ALm1JPU6rfPYuTqg== 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=3eOlzu4eobfAx0XZgrXRWZUWZN+XFeesM1LRN/Xttzc=; b=sjLkfSW310b+YZLqXa/mvPmNG5hKaqxAn+mgcs6YGu8dbIYLrBgyhTxqe2zYCufjddS/dWwcH6QfaODrkPCFxY4qNNxd7lSahuQHs4jq+rG9G4U8fhaAGxn8jw6/vc1mgEWDnWPqxL2tNRqu3nnxhxbqb2waOm/sJn1tSZwf1xg= Received: from MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by IA0PR10MB6818.namprd10.prod.outlook.com (2603:10b6:208:439::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.19; Mon, 30 Oct 2023 16:51:44 +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; Mon, 30 Oct 2023 16:51:44 +0000 From: Indu Bhagat To: binutils@sourceware.org Cc: Indu Bhagat Subject: [PATCH, V2 00/10] Synthesize CFI for hand-written asm Date: Mon, 30 Oct 2023 09:51:27 -0700 Message-ID: <20231030165137.2570939-1-indu.bhagat@oracle.com> X-Mailer: git-send-email 2.41.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MW4PR03CA0272.namprd03.prod.outlook.com (2603:10b6:303:b5::7) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR1001MB2158:EE_|IA0PR10MB6818:EE_ X-MS-Office365-Filtering-Correlation-Id: c728b487-9ac2-43a4-2b49-08dbd9687f44 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2poIAdwROp7Xrq6/EJqZfhqIOZocHnpXuv31d7SVWRkMHwbqKh2uM/l+RtrbqDUCPq0B9sxB4WkE9AArpt2WdNbs88HLEceN5HTIPONt50gjX7Jd+cv0pZHAaf5dBrLV3cglRb3eihWc2rVap3FuZduaTnxApZzHaVCCpaPa6xlUQ1LLCKsdBtrm3VoMX/e1pRd2a+634QMFT3wlGQdP7k0SiTPBccM2I9po1Ollu99p/BjjjgOkvS1WbPNPfj0ll7g2pNzV+pyDSD1eDzEo+uHfoKzbsknaVPqarBNhdYTNS3YqQ3czyRB30JVaIjHbZXIjOS3qqhtJW1NCpfu9biC0VQ35UpaJRE9+sn7VmYSXByKT+syr6eHd2LteQQu2LFU8t6E1k3U0qzTis4qnD5RcAQFV+OWJ/aGqbvMXCpL1Uj6MkgV5XLP7tPXxKoh+cSoCih+ov8pYrE6OxYuGFAjgEypEnm/Ggy9c7IUhZTWSIiPoEy+Sn3rHx9fIKdEAja3fo1GZie6bB1upHM7+PR1XQNi2sPkc79w/Vqn9tEwvNIIRUToZ26hAM5eztWgD3/78quSRv/yujeK8Q81Vy6fOXqvTuZVVAZrp7egv89Vdau7xzkKcxeASDcaCN2KCzv6ZolAzdNXUmVFYy1qR3g== 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)(346002)(396003)(136003)(366004)(376002)(39860400002)(230273577357003)(230922051799003)(230173577357003)(451199024)(186009)(1800799009)(64100799003)(83380400001)(8676002)(4326008)(8936002)(38100700002)(86362001)(30864003)(2906002)(36756003)(44832011)(41300700001)(6512007)(6666004)(5660300002)(478600001)(6486002)(2616005)(316002)(6916009)(1076003)(66476007)(107886003)(66556008)(66946007)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mMimwCr7QaLXZ6EFymlLq5P7tW+mCkzmy4YiK93F8dZmOPLM3MMn6CRDMYdR?= =?us-ascii?Q?tMwLKGtJsyNh1aWkde/I35+D/1bjm76wVGezEoGGoRFzB4952HdTRGHmLkJP?= =?us-ascii?Q?IW/yw4g09jDvN+CQosqTxPpzSK6JnbilcO9z/EGTjVqKkhlQn2M1uj7EKedg?= =?us-ascii?Q?2civijqPgXOjNwLVnvFKh/waiYblbLJ7ryWrxD8ZUzF6LD68l5Vh1lTwHw50?= =?us-ascii?Q?v+C7AMC7/0ifBTo3tyuvmn2MDwOtX/K89QAzlPhskyVCW/qz4lXuG3YudpAP?= =?us-ascii?Q?sx3loOoaEXIO0sK8D51Io7HCtKwq3oi7YQ6QYs9SvaZ4ouKPsMaObTDrumNM?= =?us-ascii?Q?tDWOsZh6KB1rxYRheHI2fU0vg0jryJ22Scs9/40nKmjSdhaRFwYVPfuDUs5W?= =?us-ascii?Q?pYzOegrl2kZPXPSb0RXaW+rxW6ONnRBsGshFwLJFJ3ka1lZo3FdZ57iXpKkH?= =?us-ascii?Q?BjcRu6AxMD0BVmnLOfj2gPSxK7c3OvOvenS2Qr+PzaFcmmENoesgGyN9QLdf?= =?us-ascii?Q?rv7vOJY1jisLjI/uzUHSa2JdW/PnH6yUtBOX6wd0f4Qe8hayblzcIkJbljJW?= =?us-ascii?Q?LmobX0bckwoLwEkWwSrrOy/rqqmC+ZVwdUCssEWFLyPi2mwmv1JhBXjmQz6A?= =?us-ascii?Q?cWc7aM0U4gUeD+15U6AsthtmvBZ4j0eJH3N3c9NV4HqCuhvfnoTUMaucYdsP?= =?us-ascii?Q?H21v14MdhYpHcvSpmd9N1ZDIP3J0A0BuH+Yg1t4MHXzlLyEWy+oyOSec/T21?= =?us-ascii?Q?PoOXRfuFhVyYb0pnfNTsEypzgh/6k6i9ZJ93F5PhheX0USzLqZVBoqbDakRf?= =?us-ascii?Q?ErfvQ4e/aesTw3b5R4Ly6XseyQsRPf6rRVqtMjxQz4l+Z8yBI9oC3JN31brt?= =?us-ascii?Q?KigfN6jECW+3BWMRLr6ex1EAfADmCjGYF6ingH/bQcw3VQRXmDa7dpaa9jXj?= =?us-ascii?Q?y3K3Cb8hRxCDQFPKj8cYRXlcwclvm+Kg/i+lW1UxMwkOJXhJDzgnICYN+8F7?= =?us-ascii?Q?ud3tlhwU6Y4c/stQ44los0zp5UXPyhicqd78CSuwmjKl2cMZIKHQGUfOknVb?= =?us-ascii?Q?yBT+9E4Q/TwEVBWNztOyEtq7eJCHP2l24YAQOX+sgObLDSU/1pYIeoq7mSbe?= =?us-ascii?Q?P9F5DAo40AOjuUrwfk7BIB5kjKtnI7ziWUvftHMvS1HuR/yZ80FPbV7ILYAZ?= =?us-ascii?Q?L1dIv2VAnqMCeiKxJwcSZoKWt9wkMdqaJCkZdwCJ8ajGAeVkQOB2rG5JxM0U?= =?us-ascii?Q?eXj6bMu32ZhzHvdVCe13zMSa9pJzlEXYRRV+ZV52PxJWqFG+5VeLB2VbWs+E?= =?us-ascii?Q?snNEd4NMMFuhYKLGkLGOwW9DVU4pZmotStw5gFJxwGIhvMiybLyBG4jzD4SL?= =?us-ascii?Q?EzqwzVF9Ylj6MBt6SQK0Sb3YkOyJeM/B6CReMfO/Q8z3eGW3WuJ8WN7VYLDc?= =?us-ascii?Q?f2Wqj4nTu7oZ+ivo0JbcfzNqo7+C0QiOHyQTVMLygynf7I8+nCXhcaN2Ph+P?= =?us-ascii?Q?OlLyYzl+C2hPKAQwpfNViHayR/jT4gSRi5kWNTqtHNdXM5iGtZFm7UjezGTy?= =?us-ascii?Q?XcLs5wR0+H0ldGudlI14S2jMDkklYO25gn5s94jCu+Q6vd4uqsx/KxKpKYyn?= =?us-ascii?Q?MekDBtBO50FFFT4LyvPvI74=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: OVk2c+l1ZZclRSeOPSTS6hPT8eUKdkOUO36zK+V1x2pt6u+I6IeQhinmXG45vPza9FKzEecLJYbTHJz8aBDYReel4Xh8C6v8Pu3l9o7sl2gyVCqtLaKZE5zmKTJIO714NuMfQwH7avYj0lcGEYMsDdnWuNPNJtT4vUoLTRgUMbcqpcO9P+gmf3DtL5qUQnEKeiemeOcN5JCP4KzUs39IenPce2NAR4e6cWRKwkTQvi/u5HWkIXUUGlTatT5jUK52VYiUjXzE9PT+krHQ1rLD8HruUEj/d9+Vd5WrYtNYTvURk6DtN1Uhg59T3J2s57x+xtAIhHM3yKOFNHYBlM2q/HP8ZCyejwRy/REKxAd4IwxbZ58UqVzjJfUZToIkWxjwYIV4ujBPZS2gBpdInU3aMuIqa8MmD6kVBZ4x4x/m2W0V6St0W0CtYImR27XFGaTQBl5lUuU1pKxoTd29Is8iFQnKCrL10JuWjBWptrU/diF4eyiin8chir9xUH/X3FnAfrOjcbbNLEBsOHsu/0nwtI9WMeanqIs1C2jBBK5nDUXL76aArfpvHsIcNsCA4W8zJdaXxXDY0JNytqziSYIfbMIJYRuAYlStEpa1RFgvZMz3upYSoLgA4nB7e4zdoLGelnucawn2BbSbH5NrEbnFF71b+ZWcgloWRSdqZuRhV+oibUpsP7aL/3kr0Ij03gOMZEhczrCwGFy31zOq+kmj1CsLorWfj+ko+7FRTVbexesaXrvy3f53LYDjbu+W0/mZ8V0Fbks01QIHNgIo1xtyrw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c728b487-9ac2-43a4-2b49-08dbd9687f44 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2023 16:51:44.0696 (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: XVCKGC9rIh9BPSG1zO09+36415C/sbf3tth5WC91nxpSpBR3xmtF3XFbuc+cja2uOyo+DEn94RI4lGd/RQkybQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR10MB6818 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-30_10,2023-10-27_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2310240000 definitions=main-2310300131 X-Proofpoint-GUID: YfukaqU2kE3LSFqVVpaxyVbCV4I9fcDG X-Proofpoint-ORIG-GUID: YfukaqU2kE3LSFqVVpaxyVbCV4I9fcDG 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, The patches in the V1 series sent earlier (https://sourceware.org/pipermail/binutils/2023-October/130163.html) were not bisectable (Thanks to the Linaro-TCWG-CI automation for the alert). The V2 series fixes the issue, and adds a new patch from V1: - [PATCH, V2 08/10] gas: doc: update documentation for the new listing option I have updated the patches in user branch users/ibhagat/try-scfi-v2. Thanks Indu ------------------------------------------------------- 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 V2 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 (10): 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: doc: update documentation for the new listing option 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 | 16 + gas/config/tc-i386.c | 735 +++++++++- gas/config/tc-i386.h | 21 + gas/doc/as.texi | 28 +- gas/dw2gencfi.c | 42 +- gas/dw2gencfi.h | 14 + gas/ginsn.c | 1225 +++++++++++++++++ gas/ginsn.h | 392 ++++++ gas/listing.h | 1 + gas/read.c | 21 +- gas/scfi.c | 1222 ++++++++++++++++ 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 | 17 + 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-pushsection-1.d | 43 + .../gas/scfi/x86_64/scfi-pushsection-1.l | 2 + .../gas/scfi/x86_64/scfi-pushsection-1.s | 40 + .../gas/scfi/x86_64/scfi-pushsection-2.d | 39 + .../gas/scfi/x86_64/scfi-pushsection-2.l | 2 + .../gas/scfi/x86_64/scfi-pushsection-2.s | 38 + .../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 | 103 ++ 135 files changed, 6749 insertions(+), 39 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-pushsection-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-pushsection-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-pushsection-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-pushsection-2.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-pushsection-2.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-pushsection-2.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.41.0