From patchwork Fri Jan 12 16:56:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Victor Do Nascimento X-Patchwork-Id: 187793 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:693c:2614:b0:101:6a76:bbe3 with SMTP id mm20csp305047dyc; Fri, 12 Jan 2024 08:57:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IGmFulJGbzdWdrmcx7OSTXdhWPm+HmEd2ZPDR1Z5X0y2mPoQakSgJQqU0ATNkKkTccxVyYO X-Received: by 2002:a05:6808:bd5:b0:3bd:37c9:7ffa with SMTP id o21-20020a0568080bd500b003bd37c97ffamr1446089oik.112.1705078659445; Fri, 12 Jan 2024 08:57:39 -0800 (PST) Received: from server2.sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id vr16-20020a05620a55b000b0078319ef15basi3150422qkn.564.2024.01.12.08.57.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jan 2024 08:57:39 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=nCIAh4C+; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=nCIAh4C+; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C1C6E385840B for ; Fri, 12 Jan 2024 16:57:38 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2042.outbound.protection.outlook.com [40.107.6.42]) by sourceware.org (Postfix) with ESMTPS id C39D13858C78 for ; Fri, 12 Jan 2024 16:56:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C39D13858C78 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C39D13858C78 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.6.42 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1705078619; cv=pass; b=VvKKPsY3gFEtpOhS4TWNsohg0YEF27sGhatBME6I1zUoAW4rUkMKvR83Gl5KehSVYe7ODRQwiWC73Kpzqn5M9D5SRIQ8OwK21Z1qtfDdXzyGM0g4NGmAt2tRXfWJcEEl0RSHVFOavl6GDbxjzYk1jNC5z1t6rFjPmGkA28Urs3A= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1705078619; c=relaxed/simple; bh=Ww5NQhEf/M9gXLkzJYhsrCXP2oI1pL2D80icJ8aiy4o=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=CR7XlahspVBMmT1U1k7znvRnihx0uv1XCv/AonYRJPtrthFtMYHdYqwRlLQXT66b4Xp+GcRjXgTNIyFVyDUzHx2TCsB9e4U8FN9SZu177/YLdR+TC8Qi3YX+8ErhVvBMav50LY9bIZ5x/kZsSL2Mb27B3lVKkNcr6ARmure+748= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=AlY3yCjse8YpINooTjHBj+bNjAXTjykDcVrWA5wGLX4pKwztx8t2SKBoNdJfhlpcUQ6ghtSyxx5xk1sXSGS8F8r2Y6e+FosLHIhP9ABSi8iZVQlFZi1efB0xNPjnXIk57Kj4RlrqbOZ/Ew6v2x2zXKU1CaMMSt1/br0tvSMbaV1D1eJdjeekGxfIxfkNGx0op/WhstWOAOLVkHwMKCZtPT6vXXaAqIrsro39lZE3jwyehAQ6gYH9dol73G3jSRYDYke02ovMImrLmz2otdQWqVPdMu5w9/wipMhQOGz8qmKIklzHWtP+XAwckp2W2ZRmJinUpMEgpd9Wq9V7/jOMPw== ARC-Message-Signature: i=2; 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=E3qfxQZTb2PoeWZEdH2KXAC8p3GyifxBVcHGqtTW9VA=; b=M0LOxAKgLOMYgjb+5po4zR83akQzaBd4boGKgn7VfpAHuCRwHA90Kr9wvWF045S0vJ+/O1Vd6oOkpmo0oLiX/UfNJmC5r4VALxlgTbroAYoZL7UoDZOZnWsLnYU8r52JCqbjRDqoAM1J3dQvQib9Ost6XXvBf86315qLB+s07SefPc/cgzW8JLzWdc4oavWChUdDEzw7GOwuMGS3LF6QlnL13X4aNnklksSe99GU/0FCauL01QHtWlWUmd0dHsmxyI0GTmS0opSpBMi8P9BIboAKScbdKPR1mMXO53AzAbauy3e1MC0xdxpvQ/ZAIi1NToBLsqC8rvY1CF3p9XNiEA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1, 1, smtp.mailfrom=arm.com] dmarc=[1, 1, header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=E3qfxQZTb2PoeWZEdH2KXAC8p3GyifxBVcHGqtTW9VA=; b=nCIAh4C+LmxZSNW0mwlfJ3ZckwM5XJfCxvKhmPczgUc/jDVXwEN+KbgUG/Y3QQn+JDxlcxuwti5YlTUigSeR/NtVLgbPp+53RbP8FbMDh0v7QIaEIdUrDR/JrtRMOOl3PPARW9ho6AqtzzDUrCNVqEGEN/ZZT5ZWdyjMZfiBfJA= Received: from AM8P189CA0016.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:218::21) by DBBPR08MB10464.eurprd08.prod.outlook.com (2603:10a6:10:53a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.23; Fri, 12 Jan 2024 16:56:53 +0000 Received: from AM4PEPF00027A5E.eurprd04.prod.outlook.com (2603:10a6:20b:218:cafe::a0) by AM8P189CA0016.outlook.office365.com (2603:10a6:20b:218::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.19 via Frontend Transport; Fri, 12 Jan 2024 16:56:53 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM4PEPF00027A5E.mail.protection.outlook.com (10.167.16.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.14 via Frontend Transport; Fri, 12 Jan 2024 16:56:52 +0000 Received: ("Tessian outbound 94d82ba85b1d:v228"); Fri, 12 Jan 2024 16:56:52 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: c8f31dc1d356860a X-CR-MTA-TID: 64aa7808 Received: from 66dc8c931832.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 6C2413F7-23C1-4A57-9E6B-B492FCDB9297.1; Fri, 12 Jan 2024 16:56:45 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 66dc8c931832.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 12 Jan 2024 16:56:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X3vqftEN7W3fUZ+CpdBmyJuZFFWtNFJngGYfjIvEIe1TI0kgfd7mzVGS8D29LvdLjVFzFCG1TxVOmR2yRZZBBfbuLbfydXqb6+x2tJ49bz4MwZP0uk/zpSJw1fEtpB6u0GlQm0wMePRCA9bWSs9Dzv30OKm/XSfghy2WDHQ0fVZZzyTtday4v10jt1o+Tb7LHVXXKiK+wEEsOHzVw5lXojbR/theffGRH6qAndZ3edm06QYDBI2VRnE/u9TMcoGWAjU7QnkdRrNsmkmDohIbEdEwwHYMckbQ5a4lBG8rBeZl6MofLqMUIah13bxyEWD81BqiYvSBFvSi70zn89R1/Q== 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=E3qfxQZTb2PoeWZEdH2KXAC8p3GyifxBVcHGqtTW9VA=; b=BnN38k4x9gRWEbcYfd3D1yrxiqOTNOIhmcv75q8dqRTi3zkvtVLSrkdoZtApu8WSdaaMMMVmfidbK1x2QPf/3DYbjaaaYc6LZme+xC+Rg1WCazje1+jVPHmUuoOagIZwMlL6fE0Kbn8BEbY4HTJ4eihceV/Q8ONk4y/pryCWJWn+Z4HTlFj9bTntVaAuFDIezepAfguioDzzCTFVbaLUWFF9INoLwh/ICsm72DzaWsQ5sS25tiAhZG82q0y8RQiqx922vEzDpZ9HlXLT7JmZS+vWba9+mAj0QeW6VuSPIxdtiA3hRRLXXhJKtBc1JbNzYiLrUNf3I6Ybmt10ky7kDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=E3qfxQZTb2PoeWZEdH2KXAC8p3GyifxBVcHGqtTW9VA=; b=nCIAh4C+LmxZSNW0mwlfJ3ZckwM5XJfCxvKhmPczgUc/jDVXwEN+KbgUG/Y3QQn+JDxlcxuwti5YlTUigSeR/NtVLgbPp+53RbP8FbMDh0v7QIaEIdUrDR/JrtRMOOl3PPARW9ho6AqtzzDUrCNVqEGEN/ZZT5ZWdyjMZfiBfJA= Received: from AS8P251CA0019.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:2f2::22) by VE1PR08MB5677.eurprd08.prod.outlook.com (2603:10a6:800:1ab::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.19; Fri, 12 Jan 2024 16:56:42 +0000 Received: from AMS1EPF0000004A.eurprd04.prod.outlook.com (2603:10a6:20b:2f2:cafe::19) by AS8P251CA0019.outlook.office365.com (2603:10a6:20b:2f2::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.21 via Frontend Transport; Fri, 12 Jan 2024 16:56:42 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by AMS1EPF0000004A.mail.protection.outlook.com (10.167.16.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7181.14 via Frontend Transport; Fri, 12 Jan 2024 16:56:42 +0000 Received: from AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Fri, 12 Jan 2024 16:56:39 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Fri, 12 Jan 2024 16:56:39 +0000 Received: from e125768.cambridge.arm.com (10.2.78.50) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.32 via Frontend Transport; Fri, 12 Jan 2024 16:56:39 +0000 From: Victor Do Nascimento To: CC: , , Victor Do Nascimento Subject: [PATCH 3/8] aarch64: rcpc3: Define address operand fields and inserter/extractors Date: Fri, 12 Jan 2024 16:56:17 +0000 Message-ID: <20240112165637.2522719-4-victor.donascimento@arm.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20240112165637.2522719-1-victor.donascimento@arm.com> References: <20240112165637.2522719-1-victor.donascimento@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AMS1EPF0000004A:EE_|VE1PR08MB5677:EE_|AM4PEPF00027A5E:EE_|DBBPR08MB10464:EE_ X-MS-Office365-Filtering-Correlation-Id: b8130f60-f92a-467e-0011-08dc138f7a10 X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: Z+7cfM7BOeZOBuT54aITF1Y41Xynx0QevIFXYoHE6zcN+PoKYoC00wbEL63cARRILoHluHJllJ0y4j14Bo2Gh29yuVZ4TYmyreCK4y5JyMjorvl95wwtTJOaaLv0wKPrQlVecVueAPVRWu6Hl29Y7i1qoth3l0oQ/sAw1McD0d5QRWAV0XT/T6+XqzFy+PulVVqejnwY/lbqUgdWxqlxkB28C6rx526VsAcbhgDIdiY0UmIVi9HJQ/H8m3sbqvaxZf43R1YGnSSjuIm8MAKEE5lxl4omcKGK0jx2pBXgK3ljh5HMQGDngYh/dL0c33Nh/m7X5xlY2eKLzE5CSPfD0lmZVrSRNR1u5fS4XIKhdYjRywlaug4zSt0FL0CcYltGkaUfazWNtWvKFo3uZMvIXS1gzo00eaQvA+wy9K0wMMgOz+zlPsEU6YfrR8V9mL8tf5QD2koA2ImZ3kAfyph7wq9EgAGX1vLUlLT9jmLMsHGifssscIUhCXTfo8jSfSG4DnqsTurnff9k3bQI2SOeFRH3r9U6gQR/jMHb81Qh2Wed4FHlunglhLBkBKshcderRWsoD3HLlZeiVswVsYZSKzHkYHxAXCpZOHZtk0IXMsTX27b4kHAgtBLoqF0Auzr//Yh0i4bwQWn/ATO2LXI0Ouk1dbeFrMNsHor18vc/oDm9VhF8K3o6kP+wMGs0pY+t5mwVhGnsnEYWgcjKcaKsHjs2mT/BeokAw+mEzwBH54V76qQ4A7EuvejctrCkOjIbfJHYgRNjUG88XsVtGXaWPA== X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230031)(4636009)(346002)(376002)(396003)(136003)(39860400002)(230922051799003)(186009)(1800799012)(82310400011)(451199024)(64100799003)(40470700004)(46966006)(36840700001)(6666004)(83380400001)(6916009)(316002)(47076005)(70206006)(54906003)(70586007)(7696005)(81166007)(426003)(26005)(1076003)(336012)(2616005)(8936002)(8676002)(40460700003)(40480700001)(82740400003)(5660300002)(356005)(4326008)(36756003)(86362001)(36860700001)(41300700001)(478600001)(2906002)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5677 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM4PEPF00027A5E.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: c81f40db-8a16-4f34-dd28-08dc138f73f8 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: omqNR2R+01P5q8k7IDSxlLTKCjftX6vl0ABbGSUdhQgWYT0QoXdE1vNlo3vomjQh+WNRIkUvTo0vIL/6hKdkbnYZN/LOjfBLICwkUveXCs2dH2PJn5VIboYd+aYvJS70CfpBb6ti06fzE2uZVxo5idWCRV5Ufpzp/g51Yuz6kld8Cj9DMn9laS5Q4uHQLahqDbOhHG7vp327ICNfQcx9OBC/lCJ9Pvxib3eehLNdJgrmpV9hgtbTF5Ee00JRHKZyf5PFvliZzfFsPqmG4i7o7kwrzdbA21ENrciXXc4QOn6UXwcwRAQklPQtPNrO1r+x+PLjuqWrgPFjAloOUaHZ8MAfRSRn/GaTJlMXJDq0ffqJbK4Bt9X1UjJt/UsdoeMUnAc4nGoYX1QdjQK7ippi0IztdvignrJXJPdlI51GbPQG+kgfgfDJwdsx18Ixq5qDEPFHwslc1HrJ2cbNtRNs0SlmobTAF2hEoW68uYgWCoGLSgcRvI9nyCOI6EGJAC6uhOxSCf/mTdqj+/rG3o+xB4QMtbcGoDHxPorXvFNORldTeuH9AXKYwk75bJfxpBhxaiXpmZZi+QInxSZBSCr3TcuRr9zdmd8U7yty6jpAU4d8WFHq8VclP0V7t67zwEq00L4a0H8JWUofixZ+M/OHI1ID3ztBkLS064dQiv9iV2oxumbFPP2DRdiZHmUzZV60Fn0SEmrJv2aDtgyrdgYQr+CAvoenQUPpD6dg9erWQdfh46Fq2/a3Zhe/fgDbayBQ X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230031)(4636009)(39860400002)(346002)(376002)(136003)(396003)(230922051799003)(1800799012)(186009)(82310400011)(451199024)(64100799003)(46966006)(36840700001)(40470700004)(1076003)(26005)(83380400001)(336012)(426003)(36860700001)(82740400003)(2616005)(7696005)(6666004)(5660300002)(4326008)(478600001)(316002)(54906003)(8676002)(8936002)(6916009)(47076005)(70206006)(70586007)(41300700001)(2906002)(36756003)(86362001)(81166007)(40460700003)(40480700001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2024 16:56:52.8106 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b8130f60-f92a-467e-0011-08dc138f7a10 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM4PEPF00027A5E.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10464 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1787904560230758017 X-GMAIL-MSGID: 1787904560230758017 Beyond the need to encode any registers involved in data transfer and the address base register for load/stores, it is necessary to specify the data register addressing mode and whether the address register is to be pre/post-indexed, whereby loads may be post-indexed and stores pre-indexed with write-back. The use of a single bit to specify both the indexing mode and indexing value requires a novel function be written to accommodate this for address operand insertion in assembly and another for extraction in disassembly, along with the definition of two insn fields for use with these instructions. This therefore defines the following functions: - aarch64_ins_rcpc3_addr_opt_offset - aarch64_ins_rcpc3_addr_offset - aarch64_ext_rcpc3_addr_opt_offset - aarch64_ext_rcpc3_addr_offset It extends the `do_special_{encoding|decoding}' functions and defines two rcpc3 instruction fields: - FLD_opc2 - FLD_rcpc3_size --- include/opcode/aarch64.h | 6 ++- opcodes/aarch64-asm.c | 56 +++++++++++++++++++++++++++ opcodes/aarch64-asm.h | 2 + opcodes/aarch64-dis.c | 84 ++++++++++++++++++++++++++++++++++++++++ opcodes/aarch64-dis.h | 3 ++ opcodes/aarch64-opc.c | 2 + opcodes/aarch64-opc.h | 2 + 7 files changed, 153 insertions(+), 2 deletions(-) diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index fe54de7cffe..dc9c98353d4 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -1261,7 +1261,9 @@ extern const aarch64_opcode aarch64_opcode_table[]; allow. This impacts the constraintts on assembly but yelds no impact on disassembly. */ #define F_OPD_NARROW (1ULL << 33) -/* Next bit is 34. */ +/* RCPC3 instruction has the field of 'size'. */ +#define F_RCPC3_SIZE (1ULL << 34) +/* Next bit is 35. */ /* Instruction constraints. */ /* This instruction has a predication constraint on the instruction at PC+4. */ @@ -1328,7 +1330,7 @@ static inline bool opcode_has_special_coder (const aarch64_opcode *opcode) { return (opcode->flags & (F_SF | F_LSE_SZ | F_SIZEQ | F_FPTYPE | F_SSIZE | F_T - | F_GPRSIZE_IN_Q | F_LDS_SIZE | F_MISC | F_N | F_COND)) != 0; + | F_GPRSIZE_IN_Q | F_LDS_SIZE | F_MISC | F_N | F_COND | F_RCPC3_SIZE)) != 0; } struct aarch64_name_value_pair diff --git a/opcodes/aarch64-asm.c b/opcodes/aarch64-asm.c index 1db290eea7e..4be60964102 100644 --- a/opcodes/aarch64-asm.c +++ b/opcodes/aarch64-asm.c @@ -702,6 +702,24 @@ aarch64_ins_addr_offset (const aarch64_operand *self ATTRIBUTE_UNUSED, return true; } +/* Encode the address operand for e.g. + stlur , [{, }]. */ +bool +aarch64_ins_rcpc3_addr_offset (const aarch64_operand *self ATTRIBUTE_UNUSED, + const aarch64_opnd_info *info, aarch64_insn *code, + const aarch64_inst *inst ATTRIBUTE_UNUSED, + aarch64_operand_error *errors ATTRIBUTE_UNUSED) +{ + /* Rn */ + insert_field (self->fields[0], code, info->addr.base_regno, 0); + + /* simm9 */ + int imm = info->addr.offset.imm; + insert_field (self->fields[1], code, imm, 0); + + return true; +} + /* Encode the address operand for e.g. LDRSW , [, #]!. */ bool aarch64_ins_addr_simm (const aarch64_operand *self, @@ -736,6 +754,28 @@ aarch64_ins_addr_simm (const aarch64_operand *self, return true; } +/* Encode the address operand, potentially offset by the load/store ammount, + e.g. LDIAPP , [, #] + and STILP , [], #.*/ +bool +aarch64_ins_rcpc3_addr_opt_offset (const aarch64_operand *self ATTRIBUTE_UNUSED, + const aarch64_opnd_info *info, + aarch64_insn *code, + const aarch64_inst *inst ATTRIBUTE_UNUSED, + aarch64_operand_error *errors ATTRIBUTE_UNUSED) +{ + int imm; + + /* Rn */ + insert_field (FLD_Rn, code, info->addr.base_regno, 0); + /* simm */ + imm = info->addr.offset.imm; + if (!imm) + insert_field (FLD_opc2, code, 1, 0); + + return true; +} + /* Encode the address operand for e.g. LDRAA , [{, #}]. */ bool aarch64_ins_addr_simm10 (const aarch64_operand *self, @@ -1858,6 +1898,22 @@ do_special_encoding (struct aarch64_inst *inst) ? 1 : 0; insert_field (FLD_lse_sz, &inst->value, value, 0); } + if (inst->opcode->flags & F_RCPC3_SIZE) + { + switch (inst->operands[0].qualifier) + { + case AARCH64_OPND_QLF_W: value = 2; break; + case AARCH64_OPND_QLF_X: value = 3; break; + case AARCH64_OPND_QLF_S_B: value = 0; break; + case AARCH64_OPND_QLF_S_H: value = 1; break; + case AARCH64_OPND_QLF_S_S: value = 2; break; + case AARCH64_OPND_QLF_S_D: value = 3; break; + case AARCH64_OPND_QLF_S_Q: value = 0; break; + default: return; + } + insert_field (FLD_rcpc3_size, &inst->value, value, 0); + } + if (inst->opcode->flags & F_SIZEQ) encode_sizeq (inst); if (inst->opcode->flags & F_FPTYPE) diff --git a/opcodes/aarch64-asm.h b/opcodes/aarch64-asm.h index a3bf7bda013..0b4ae7625db 100644 --- a/opcodes/aarch64-asm.h +++ b/opcodes/aarch64-asm.h @@ -112,6 +112,8 @@ AARCH64_DECL_OPD_INSERTER (ins_imm_rotate2); AARCH64_DECL_OPD_INSERTER (ins_x0_to_x30); AARCH64_DECL_OPD_INSERTER (ins_simple_index); AARCH64_DECL_OPD_INSERTER (ins_plain_shrimm); +AARCH64_DECL_OPD_INSERTER (ins_rcpc3_addr_opt_offset); +AARCH64_DECL_OPD_INSERTER (ins_rcpc3_addr_offset); #undef AARCH64_DECL_OPD_INSERTER diff --git a/opcodes/aarch64-dis.c b/opcodes/aarch64-dis.c index 7e088a93c10..0734c448e32 100644 --- a/opcodes/aarch64-dis.c +++ b/opcodes/aarch64-dis.c @@ -1032,6 +1032,70 @@ aarch64_ext_addr_simple (const aarch64_operand *self ATTRIBUTE_UNUSED, return true; } +/* Decode the address operand for rcpc3 instructions with optional load/store + datasize offset, e.g. STILPP , , [{,#-16}]! and + LIDAP , , []{,#-16}. */ +bool +aarch64_ext_rcpc3_addr_opt_offset (const aarch64_operand *self ATTRIBUTE_UNUSED, + aarch64_opnd_info *info, + aarch64_insn code, + const aarch64_inst *inst ATTRIBUTE_UNUSED, + aarch64_operand_error *err ATTRIBUTE_UNUSED) +{ + info->addr.base_regno = extract_field (FLD_Rn, code, 0); + if (!extract_field (FLD_opc2, code, 0)) + { + info->addr.writeback = 1; + + enum aarch64_opnd type; + for (int i = 0; i < AARCH64_MAX_OPND_NUM; i++) + { + aarch64_opnd_info opnd = info[i]; + type = opnd.type; + if (aarch64_operands[type].op_class == AARCH64_OPND_CLASS_ADDRESS) + break; + } + + assert (aarch64_operands[type].op_class == AARCH64_OPND_CLASS_ADDRESS); + int offset = calc_ldst_datasize (inst->operands); + + switch (type) + { + case AARCH64_OPND_RCPC3_ADDR_OPT_PREIND_WB: + case AARCH64_OPND_RCPC3_ADDR_PREIND_WB: + info->addr.offset.imm = -offset; + info->addr.preind = 1; + break; + case AARCH64_OPND_RCPC3_ADDR_OPT_POSTIND: + case AARCH64_OPND_RCPC3_ADDR_POSTIND: + info->addr.offset.imm = offset; + info->addr.postind = 1; + break; + default: + return false; + } + } + return true; +} + +bool +aarch64_ext_rcpc3_addr_offset (const aarch64_operand *self ATTRIBUTE_UNUSED, + aarch64_opnd_info *info, + aarch64_insn code, + const aarch64_inst *inst ATTRIBUTE_UNUSED, + aarch64_operand_error *errors ATTRIBUTE_UNUSED) +{ + info->qualifier = get_expected_qualifier (inst, info->idx); + + /* Rn */ + info->addr.base_regno = extract_field (self->fields[0], code, 0); + + /* simm9 */ + aarch64_insn imm = extract_fields (code, 0, 1, self->fields[1]); + info->addr.offset.imm = sign_extend (imm, 8); + return true; +} + /* Decode the address operand for e.g. stlur , [{, }]. */ bool @@ -2465,6 +2529,26 @@ do_special_decoding (aarch64_inst *inst) value = extract_field (FLD_lse_sz, inst->value, 0); inst->operands[idx].qualifier = get_greg_qualifier_from_value (value); } + /* rcpc3 'size' field. */ + if (inst->opcode->flags & F_RCPC3_SIZE) + { + value = extract_field (FLD_rcpc3_size, inst->value, 0); + for (int i = 0; + aarch64_operands[inst->operands[i].type].op_class != AARCH64_OPND_CLASS_ADDRESS; + i++) + { + if (aarch64_operands[inst->operands[i].type].op_class + == AARCH64_OPND_CLASS_INT_REG) + inst->operands[i].qualifier = get_greg_qualifier_from_value (value & 1); + else if (aarch64_operands[inst->operands[i].type].op_class + == AARCH64_OPND_CLASS_FP_REG) + { + value += (extract_field (FLD_opc1, inst->value, 0) << 2); + inst->operands[i].qualifier = get_sreg_qualifier_from_value (value); + } + } + } + /* size:Q fields. */ if (inst->opcode->flags & F_SIZEQ) return decode_sizeq (inst); diff --git a/opcodes/aarch64-dis.h b/opcodes/aarch64-dis.h index 20387db7b39..2d3af5b3ee3 100644 --- a/opcodes/aarch64-dis.h +++ b/opcodes/aarch64-dis.h @@ -136,6 +136,9 @@ AARCH64_DECL_OPD_EXTRACTOR (ext_imm_rotate2); AARCH64_DECL_OPD_EXTRACTOR (ext_x0_to_x30); AARCH64_DECL_OPD_EXTRACTOR (ext_simple_index); AARCH64_DECL_OPD_EXTRACTOR (ext_plain_shrimm); +AARCH64_DECL_OPD_EXTRACTOR (ext_rcpc3_addr_opt_offset); +AARCH64_DECL_OPD_EXTRACTOR (ext_rcpc3_addr_offset); + #undef AARCH64_DECL_OPD_EXTRACTOR diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index bf506546fd0..9d994c12f1a 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -400,6 +400,8 @@ const aarch64_field fields[] = { 22, 1 }, /* sz: 1-bit element size select. */ { 22, 2 }, /* type: floating point type field in fp data inst. */ { 10, 2 }, /* vldst_size: size field in the AdvSIMD load/store inst. */ + { 12, 4 }, /* opc2: in rcpc3 ld/st pair inst deciding the pre/post-index. */ + { 30, 2 }, /* rcpc3_size: in rcpc3 ld/st pair, field controls Rt/Rt2 width. */ }; enum aarch64_operand_class diff --git a/opcodes/aarch64-opc.h b/opcodes/aarch64-opc.h index f193a90ecc5..b05aaadb5dc 100644 --- a/opcodes/aarch64-opc.h +++ b/opcodes/aarch64-opc.h @@ -210,6 +210,8 @@ enum aarch64_field_kind FLD_sz, FLD_type, FLD_vldst_size, + FLD_opc2, + FLD_rcpc3_size, }; /* Field description. */ From patchwork Fri Jan 12 16:56:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Victor Do Nascimento X-Patchwork-Id: 187794 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:693c:2614:b0:101:6a76:bbe3 with SMTP id mm20csp306068dyc; Fri, 12 Jan 2024 08:59:49 -0800 (PST) X-Google-Smtp-Source: AGHT+IGfoAZCFN/I9Ybk2h5bx7Mh25UVTEkvt8TM/zIpRfW0gwdPnZFr5LYyoGYT+XN5+/YyNxBT X-Received: by 2002:a05:620a:2906:b0:783:4b68:7a90 with SMTP id m6-20020a05620a290600b007834b687a90mr1137143qkp.139.1705078789010; Fri, 12 Jan 2024 08:59:49 -0800 (PST) Received: from server2.sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id j13-20020a05620a0a4d00b00783220e060dsi3252382qka.113.2024.01.12.08.59.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Jan 2024 08:59:48 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=f2ifR8S+; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=f2ifR8S+; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id AC27F385802E for ; Fri, 12 Jan 2024 16:59:48 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2089.outbound.protection.outlook.com [40.107.8.89]) by sourceware.org (Postfix) with ESMTPS id CCD21385842B for ; Fri, 12 Jan 2024 16:56:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CCD21385842B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CCD21385842B Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.8.89 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1705078622; cv=pass; b=NqbFM3XdHhs1QLVTO8DCHB83LMPQBrm98H+tIi+RKwrQSyTdMPGlEDuJf+kYopVU2+USkGPXB8lILvwYOvsQogUtYm9fR3fXY3dmgxvA5krH19Pav9MWkO3cduYLg2WMnDKjDetaBh9jeq8sgUxRu8hfu5f47dUr2W6wq4ZikRw= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1705078622; c=relaxed/simple; bh=5g3VZhP7sqHbbbtJ9cpW53UQRv6leTGy3vUixnO99oA=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=IbXiyN4ySGWJeQAAJB9w3dThknUXOClstYWOnEu+/IDxMlR7D3/CjfdYb4+CUhcFHQ7X9rv1TVzj0Qs2A6g7LQzfx1iO03V33AzCyZCcUahezN+fTmTzpm7tlMx/Nv2a3mE1AExoDnXVxrMr+EhSvu4s7UTvn7le8liEvRJtc5I= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=XNhwHstmgSUGIul9hXeAPj7yEpNoBrdgC0fiAjI7TrtN3bCariaH0Sbx8cug3MwvKkmgT0JnrOaFfmEP/nx+NT/LPAN8R7NnnzEczBbQ7TO1fIW1eGGU2eaNvlCTa5yjbFaEUFbJzAtS3QNMWckSFw3gJCa1iq9Oky1TGyf7z69MQqBkujmNruEPB4cfei21BtDZng2xeHvmuKaVvygIV5qYlUHcxvq9BBb6wCkvpvRaV0chEvNstEKleH6zZMDf3Xv2m5eBeXwpMHkI8kMgDrJkdj4eCwTe4Zle5fgkh/wUDks21NlTKhX+hscQNa50ZcrrqIULy6aMfsLN0XFqsw== ARC-Message-Signature: i=2; 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=VQqk6qvEqVJG9e4hWjVFBEkdy9DfNDhKRmO1ea4cY4E=; b=JwINqdWIfOvXiXomTk1k12qO3TPboSu5lZlQMZ/VYMawFJyL9NGgENxdJnB6aDy98bs1mnj3658wOv5/8SoyH67KK1x/MiPsRM0bcyMSFrP2Y1ziI0WaCcQsVpXiBfsGvUdKLmboGemA+PH2DWj3cNGxwAHNDpDfW8hbxkx1HdUmDYTPWufwP3HJR1ym3fSDNFe3P/oZN065L2Gz5+nh39YyLdkAkizAivo+Ly1BF6pN4LwFe2PB+GEv8LNsB/x7GEw7zGNxXMI/dePKX6Le2uZuS4UeYLz56mi0pMOz4bU8IQP6Rq9SK9Kbx94Co/qXoYU371A8gIC8oRpiNr7X2w== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1, 1, smtp.mailfrom=arm.com] dmarc=[1, 1, header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VQqk6qvEqVJG9e4hWjVFBEkdy9DfNDhKRmO1ea4cY4E=; b=f2ifR8S+d3AMMwsHq6Fl2vePipu6XZIymGEao5n6tpKGF+RqyaMaa2NYZnG8MgWksA+Xa4btIKKpRuyul4cABv4r5iXXND/XX7vSUnC/jCVZjG9Ae4qgmTgebRSO2kqywST+gj9gLsPG6czNkQ8kxwKwVuUEmIsAKeJB+TDGtkk= Received: from AS4P190CA0017.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:5d0::7) by VI1PR08MB10273.eurprd08.prod.outlook.com (2603:10a6:800:1be::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.17; Fri, 12 Jan 2024 16:56:54 +0000 Received: from AM4PEPF00025F9B.EURPRD83.prod.outlook.com (2603:10a6:20b:5d0:cafe::e4) by AS4P190CA0017.outlook.office365.com (2603:10a6:20b:5d0::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.19 via Frontend Transport; Fri, 12 Jan 2024 16:56:54 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM4PEPF00025F9B.mail.protection.outlook.com (10.167.16.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.4 via Frontend Transport; Fri, 12 Jan 2024 16:56:53 +0000 Received: ("Tessian outbound 94d82ba85b1d:v228"); Fri, 12 Jan 2024 16:56:53 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 228728a52fd8db16 X-CR-MTA-TID: 64aa7808 Received: from 1aa63b698dfd.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 3BF7B1E5-56E0-4CB2-B95E-D2C76C5EFE7B.1; Fri, 12 Jan 2024 16:56:47 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 1aa63b698dfd.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 12 Jan 2024 16:56:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JENj28JLUSWQY2Z/5+Kc5S4RiNa3dHv70BcePWvIJY/vMYbu3TjFkcOc7ItQnn7M40QZIrEmnnepJcIco0y8K71owQX0gidEk8eiGwnHCuCNEwgsK0Kcz3dzmUJG8GcMo5O0wL8YakjYW8yfE7z869sf7jaWxWyi/ymCW5e9fwPivlDOySzcDeWUK7XE/zcqdnK9oZQKjulUkvNic28bpW2EDvLg4aRm/lvhODMP9Kfwb1EhfSMKWEZ7+IPQLr9NHce1yaYEpsbfhsDiGbJhfMWWo0CJHEReAs42/8jFpfjpEXpUEkU7gtNkWYutLB30s9fwzhjuFz3yThPYDVLBVw== 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=VQqk6qvEqVJG9e4hWjVFBEkdy9DfNDhKRmO1ea4cY4E=; b=DAPd/SZxme5AuhL+mCeLsecC3T47yo+km5LGB9OkPvz/9/gncMezOD0y77y1z71B3zTvxrL6AHhkX3FEVpYG5cLrZyBMY4oN5MDfkZoMYkyhizGAVy4Kb8lTjByjZFPqx1xfi1GyydQbxWYsGHILF9696lLdjOGztZKeF21OL9i/bCFu0YXD/NohgNboU9/fhnViO5rRHXKn4NvnEbIiEE4FCz123M6lkfF9B1W80KXgWw8tl6KwvdkTALJkv/f/Z/gYgGXn/kut/i+eirFa0/hNRFQAsBNZazLYET6OVkOpOi8Hjuhsp65HQTzNN+Sa2tFostVsGo/d7BDQGGJFZw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VQqk6qvEqVJG9e4hWjVFBEkdy9DfNDhKRmO1ea4cY4E=; b=f2ifR8S+d3AMMwsHq6Fl2vePipu6XZIymGEao5n6tpKGF+RqyaMaa2NYZnG8MgWksA+Xa4btIKKpRuyul4cABv4r5iXXND/XX7vSUnC/jCVZjG9Ae4qgmTgebRSO2kqywST+gj9gLsPG6czNkQ8kxwKwVuUEmIsAKeJB+TDGtkk= Received: from AS8P251CA0019.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:2f2::22) by AS8PR08MB6598.eurprd08.prod.outlook.com (2603:10a6:20b:336::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.19; Fri, 12 Jan 2024 16:56:45 +0000 Received: from AMS1EPF0000004A.eurprd04.prod.outlook.com (2603:10a6:20b:2f2:cafe::85) by AS8P251CA0019.outlook.office365.com (2603:10a6:20b:2f2::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.21 via Frontend Transport; Fri, 12 Jan 2024 16:56:45 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by AMS1EPF0000004A.mail.protection.outlook.com (10.167.16.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7181.14 via Frontend Transport; Fri, 12 Jan 2024 16:56:45 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Fri, 12 Jan 2024 16:56:40 +0000 Received: from e125768.cambridge.arm.com (10.2.78.50) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.32 via Frontend Transport; Fri, 12 Jan 2024 16:56:40 +0000 From: Victor Do Nascimento To: CC: , , Victor Do Nascimento Subject: [PATCH 8/8] aarch64: rcpc3: Add FP load/store insns Date: Fri, 12 Jan 2024 16:56:22 +0000 Message-ID: <20240112165637.2522719-9-victor.donascimento@arm.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20240112165637.2522719-1-victor.donascimento@arm.com> References: <20240112165637.2522719-1-victor.donascimento@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AMS1EPF0000004A:EE_|AS8PR08MB6598:EE_|AM4PEPF00025F9B:EE_|VI1PR08MB10273:EE_ X-MS-Office365-Filtering-Correlation-Id: c748ce50-4770-4957-d651-08dc138f7abc X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: I3FmYM/j6Aghsq9WJj2uvqz6QQbHjpBXON8qIc0Nsvpg5VMZ349jbPm87mCHiSl9ELYvuHvfBB20Da2qcSFDCsNrln6DFPYsZeIUH+FLkYDdfl7hIK4o/It0ijc6VOUUyVTAG+ER4mm8ON7FGwHs+SPOa4mGl+WPm7VprJ37+nVVbT+qaBms2KS6DE8x0DG+4pLB0Gs2IZ1jBQgGmpjz6Q9qYctwVGy0nMQV3RA8z/7fk9UXylHmTjEcon29x/UW1gzS/7v/zP4xtKcv5tJSX4GVAH6azaxqAWckon6GCIyON4jjUcvQNBWB03xYm2wvNhlBhf1CNHNs3WJxVEkuEdWObRjbA3IwFfZ63RGdKKSWQ7WyZMxBcpkrkJ1+NAhTtt91GBTksToshok/cGNZ/I2En/q4iKle1qEj/h+HCLCtx6VGQ8xvOCOukzO+zq+MS5a05Z4OoCHq0qN5kWzAPNOnFIjMTp9RFZAdS/cnCWg+3BPCzUFeM5ySeQGgka8UTUt5okcR9O/PzV2qoREQlnZAv5nKOOBVb7ySIK3K3P/DDvBqBybA8utic7NlyttESS+KwQvCtN58iNwVTPU5FqbR8lD5PN/XxW4MecgXA9UCMhCDxJO+KXRZFa1+cZvArH+yAkkmG7xyBen9tw8L/iBEnwHDFGmb9zHEClYZT2mJXo/K72zpJXCIcZ0b7aiWi9WUWPIsUXc+jg5EpF6WIxWc3Vt9tina1oqr+cWunC2A12j2qqwKZFqUaewx4/VS+9AfYmEq1aWD1PaW88U2Zw== X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230031)(4636009)(396003)(39860400002)(136003)(346002)(376002)(230922051799003)(451199024)(1800799012)(82310400011)(64100799003)(186009)(40470700004)(46966006)(36840700001)(4326008)(2906002)(36756003)(5660300002)(41300700001)(426003)(82740400003)(47076005)(336012)(40460700003)(86362001)(83380400001)(54906003)(81166007)(356005)(316002)(2616005)(36860700001)(8676002)(8936002)(1076003)(70206006)(26005)(70586007)(6666004)(40480700001)(6916009)(7696005)(478600001)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6598 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM4PEPF00025F9B.EURPRD83.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: bd74dfdd-d6e7-4946-91ae-08dc138f7571 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8XPRVzGxK3/VEGbrdHnrfCUXGcHDJf2wIC1iihHZ/ZHUxZo2QhPaoN0HqfiRS8ST/+fShHDFnHZH+24LyosZ2HztljKJegvTRgb9mCeOmGFpaoiaLnmWNjTTjshgm1edu/XyS5vRYEsuSO80c9HQzrKo2mXXWBlLOii9LwytS/dycFtTMn4t9NkQKHnCyAl3dDMfljiLXYNKC9q4avwLFllEwhMfU5JCs6es2jeSIqzLiK5M3hu0Td4phJ+ble/u7Wi7iHcYEyHh6lQrGTsCHdEJkt/mS8wEoDutVdqud9VMEWtkb8UrdRc4dsdd1Z8jVgA42E769cV3fDmU72fwXdsNRZKVUwgn160DapsUuH668fy8y4NO0BOF0luB4oEhcZk7/5RMU4l+ymF6FpTAed2cpTfQVHLx2m3TDHakfupzRNdx/su9Uyv/iJWNQ066k01pQN05sb5BIN2fr0BBV828Og8tMyRD32PJO6pq+azYv4uy8HFLLXiwHoWa6lLNjNOaeh7ENUak4TFJo8sqn1Ok4ikm9QnxWk2NTXfJhs/CG2LawPf/CTBt7n8juPObjrvwtVhX6pdrLZ4M6H6S14H0R8c6rxUwghCI1uT6FB4xmeSPfgot6w6TvK9/u6BGqsyrydfPUvNNmS1Rnul/OTsuBe6XkvYpfdUumR76MtlKduJ/2hOkUae+g7bbbR3OJPddD6XYsHDDVNDQvqGePw== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230031)(4636009)(376002)(346002)(39860400002)(396003)(136003)(230922051799003)(451199024)(1800799012)(186009)(82310400011)(64100799003)(46966006)(36840700001)(83380400001)(336012)(1076003)(426003)(5660300002)(26005)(36860700001)(82740400003)(47076005)(2616005)(8936002)(4326008)(6666004)(8676002)(478600001)(54906003)(7696005)(6916009)(316002)(2906002)(70206006)(70586007)(41300700001)(81166007)(86362001)(36756003)(40480700001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2024 16:56:53.9433 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c748ce50-4770-4957-d651-08dc138f7abc X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM4PEPF00025F9B.EURPRD83.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB10273 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1787904696281382656 X-GMAIL-MSGID: 1787904696281382656 Along with the relevant unit-tests, this adds the following rcpc3 instructions: STL1 { .D }[], [] LDAP1 { .D }[], [] LDAPUR , [{, #}] LDAPUR , [{, #}] LDAPUR , [{, #}] LDAPUR
, [{, #}] LDAPUR , [{, #}] STLUR , [{, #}] STLUR , [{, #}] STLUR , [{, #}] STLUR
, [{, #}] STLUR , [{, #}] with `#' taking on a signed 8-bit integer value in the range [-256,255] and `index' the values 0 or 1. --- gas/testsuite/gas/aarch64/rcpc3-fp-fail.d | 3 +++ gas/testsuite/gas/aarch64/rcpc3-fp-fail.l | 13 +++++++++++ gas/testsuite/gas/aarch64/rcpc3-fp-fail.s | 27 +++++++++++++++++++++++ gas/testsuite/gas/aarch64/rcpc3-fp.d | 26 ++++++++++++++++++++++ gas/testsuite/gas/aarch64/rcpc3-fp.s | 21 ++++++++++++++++++ opcodes/aarch64-tbl.h | 4 ++++ 6 files changed, 94 insertions(+) create mode 100644 gas/testsuite/gas/aarch64/rcpc3-fp-fail.d create mode 100644 gas/testsuite/gas/aarch64/rcpc3-fp-fail.l create mode 100644 gas/testsuite/gas/aarch64/rcpc3-fp-fail.s create mode 100644 gas/testsuite/gas/aarch64/rcpc3-fp.d create mode 100644 gas/testsuite/gas/aarch64/rcpc3-fp.s diff --git a/gas/testsuite/gas/aarch64/rcpc3-fp-fail.d b/gas/testsuite/gas/aarch64/rcpc3-fp-fail.d new file mode 100644 index 00000000000..31c12793a03 --- /dev/null +++ b/gas/testsuite/gas/aarch64/rcpc3-fp-fail.d @@ -0,0 +1,3 @@ +#name: RCPC3 fp load/store illegal +#as: -march=armv8.3-a+rcpc3 -mno-verbose-error +#error_output: rcpc3-fp-fail.l diff --git a/gas/testsuite/gas/aarch64/rcpc3-fp-fail.l b/gas/testsuite/gas/aarch64/rcpc3-fp-fail.l new file mode 100644 index 00000000000..20c08f8901a --- /dev/null +++ b/gas/testsuite/gas/aarch64/rcpc3-fp-fail.l @@ -0,0 +1,13 @@ +[^:]+: Assembler messages: +[^:]+:3: Error: register element index out of range 0 to 1 at operand 1 -- `stl1 {v1.d}\[-1\],\[x1\]' +[^:]+:6: Error: register element index out of range 0 to 1 at operand 1 -- `stl1 {v1.d}\[2\],\[x1\]' +[^:]+:8: Error: register element index out of range 0 to 1 at operand 1 -- `ldap1 {v2.d}\[-1\],\[sp\]' +[^:]+:11: Error: register element index out of range 0 to 1 at operand 1 -- `ldap1 {v2.d}\[2\],\[sp\]' +[^:]+:13: Error: immediate value out of range -256 to 255 at operand 2 -- `ldapur b1,\[x1,#-257\]' +[^:]+:16: Error: immediate value out of range -256 to 255 at operand 2 -- `ldapur b1,\[x1,#256\]' +[^:]+:18: Error: immediate value out of range -256 to 255 at operand 2 -- `stlur q1,\[x1,#-257\]' +[^:]+:21: Error: immediate value out of range -256 to 255 at operand 2 -- `stlur q1,\[x1,#256\]' +[^:]+:23: Error: invalid addressing mode at operand 2 -- `ldapur b1,\[x1\],#255' +[^:]+:24: Error: invalid addressing mode at operand 2 -- `ldapur b1,\[x1,#-255\]!' +[^:]+:26: Error: invalid addressing mode at operand 2 -- `stlur b1,\[x1\],#255' +[^:]+:27: Error: invalid addressing mode at operand 2 -- `stlur b1,\[x1,#-255\]!' diff --git a/gas/testsuite/gas/aarch64/rcpc3-fp-fail.s b/gas/testsuite/gas/aarch64/rcpc3-fp-fail.s new file mode 100644 index 00000000000..d5d92002c0f --- /dev/null +++ b/gas/testsuite/gas/aarch64/rcpc3-fp-fail.s @@ -0,0 +1,27 @@ +.text + + stl1 { v1.d }[-1], [x1] // BAD + stl1 { v1.d }[0], [x1] // OK + stl1 { v1.d }[1], [x1] // OK + stl1 { v1.d }[2], [x1] // BAD + + ldap1 { v2.d }[-1], [sp] // BAD + ldap1 { v2.d }[0], [sp] // OK + ldap1 { v2.d }[1], [sp] // OK + ldap1 { v2.d }[2], [sp] // BAD + + ldapur b1, [x1, #-257] // BAD + ldapur b1, [x1, #-256] // OK + ldapur b1, [x1, #255] // OK + ldapur b1, [x1, #256] // BAD + + stlur q1, [x1, #-257] // BAD + stlur q1, [x1, #-256] // OK + stlur q1, [x1, #255] // OK + stlur q1, [x1, #256] // BAD + + ldapur b1, [x1], #255 // BAD + ldapur b1, [x1, #-255]! // BAD + + stlur b1, [x1], #255 // BAD + stlur b1, [x1, #-255]! // BAD diff --git a/gas/testsuite/gas/aarch64/rcpc3-fp.d b/gas/testsuite/gas/aarch64/rcpc3-fp.d new file mode 100644 index 00000000000..b070e42ade5 --- /dev/null +++ b/gas/testsuite/gas/aarch64/rcpc3-fp.d @@ -0,0 +1,26 @@ +#name: RCPC3 fp load/store +#as: -march=armv8.2-a+rcpc3 +#objdump: -dr + +.*: file format .* + +Disassembly of section \.text: + +0+ <.*>: + 0: 0d4187e1 ldap1 {v1.d}\[0], \[sp] + 4: 4d418422 ldap1 {v2.d}\[1], \[x1] + 8: 0d018443 stl1 {v3.d}\[0], \[x2] + c: 4d018464 stl1 {v4.d}\[1], \[x3] + 10: 1d400be1 ldapur b1, \[sp\] + 14: 1d500be1 ldapur b1, \[sp, #-256\] + 18: 1d4ffbe1 ldapur b1, \[sp, #255\] + 1c: 5d400842 ldapur h2, \[x2\] + 20: 9d400863 ldapur s3, \[x3\] + 24: dd400884 ldapur d4, \[x4\] + 28: 1dc00be1 ldapur q1, \[sp\] + 2c: 1d000be1 stlur b1, \[sp\] + 30: 1d100be1 stlur b1, \[sp, #-256\] + 34: 1d0ffbe1 stlur b1, \[sp, #255\] + 38: 9d000863 stlur s3, \[x3\] + 3c: dd000884 stlur d4, \[x4\] + 40: 1d800be1 stlur q1, \[sp\] diff --git a/gas/testsuite/gas/aarch64/rcpc3-fp.s b/gas/testsuite/gas/aarch64/rcpc3-fp.s new file mode 100644 index 00000000000..d99f96d8cb4 --- /dev/null +++ b/gas/testsuite/gas/aarch64/rcpc3-fp.s @@ -0,0 +1,21 @@ +.text + + ldap1 {v1.d}[0], [sp] + ldap1 {v2.d}[1], [x1] + stl1 {v3.d}[0], [x2] + stl1 {v4.d}[1], [x3] + + ldapur b1, [sp] + ldapur b1, [sp, #-256] + ldapur b1, [sp, #255] + ldapur h2, [x2] + ldapur s3, [x3] + ldapur d4, [x4] + ldapur q1, [sp] + + stlur b1, [sp] + stlur b1, [sp, #-256] + stlur b1, [sp, #255] + stlur s3, [x3] + stlur d4, [x4] + stlur q1, [sp] diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h index 5a403811102..5cc7d031e5a 100644 --- a/opcodes/aarch64-tbl.h +++ b/opcodes/aarch64-tbl.h @@ -4164,6 +4164,10 @@ const struct aarch64_opcode aarch64_opcode_table[] = RCPC3_INSN ("stilp", 0x19000800, 0x3fe0ec00, rcpc3, OP3 (Rt, Rs, RCPC3_ADDR_OPT_PREIND_WB), QL_R2NIL, F_RCPC3_SIZE), RCPC3_INSN ("ldapr", 0x19c00800, 0x3ffffc00, rcpc3, OP2 (Rt, RCPC3_ADDR_POSTIND), QL_R1NIL, F_RCPC3_SIZE), RCPC3_INSN ("stlr", 0x19800800, 0x3ffffc00, rcpc3, OP2 (Rt, RCPC3_ADDR_PREIND_WB), QL_R1NIL, F_RCPC3_SIZE), + RCPC3_INSN ("stl1", 0x0d018400, 0xbffffc00, rcpc3, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_IMM_D, F_OD(1)), + RCPC3_INSN ("ldap1", 0x0d418400, 0xbffffc00, rcpc3, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_IMM_D, F_OD(1)), + RCPC3_INSN ("ldapur", 0x1d400800, 0x3f600C00, rcpc3, OP2 (Ft, RCPC3_ADDR_OFFSET), QL_LDST_FP, F_RCPC3_SIZE), + RCPC3_INSN ("stlur", 0x1d000800, 0x3f600C00, rcpc3, OP2 (Ft, RCPC3_ADDR_OFFSET), QL_LDST_FP, F_RCPC3_SIZE), /* Move wide (immediate). */ CORE_INSN ("movn", 0x12800000, 0x7f800000, movewide, OP_MOVN, OP2 (Rd, HALF), QL_DST_R, F_SF | F_HAS_ALIAS), CORE_INSN ("mov", 0x12800000, 0x7f800000, movewide, OP_MOV_IMM_WIDEN, OP2 (Rd, IMM_MOV), QL_DST_R, F_SF | F_ALIAS | F_CONV),