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 703983858C5E for ; Mon, 11 Dec 2023 06:04:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 703983858C5E 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 703983858C5E 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=1702274702; cv=pass; b=xNg+4y/1ud20X3N2uGVvC3MJrjMCuqloaqu9DMacf7ESGfUmSFDwq/5PpgmWImXNsHSNbi9kjAdpUheEuDiuJXT7PvfTG1U5Bdr0FSnpqEvDLFsT9IJ7n6w+3h7ide/c013rdfiBHzGaoUmUVRuC7B5qL/PsXLQMoKxnHIkQCNI= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1702274702; c=relaxed/simple; bh=h6Uf1dN5EIwDMqpwiZmxwb/6+XW2m+Ebwlvur3MfeXo=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=O1GP1G/SJNSj+VfaitdrglCc2aiRPj/nIxNWwsJBxBccpSbwcKcwxfoS7879nyvlyv1zS6Ha6neQPklYyJxMqaexnQmyNd1mmST2lNHz18gGgJ0bWCjJOAgq9b87nzQiXA/NwDQ44Jm4D4wwIu7CF2a3gXrS13xzcwIqJKQN4No= 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 3BB4c8iv001335 for ; Mon, 11 Dec 2023 06:04:58 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-11-20; bh=wd0K7cbKHZZbjfl/OAmXqGtqCs45CSObXzWxniO0sbY=; b=ffRPrr3HujxaaloFQLYBJ1ugL/XJ8eymjE01VJXIAPxuPafDNHgKjBGRQNKtx5nQEDTM BNfqwJ5YArvBin3rRRLi/SuAKjJQiYwCqsugBUphbSX2lJ1mWMxQt6scFXI2xI9rxDUI UwisTaSYYGcuXZB6MOkwO/+ClHZt5nt4/B2S9aReCOQjmlM7ZxYr6aLKuITF3Cvk6bfg KtZosm30vRZx8N4nnYvd6MD/BHxDu9NtqGsNFIptfHl3cerdyBBLQveCfUhjFpFN1cPL 1YUSMn9sW8D1YaV2ey7epSQBikBJam8sPraEeZG4cZ3xSmytiQYXJoLkABzRQAApd1XI pg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3uvf5c25fv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 11 Dec 2023 06:04:58 +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 3BB5g5J6040874 for ; Mon, 11 Dec 2023 06:04:56 GMT Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2041.outbound.protection.outlook.com [104.47.57.41]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3uvep4ewch-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 11 Dec 2023 06:04:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gcUnxL97+zfLHgykne6KIl/cwQQSOVjwq2UYwzHTcB9oLZ6GE7bcZsPAUz3reSxMHhtT43PCDfAPgQMDMIxxAuc69O8aL2NchYhdwi0SstXMMzTxWkL/yn3ud5xbpN9CshFWX1CxGALkLsaSt8SpJVsUQeS9/RVk/fV5kobanPvn1TWLDhDyy/pCG5WJW7wtU58CfSzWLYNiUqkFjQwDpUT4IDKLcH36PwojeTDN9rUHR0JUx+JcLz8/WjOSq3A/5VxxqwZzsJ0mpbs95WrSf+6qQxn0iUL9Z7cE8VUApO4Aerp52VnB7zZe41Kk+21q1PdGgGZxOboyEE3i29wzFQ== 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=wd0K7cbKHZZbjfl/OAmXqGtqCs45CSObXzWxniO0sbY=; b=DfMRd7mGbxHYEqkvA3c+Bs2rHCufr0oWDsYzcDjz56U6+ytt32Nf40++wMkFikHgd5DAGa+FSiE6ZSpcjjPqo7yYZ1RUUWwci3llCfUoXEjN+nVMEuvppwozOhQKotOMUnn+QBMjsrBK3g4gGGG0Xlp2HeRvQIQGo+HxFhDkU34DN7cIblkZ76zxPgsvv+2GKa+jbe1u4xDNI7gYLfROVCUpo7YCRgzou+VYCdU7hdlY/h6gQ53AtcJlfLfvHyJ8C5G7h7pfxnhd9aB8fS+xTkwGI7YXliRuqWBIvFcRAz9UQkrNtxw4OwDQ4bB2NHDcgvINHgj9Tf6KO1InCU9iBg== 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=wd0K7cbKHZZbjfl/OAmXqGtqCs45CSObXzWxniO0sbY=; b=nVYK++E/YHj9V/uuJOm8v7sCFspBAYY4HPZMzqdNU7YJ1p1h7JJ7u6Lbe2jvjiKPvG+2wzL7n22hPQfjE4WSHZvVd/d3Oe75lh+8JdOQWOUzFXJxKLh0OhJXsmL+644yZ31Pknsk5ZMtH7onhL2O8yoLjmQqsa0jv9Dv/JPjnxE= Received: from MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by CO1PR10MB4610.namprd10.prod.outlook.com (2603:10b6:303:93::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec 2023 06:04:53 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::88e2:4a2e:3111:e04]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::88e2:4a2e:3111:e04%7]) with mapi id 15.20.7068.031; Mon, 11 Dec 2023 06:04:53 +0000 From: Indu Bhagat To: binutils@sourceware.org Cc: Indu Bhagat Subject: [PATCH,V3 00/13] Synthesize CFI for hand-written asm Date: Sun, 10 Dec 2023 22:03:46 -0800 Message-ID: <20231211060359.3561062-1-indu.bhagat@oracle.com> X-Mailer: git-send-email 2.41.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MW4PR04CA0086.namprd04.prod.outlook.com (2603:10b6:303:6b::31) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR1001MB2158:EE_|CO1PR10MB4610:EE_ X-MS-Office365-Filtering-Correlation-Id: 13cbe2e7-12bd-463c-6fa9-08dbfa0f17bc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xvrJOWKQkuX2wDdgxfIqOwY31ib2FWmgC2pjsQPzv9fpdOvorQB/Wf6WTgZffvDkTiXR6XmL8VSLO0isGztTc3LIF64JAPwmxf27WhgSx4/hukKx77/x9zDaEQVX4W0SFekDZCnr0I496N/hl1FOYWzw6ZU0hh7fvCynJ6wzFspy60KIIs758pZrMVcqjGgwB/S/qQhQLWdvMcepWKTUodVp/yjYqlTyDpKto/NqxE7xG1SaK5qDEj3DdiHlihtmA+1UHBsyBWAsF6mp2u5kn2HUrSc2bDZSxRVVpqCM/gAZQD13Btiii23dForCrL9A4iynVKyObWSNjfBKiQw2xADdtqUG1MhTUYJ1FUeg/txijH7KN3At1LGpE6wO1kn99+MHUeRnHMu6YwEHXA9G89owpr86KO8XgZngCfLwXVH0Gtdd3muPzRa5UWa038a1ZGLQvixnq5idhax7TUiIzKPB+Zqd/nPkPm8Now9DwhWCzhVOYK2xMELxhqjazVsFVDJkJ0n6LlRJI3+F00ZKI5KzmDhX9YWsMMRaRPw1EnuWwNZlNYtiUbvY4Wejg/JQw52YvXiz1hfE+manXGedzUXNBn/WRB+DwYjaa4OVEaSMfq3SpF7Qjd33ClicLying/oQJL1V5C3pA0vOohHMEQ== 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)(396003)(366004)(136003)(346002)(39860400002)(376002)(230273577357003)(230922051799003)(230173577357003)(64100799003)(451199024)(1800799012)(186009)(41300700001)(38100700002)(30864003)(2906002)(5660300002)(44832011)(316002)(4326008)(8676002)(8936002)(6916009)(66946007)(66476007)(66556008)(2616005)(86362001)(36756003)(83380400001)(6486002)(6666004)(478600001)(1076003)(107886003)(6512007)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kjNXlQ765gxIL1NobqNpjador+yNW7JMptibizUGxG3Dnz8bu89xxzcz/dax?= =?us-ascii?Q?0m0ZNZK7fpzSbojFhvwManByOJ0eb93v+y3wBeJj/PeFUludSr6JKD21ul3t?= =?us-ascii?Q?pT4vdWpnd7CxHoxp7y6bWJ7q94jrHRYkWrdktnCjCRJzueBCKDP5eiYi9cZ+?= =?us-ascii?Q?wtqBZVSzNOFUxut5zoPzyrQ9DT9pFl/4IKiYgBIQTHM2eclnlEbRbhWwEo2p?= =?us-ascii?Q?RN7PXb0vseak+D+fjBDxdsChLm2bfdpJCGSNciss6zZHe/0Pfag83E9WM5wd?= =?us-ascii?Q?A1BZeC3d83Q9yKEaKEXSaAlYdRTK86X7GsdP73Tc3eiLc16eWirqSHGPOjq/?= =?us-ascii?Q?M4oQydkvJqCbaaipEhjqtyzNrKpFxa74I2TkcuqdBJTpKhnxZ9mcbKf6EN3I?= =?us-ascii?Q?ai86db9m8U+9bPDIErIiMt+du/V9fNTSTl5SwWeOe1jOWFyQGJv27WTQryl3?= =?us-ascii?Q?zK5ee/WlukyLbdDqklXLHC2VaiqU+iDqWR2J+tAu/Ie5lcEvcmYEGxMXSrSx?= =?us-ascii?Q?qQKKLI8qVUw/Z6sqVln4wM06eUiczOiiOI8XU5mgF6kcNUFfX2b6GJntlJGV?= =?us-ascii?Q?0la4FzrISeW/+k7xWuKqMcFc8te1ITXsPDBMgyM19I0ub4mli4+aVTjWcutG?= =?us-ascii?Q?WslCsPaf5Ld8mtO9EJ6uBezNV2kJp1+QV/Jn3F+doCE4dsWmtXFdb/r+AiWP?= =?us-ascii?Q?PHMQ7ERC+xGE6oSFoI68obDJ/cvnWWvpCyzzAzqrgjIP7T0E3uTOgLZlEMKJ?= =?us-ascii?Q?Q1CyObiciPtRSlYUv8MutL6CDetgB4cWcS+TIGQcGuTO5NXmt4ncd7NWOY5t?= =?us-ascii?Q?3X1Sbue/CRLq2sE/GyL5KENWX4SZGFVsrZjCeIErcbZ5+S8fTGAYrb9DpDQe?= =?us-ascii?Q?vEMqQE4M3W3uJQrOxANYuievGfYGZsP/WGLLg71N/b6nvQcMJhYwBF0vznNy?= =?us-ascii?Q?mG/TsbXqfKeHPN1QprB0uThSElQ5PNMyVWVsu4CeTPgjPEOfRQJFTVpE3mHl?= =?us-ascii?Q?xXc6cUtSwxdAeSkiFwePVg63URTcHNGCfy7hNXLHpULfG9NfEeGU5Rl841Cs?= =?us-ascii?Q?ZkTPCfgjclL1mAOfHbDH0shHqRuac+FFWZdnAM5Pm95BKRJmVtRUtIzEanh7?= =?us-ascii?Q?8DwDE23OBuN9JMwsgT+cCbX2N9rF/Pahuv3TFMObTXN+kaAlIZ1CC1BrJPAw?= =?us-ascii?Q?QHFkicZ7KtgvK7BP8C/mFwyNixMkhJ3QCJDpmPZLqCT9Nei5X2fJuvVm666+?= =?us-ascii?Q?fPzECOmc53sfpmU8hkHuU6PGUNc8IvObCsM1hzBCJyQOw5FsC0C546vvMLzg?= =?us-ascii?Q?pa+aUX1Jkug8li3jagPEi5k75yuRH76v+uqqhKci5o/SSlV/K5V+VCVgFQAC?= =?us-ascii?Q?90ij/lBbds2Tz1UOlKJ8vXkpm90Y3f+y7rrWM6CW+oPT4q+3iS90tdun/qij?= =?us-ascii?Q?LhZngX5dIkqet3BTJ2kjZWpYTsGyAoXw/bMoIxdSdCqPyPOnTPkH/NOurrCW?= =?us-ascii?Q?KHbYmLWmabSJF0gRWeDvtoYYFoJvYpvxQOFlxxWEEtMibCN2n/iCIi+apH7C?= =?us-ascii?Q?dM9k2r0ukopPZzYcgpvTZSJYFpNFfgOk+DXc0X0at1Ov5nOi4M0rsd89+9WK?= =?us-ascii?Q?YWJ3MRP57QvK3YXFMVF8RLg=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: bu3ERMmN29iFIqVfLPMeJtY/tLRQfcdrpkoOkhMuaTPzAy2vps2sFJL2tHQjf4S1PGIFVuYUI9aTI3fI3+qn5DZs/3WqHKDBL073SuVZJXKQCUNmr4DdPXgG4hoL94Clycnj0njHUWnAsP7lYE1/CtwA8Kd5irwGNFrthPEXd/kd7dcRCWt0m6Vy0dc/j3YPpEXjRj/YzIPu7MEHl7YFHVXByVWBC+ccaxxGyF4OvKf/enFvamm5WtIpGFLWZCOvPCHxEqvlAcK80bNdyIwkwZEeNWImz5muB4LLodeDilKIGA983DaxQ5CFan3MBDwCD3GvPOC4ZugZPMP110SNpaTL+P7jHxgmboCN6hJXILnBlCMvfOt6M5zSrW8FgeVywOGkvI2Eisan711e8GBF35HvlBd1v+u/P9Ojkdd5DIAZeZ0wRnd1rilx5SGVVbMDejfhDRJefD82BIIH89n1YBInaAClRrx1aRuxwQHQZJgvK9Q4ERUkDcZnkGnlADarugSgVcPWmkH1kAADqcMZq1lXEvEqbF1/UiLs8HEeFJbUstSszdfC6mfTcepzwE8RJHbfDWVWDElasHeUB3eS/eALfMZOICqpvJaInFk912oER3N6ZZpc+e6u8NVDLDwqpUibj5T6pa6lz6n2AeJ3pBZKAXyPGRez7N1PyhOolAz8p6PBVkC0zywmnMlofEzbUqtOnM694H1VVDoJUZx9Wh0r5XqddSolmBylnyts9Nc+xxndTL3tBlSEJ5fxC1qkAHEn2jf2CW9Eajr3l2h8ag== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 13cbe2e7-12bd-463c-6fa9-08dbfa0f17bc X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2023 06:04:53.5911 (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: +ZJfepsl9Mp0q6aosXkMJHVLDCguQn9b3VqiQ3m8bo4Ghv6CBRw1sAPNQ5ShB6VWhDAJe1GRPFJ2odGnGhc1Uw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4610 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=2023-12-10_16,2023-12-07_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2312110049 X-Proofpoint-ORIG-GUID: Gaso5HuQlWS-HenXRUEB7W-jzj6o-PvR X-Proofpoint-GUID: Gaso5HuQlWS-HenXRUEB7W-jzj6o-PvR X-Spam-Status: No, score=-7.1 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,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: Hello, This patch series adds support in GAS to synthesize CFI for hand-written asm, acronym'd as SCFI. Previous postings: - RFC patch series (https://sourceware.org/pipermail/binutils/2023-September/129560.html). - V1 (https://sourceware.org/pipermail/binutils/2023-October/130163.html) - V2 (https://sourceware.org/pipermail/binutils/2023-October/130210.html) I have addressed many of the review comments and created the V3 series here. Each patch in this series has notes on how it has changed from the V2 posting, but here is a brief summary: - x86 translation to ginsn has better handling of existing and new opcodes. - Added more testcases to the testsuite. - Code comments and coding style/structure improvements; bug fixes. - Three minor additional patches as compared to V2: + gas: dw2gencfi: expose dot_cfi_sections for scfidw2gen + gas: dw2gencfi: externalize the all_cfi_sections + i386-reg.tbl: Add a comment to reflect dependency on ordering 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 (13): 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: dw2gencfi: expose dot_cfi_sections for scfidw2gen gas: dw2gencfi: externalize the all_cfi_sections gas: add new command line option --scfi[=all,none] gas: scfidw2gen: new functionality to prepare for SCFI gas: synthesize CFI for hand-written asm gas: doc: update documentation for the new listing option i386-reg.tbl: Add a comment to reflect dependency on ordering 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 | 966 +++++++++++++ gas/config/tc-i386.h | 21 + gas/doc/as.texi | 28 +- gas/dw2gencfi.c | 45 +- gas/dw2gencfi.h | 20 + gas/ginsn.c | 1227 +++++++++++++++++ gas/ginsn.h | 382 +++++ gas/listing.h | 1 + gas/read.c | 23 +- gas/scfi.c | 1218 ++++++++++++++++ gas/scfi.h | 38 + gas/scfidw2gen.c | 272 ++++ gas/scfidw2gen.h | 35 + gas/subsegs.c | 1 + gas/subsegs.h | 2 + gas/symbols.c | 3 + gas/testsuite/gas/scfi/README | 17 + .../gas/scfi/x86_64/ginsn-dw2-regnum-1.l | 55 + .../gas/scfi/x86_64/ginsn-dw2-regnum-1.s | 28 + gas/testsuite/gas/scfi/x86_64/ginsn-pop-1.l | 30 + gas/testsuite/gas/scfi/x86_64/ginsn-pop-1.s | 13 + gas/testsuite/gas/scfi/x86_64/ginsn-push-1.l | 33 + gas/testsuite/gas/scfi/x86_64/ginsn-push-1.s | 14 + gas/testsuite/gas/scfi/x86_64/scfi-add-1.d | 26 + 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 | 37 + 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 | 29 + .../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 | 25 + .../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 | 32 + .../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 | 32 + gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-1.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-1.s | 21 + gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-2.d | 58 + gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-2.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-bp-sp-2.s | 52 + .../gas/scfi/x86_64/scfi-callee-saved-1.d | 41 + .../gas/scfi/x86_64/scfi-callee-saved-1.l | 2 + .../gas/scfi/x86_64/scfi-callee-saved-1.s | 25 + .../gas/scfi/x86_64/scfi-callee-saved-2.d | 42 + .../gas/scfi/x86_64/scfi-callee-saved-2.l | 2 + .../gas/scfi/x86_64/scfi-callee-saved-2.s | 41 + .../gas/scfi/x86_64/scfi-callee-saved-3.d | 43 + .../gas/scfi/x86_64/scfi-callee-saved-3.l | 3 + .../gas/scfi/x86_64/scfi-callee-saved-3.s | 39 + .../gas/scfi/x86_64/scfi-callee-saved-4.d | 41 + .../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 | 37 + 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 | 29 + 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 | 38 + .../gas/scfi/x86_64/scfi-cfi-label-1.l | 2 + .../gas/scfi/x86_64/scfi-cfi-label-1.s | 19 + .../gas/scfi/x86_64/scfi-cfi-sections-1.d | 24 + .../gas/scfi/x86_64/scfi-cfi-sections-1.l | 2 + .../gas/scfi/x86_64/scfi-cfi-sections-1.s | 22 + 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 | 24 + gas/testsuite/gas/scfi/x86_64/scfi-diag-1.l | 4 + gas/testsuite/gas/scfi/x86_64/scfi-diag-1.s | 22 + 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 | 24 + .../gas/scfi/x86_64/scfi-dyn-stack-1.l | 2 + .../gas/scfi/x86_64/scfi-dyn-stack-1.s | 50 + gas/testsuite/gas/scfi/x86_64/scfi-enter-1.d | 36 + gas/testsuite/gas/scfi/x86_64/scfi-enter-1.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-enter-1.s | 24 + .../gas/scfi/x86_64/scfi-fp-diag-2.l | 3 + .../gas/scfi/x86_64/scfi-fp-diag-2.s | 55 + .../gas/scfi/x86_64/scfi-indirect-mov-1.d | 52 + .../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 | 42 + .../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 | 42 + .../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 | 64 + .../gas/scfi/x86_64/scfi-indirect-mov-4.l | 3 + .../gas/scfi/x86_64/scfi-indirect-mov-4.s | 68 + .../gas/scfi/x86_64/scfi-indirect-mov-5.s | 35 + gas/testsuite/gas/scfi/x86_64/scfi-lea-1.d | 38 + gas/testsuite/gas/scfi/x86_64/scfi-lea-1.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-lea-1.s | 39 + gas/testsuite/gas/scfi/x86_64/scfi-leave-1.d | 37 + gas/testsuite/gas/scfi/x86_64/scfi-leave-1.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-leave-1.s | 25 + gas/testsuite/gas/scfi/x86_64/scfi-pushq-1.d | 36 + gas/testsuite/gas/scfi/x86_64/scfi-pushq-1.l | 2 + gas/testsuite/gas/scfi/x86_64/scfi-pushq-1.s | 23 + .../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 | 40 + .../gas/scfi/x86_64/scfi-pushsection-2.l | 2 + .../gas/scfi/x86_64/scfi-pushsection-2.s | 41 + .../gas/scfi/x86_64/scfi-selfalign-func-1.d | 32 + .../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 | 27 + 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 | 31 + 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 | 26 + 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 | 32 + 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 | 9 + .../gas/scfi/x86_64/scfi-unsupported-2.l | 3 + .../gas/scfi/x86_64/scfi-unsupported-2.s | 13 + .../gas/scfi/x86_64/scfi-unsupported-3.l | 3 + .../gas/scfi/x86_64/scfi-unsupported-3.s | 13 + .../gas/scfi/x86_64/scfi-unsupported-4.l | 4 + .../gas/scfi/x86_64/scfi-unsupported-4.s | 22 + .../gas/scfi/x86_64/scfi-unsupported-cfg-1.l | 3 + .../gas/scfi/x86_64/scfi-unsupported-cfg-1.s | 52 + .../gas/scfi/x86_64/scfi-unsupported-cfg-2.l | 4 + .../gas/scfi/x86_64/scfi-unsupported-cfg-2.s | 14 + .../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 | 111 ++ opcodes/i386-reg.tbl | 3 + 148 files changed, 7251 insertions(+), 40 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/ginsn-dw2-regnum-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/ginsn-dw2-regnum-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/ginsn-pop-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/ginsn-pop-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/ginsn-push-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/ginsn-push-1.s 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-cfi-sections-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-cfi-sections-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-cfi-sections-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-enter-1.d create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-enter-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-enter-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-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-indirect-mov-5.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-cfg-2.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-unsupported-cfg-2.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