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 33F643858C2C for ; Wed, 3 Jan 2024 07:15:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 33F643858C2C 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 33F643858C2C 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=1704266144; cv=pass; b=Z3S8dHikdE/SW2ZeVbKf94ru21agIsXmKsiFRqyV1x15a8N2HGfvi3BrfjkB0QOv+6kEeFvz9aJZlNVyulHhse5KstCIkYy1jKn9qqDDYihTx1uc6yGgsJzApZFclxyisqYvsbuc6nc0S2wVKEB5XJ242iWIcqNzHuMFh6merO4= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1704266144; c=relaxed/simple; bh=sT352ffjnRGze1ao//G5qwnIk+FXc3+LIdjQjsP9fXQ=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=w85/lUUV0jqLKmYA+75Hs1IvhU6tF/7/H2mg6bCPrwTbMsXndvboHm+VSDtRBhz1PV+6vN4tqYeh50CriL5rMI4b0K9aCu5FYGaXmG8nTBEmiFLTBPzH5mWBQhgpWz0oAKJ1LfKKzzGiqs2LKc0/O1e0qISUhpPCCyPkQSf+z/c= 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 4030i6or012314 for ; Wed, 3 Jan 2024 07:15:39 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=ik4F5HTzdD1QhPBaRrx6OSmOre5fC7qHb/Yy6KeqMY8=; b=d1Z+wdb29GTXdp9al0b0un41JgJxq3E6X6yTsuRnbpQEbNQmGd+5TWaPGp5Bq5j6RPkN YmVwRMk95/0IgAWCteXIryZgxKPVHlzcbDMC0QzB5x9kBLEopoS7HLZPrngpCp+LuNiT wco+jbf19BpnaM2l9FBRNntXmnm5tJa+miyoAkpBG2kMF/YrM1QnynfDWY34WwU0Boda 9DBeZYfDXb3aqGStB732P2kGdl4pV7gAIdnl/oyWfW9xKyWDhlc3+Lisu/ttNr6BChDo AaR0JczOmXEOVvtCk9kR9qxCET7Atk7NVoYIiT2g55UB7E137Nqh+O6dkLknL6XzSIAf tQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3vab8d4ebm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 03 Jan 2024 07:15:39 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 40372UOb001700 for ; Wed, 3 Jan 2024 07:15:38 GMT Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2041.outbound.protection.outlook.com [104.47.57.41]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3va9n8pdee-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 03 Jan 2024 07:15:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eOpyAwo7sMDEqFsFLYwyepTf5dF7IQiSRxif8ldFPVuwXYvk5jDbx2DcOFRN1i1whOzUbMjT+RGzbb75KcMdSRm/qryMb0r5aFs7oF4x7lkGxitE5+6cc6zQ16Q6snNoPMvuLt8cuulRsbyR6cMAG0PIikX3VDq+q5lisxThqkqO8kMBEfzWAaVwhvPmZBUzDBvYIHaMMw5INt2z07cA+J9+waEODJRcAaUHI1szhXMNcLTL7iSlMmx5+KluxF332wxZr9/fFi5rVuUWLUsa1QVzeP53mP791QZeAE+yznqPaErQ6ZnsRFNRzbr8XpwuiumbDpOm5IurKMvUNTWz0A== 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=ik4F5HTzdD1QhPBaRrx6OSmOre5fC7qHb/Yy6KeqMY8=; b=AesnXWOU2mXWLFxokpuEb2YSYEaoGck0nCnn0zP3etAsRsX3Dw3k1MGgbV//+XAFGjn/vc4cAiFKB/RMSEVAw3TjNX5DZcK47KqQbOlJ9cD76vgqZfL7a9P9IMo0TSwXmeN+MMafqJgGxet/vAWcLfNhq/a+4PTtUyP0OXjzDHC/PK3pI/9p5YwlJIBxxDTScfq2EP7r34FVno+6pCw4mPUZ3uYtMwinngC3Xp3q5l4B2tfHcwzzzgY+tRBetmFB/bVGSbTp+pXm0sVoVk0mS9Udu5FFikBStdK3+4wy79ec1z9X7WT3R5CapHlEEtvuwlYEqP942t+A4Y5AIKIggw== 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=ik4F5HTzdD1QhPBaRrx6OSmOre5fC7qHb/Yy6KeqMY8=; b=Op9mq2Xh1A9P2mUl2QDv+58tt0IW1K91EB29fa+3NkZ3TJ5D5cPXIHetfL2/86g0Ujkyx/aFUiuA4FArFjMkzE4zxzn0WofUaUSUnS6Zx33NOYKNFiFltimp0JMHNwAetZZ0zr8wytmzQKlg9U+c3gqoj+ys9bFjZUBQLOfqxMo= Received: from MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by CY8PR10MB6777.namprd10.prod.outlook.com (2603:10b6:930:98::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.25; Wed, 3 Jan 2024 07:15:35 +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.7159.013; Wed, 3 Jan 2024 07:15:35 +0000 From: Indu Bhagat To: binutils@sourceware.org Cc: Indu Bhagat Subject: [PATCH,V4 00/14] Synthesize CFI for hand-written asm Date: Tue, 2 Jan 2024 23:15:12 -0800 Message-ID: <20240103071526.3846985-1-indu.bhagat@oracle.com> X-Mailer: git-send-email 2.41.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MW4PR03CA0342.namprd03.prod.outlook.com (2603:10b6:303:dc::17) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR1001MB2158:EE_|CY8PR10MB6777:EE_ X-MS-Office365-Filtering-Correlation-Id: 10836d71-4b69-4a83-6985-08dc0c2bc7ac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: i6fKlVNXjMnUTV0YjdJYQoK2mmzkR9x4MjnqMLM+z9Q75eiltQGV3Rtpy4/qzaKSrXjMP6vaXzzyV8xaR32EnJYmpISNs86qIdH94yHWfMsbV9X7C0xXQlsd16Ulzq5M0MOqoH9HaiWVVYYsk69Dn95yG53cqHiDRmqtuoy32K2FLmxyCiDOdUzHY+CJsDGw/6zZ/i9VGJTOBbN6uX9QwLSj8CkvaFi4/0eEikcdjM9jw8LUY9ivF+FZ7rflbtzmd1FS2LOA74prvKyM1m90QHOidUWuJaRfPK0yvd3oJC67+lJ2f9MHhY+uoHH03qb2/7wga3j2g2hGKNSPxUAfH55MoOHzwlKn6CiMQL9z6GFVSg594pSlhQq2ZcSciEbKa1/pF4v4NMDe+VEXFTwn1YeMNwtlPZzdygtyIYrTqSw2lUh/9uZgYRW8VudrXqKRjnMysLsuXhZuwowFYdftX1aaGknp1DoCVdQWDELCJDdUa/omDE2LgcWRzz93I1YP7HYEIC00qdkqwMOBS32jrMxMtkeYHsc/DD4/KLrGs5fsyZU4EuL8WUFMQnrBFTgnKq2iknmGZinv2azgFJvF9bwGk9WajCUH7YJYFh7Wn66zJV+icr/T8rcY/tbY/IfY 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)(366004)(346002)(396003)(136003)(39860400002)(376002)(230922051799003)(230173577357003)(230273577357003)(1800799012)(186009)(451199024)(64100799003)(38100700002)(36756003)(86362001)(107886003)(1076003)(2616005)(6506007)(6512007)(6666004)(4326008)(478600001)(6486002)(8936002)(8676002)(316002)(66476007)(83380400001)(66556008)(66946007)(6916009)(41300700001)(2906002)(30864003)(44832011)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tiy5uWuljZKm2BxN8kI9B2YXi8z5DaqXSjSkEXr8zAdgyefCknZq9x38Ieaz?= =?us-ascii?Q?T6i1v0tICJE5cYxx8z63O/VY1mSApEYJ5ZUTuTqPL9sK3i1XTfSPXTnju6yM?= =?us-ascii?Q?AbQwvt4bRdaD0blikilixD4dPd+81T4+CbZRGWcJh742tRchN/eHzk5fWwLY?= =?us-ascii?Q?Rc3pjnog6J6Hg49IbluT5RTWN9xFElh3ewdDr8jY5jJcoUwcOovxntNEj9Bl?= =?us-ascii?Q?RRQ81zNZpxUbNiGQqPVAF58p1w/C8bXROQBle4UkXj20s+Do1e7op644fnBW?= =?us-ascii?Q?iQmUh9YQP3diLtGORd7cFA7/Dodl9c5m82WtxCpsge7eAKKMCwYefkKQyUXM?= =?us-ascii?Q?yqqwUt452BHv2MFhjoItMRGEVfIIkWjyn/CTuHh/bIGy0zoEpYuQGOvs/Sms?= =?us-ascii?Q?7n9pmNDDDx4Xl4GIfYsoNea8tu4OFW2BLhLPTynjFbb2bZWO8/obT2PCiXzJ?= =?us-ascii?Q?SVripRqnD/G5I2uREh90Jak6u4VxTpY6vMF8cw0dVQhfUXEd8/76Op+GZy7Z?= =?us-ascii?Q?QqUyT6u9AqIh4NX7Rv6J7leGz9jcmuKGFeemhgq5hPDGmbfUKrwOcLBa3iNS?= =?us-ascii?Q?D434BMVcQMDs5vgeJQlAnSdrHkkYTcfwWesZv/jfCEWwKefX2S4UlD302ohs?= =?us-ascii?Q?z8wdW6I27tNL/DFPM5hGVoBhpnJi+/KauHg1nNs6nA5NLRDzYEBs+LQoMqCx?= =?us-ascii?Q?7pP3zAPVhpRTiOzY4s8M70+Hr9IYKi8Jr46XjeqnNCo3Sf6FEri88NKVSqoV?= =?us-ascii?Q?LXW2dat5Vh9Htn2mtdUka1z1w0QTafWwMdAJmGdox2DOg6MOboNddaQ8YH8C?= =?us-ascii?Q?MMf8vuCSjrzxy59OFMm9lFg3gmmIjsn4wp75VkL8Ft5dNsVh+qTUsYKte6oD?= =?us-ascii?Q?tsW32UckFH7IU9mfBbxvWNHorZmCnOYC97HFQa9jziP69aml18mr5yiMLjlZ?= =?us-ascii?Q?wom+alAIgXVyGTGhBt0efm19spanN0973weGloU+XJaoC/Dv3eC7pIGdmn8t?= =?us-ascii?Q?h+EwByLDnA0/AXbiSWpeYXB9R6csFgEeyPpni232e/Ly4nwcxndS2qkcFxJJ?= =?us-ascii?Q?vEPMD3sIHkLWRmHh8SQJdrT0qDhGFV6OsmHTI1Twj9AQ/xT5NfBW7gC4TmyG?= =?us-ascii?Q?fHgQwd1zUxxykxOSlE2S6vpm5j42L5W9hqqNaDrmSO6e+h/yuMH1cg79vyiF?= =?us-ascii?Q?jEXJICQEpXYBMEMZ3Psh/Bvs2quYmU8oq4bd2JU/uvR89JjOh4w/VfmWN0hX?= =?us-ascii?Q?O7te1iMuaYJ6+17m0OdekmHlHEM8KzViYez9CqsSrXsdUqJ7H6Av21L1Qr8m?= =?us-ascii?Q?dVr1srU4+9JMdZkId4gLdTIFSeZd1hj+Foeha9NUy5tiC/ZJCvTupNyE4USD?= =?us-ascii?Q?tcndRvKx8XDSdNSSGNsd+01h0Yi/AxRe1bUBEVq9x49JwofNI+Fc09RuRLDn?= =?us-ascii?Q?uKbemx3TJzC7lf0mPuRgzzbEvldh9YaLPU7/aA3N2W0McQXz44rPd6d9BHzf?= =?us-ascii?Q?oiEUw2EgFg+/o10lvr4xko905deTAjhxkcu051GY2OGSMHUrIvKUt1ktxSWS?= =?us-ascii?Q?CCBPvuIscEG6KejF+zShRL0+c36KcbPVKBd7XXTgjIGYLRNX3VgAkfryJmYD?= =?us-ascii?Q?+VibH8Ojt3THe7WKBmTpBAA=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: qS9k3/up3zo4wdPjA2Q5CFrLIJqYGLJZt85opkZOeFcg9TJaO9hU91hQkD32ntfEdJAn7nXlOZYKg7zpdvGWUZvTol+sdsMKWw4GOSeeVf0GBHhN3oUcgtq0ovhB20CQ5X4ytolmJIxxXXFz6tckRHXjWgvAX92/IWF91W/aUGEEJW0ZesoTSe4llwbKcpaWzM7GHKRCUF9mBMxhID1IUwtuXpI4V+KA+2VqT9gLaLmfwNvaj2lH5PW3p9AQR+4xdcLPn3sDgDYsSAWRblvylwn1rGyr9KnwjzL2STylsTtOCWIm6nn9tTw5znEGQliBjCLSPM/RnSCN4P4yTwLZtCcqBzfhumgyGpTURisoXYSt2FaJu5kLBzrgcSH9GmcfxFIvruLHXJq0Yg0gPJ3l9Rp8ExLQNlfSWaWH5wRdgzhT/gnOZ7qSrI5Yo59VCfWT34B9NjK0N533HZ8mDpE18HIbMSJF6+7sBWPgcLyYq/Z5VdGwa+D7NNYfEEG1iavHmyovrcBE98CUUXRgZ6Rvl7jkYG5orJv6GonPsfgEvVL6FVgZmn504Hd1Z6EMJJh/bocPM3iOXVbEan1eWJlE3w9e556CKxNv0JPdaMypgHw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 10836d71-4b69-4a83-6985-08dc0c2bc7ac X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jan 2024 07:15:35.4966 (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: v1AvPFjnKYxQuNOcfq5I+ZSETgycfalamcBs8qTrkWFQ5nzE1QDkhWKovD1EaWFUOCqTpFNtTvsaKCXhtZGrWg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6777 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-03_02,2024-01-02_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxscore=0 bulkscore=0 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2401030059 X-Proofpoint-GUID: uYYsLBgmfOrwhN6CalOJMXvZD8ALBEn5 X-Proofpoint-ORIG-GUID: uYYsLBgmfOrwhN6CalOJMXvZD8ALBEn5 X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,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) - V3 (https://sourceware.org/pipermail/binutils/2023-December/131079.html) I have addresssed the two main concerns with V3 and created the V4 series: - The x86 backend must detect the cases when SCFI cannot be done correctly and bail out, e.g., in case of new additions to the ISA or unhandled instructions. - Build failure with --target=x86_64-w64-mingw32 To aid the review process, each patch has a short summary of changes from V2->V3, and from V3->V4. 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 (14): 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 opcodes: i386: new marker for insns that implicitly update stack pointer 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 SCFI command line option gas/Makefile.am | 6 + gas/Makefile.in | 18 +- gas/NEWS | 2 + gas/as.c | 29 +- gas/as.h | 8 + gas/config/obj-elf.c | 16 + gas/config/tc-i386.c | 996 ++ gas/config/tc-i386.h | 21 + gas/doc/as.texi | 28 +- gas/dw2gencfi.c | 45 +- gas/dw2gencfi.h | 20 + gas/ginsn.c | 1259 ++ gas/ginsn.h | 384 + gas/listing.h | 1 + gas/read.c | 29 +- gas/scfi.c | 1232 ++ 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/testsuite/gas/scfi/x86_64/ginsn-add-1.l | 47 + gas/testsuite/gas/scfi/x86_64/ginsn-add-1.s | 26 + .../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/scfi/x86_64/scfi-unsupported-insn-1.l | 5 + .../gas/scfi/x86_64/scfi-unsupported-insn-1.s | 12 + gas/testsuite/gas/scfi/x86_64/scfi-x86-64.exp | 113 + opcodes/i386-gen.c | 1 + opcodes/i386-opc.h | 4 + opcodes/i386-opc.tbl | 104 +- opcodes/i386-reg.tbl | 3 + opcodes/i386-tbl.h | 11655 ++++++++++------ 156 files changed, 15255 insertions(+), 3978 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-add-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/ginsn-add-1.s 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-unsupported-insn-1.l create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-unsupported-insn-1.s create mode 100644 gas/testsuite/gas/scfi/x86_64/scfi-x86-64.exp -- 2.41.0