From patchwork Tue Nov 8 10:09:55 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 81277 Delivered-To: patch@linaro.org Received: by 10.140.97.165 with SMTP id m34csp1463169qge; Tue, 8 Nov 2016 02:11:22 -0800 (PST) X-Received: by 10.99.159.17 with SMTP id g17mr17694363pge.149.1478599882711; Tue, 08 Nov 2016 02:11:22 -0800 (PST) Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id sh1si30036693pac.308.2016.11.08.02.11.22 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Nov 2016 02:11:22 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-return-94399-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org; spf=pass (google.com: domain of binutils-return-94399-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=binutils-return-94399-patch=linaro.org@sourceware.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:cc :subject:content-type; q=dns; s=default; b=RbZs2zqR1jK8AkY3prHvB kiutDtB3vGa7I38YY7N/2rgM59nDraIpmvoHA+VF3a2Ad9pO9lm8znYGKYhKvT3e WnxknHiiu/WuV6/RzDNWE5rrYxklTqDf0tTW61rqMBkqmLztaoU8v9TM101zZrmO cr8oUtb2vhO12PiahT2lzk= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:cc :subject:content-type; s=default; bh=e8p05iqAKCNeK3GhOegmCYc+8iE =; b=jH/XGD0hxUdApb5v62GuZ1k0GadHVANm75/zTjMdlDy6siDovbShr/Icncx RPxuD0G71B9Eue4F4f0Pw+BD2tBG1E6FJyiTIVSRN+GU0ZYExocuki93UPWHxF4E WW6L7lBUAzsq9rQTZpFjMFqmdBvosgkEqn3FBaV4xpmR7qbI= Received: (qmail 108607 invoked by alias); 8 Nov 2016 10:10:17 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Delivered-To: mailing list binutils@sourceware.org Received: (qmail 108573 invoked by uid 89); 8 Nov 2016 10:10:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy=HX-Exchange-Antispam-Report-Test:180628864354917, keys, mrs, 20161108 X-HELO: EUR03-AM5-obe.outbound.protection.outlook.com Received: from mail-eopbgr30056.outbound.protection.outlook.com (HELO EUR03-AM5-obe.outbound.protection.outlook.com) (40.107.3.56) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 08 Nov 2016 10:10:04 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Received: from [10.2.206.73] (217.140.96.140) by HE1PR0802MB2155.eurprd08.prod.outlook.com (10.172.126.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.659.11; Tue, 8 Nov 2016 10:10:00 +0000 Message-ID: <5821A473.3000907@arm.com> Date: Tue, 8 Nov 2016 10:09:55 +0000 From: Szabolcs Nagy User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-Version: 1.0 To: Binutils CC: Subject: [PATCH][AArch64] Add ARMv8.3 pointer authentication key registers X-ClientProxiedBy: VI1PR05CA0020.eurprd05.prod.outlook.com (10.162.33.158) To HE1PR0802MB2155.eurprd08.prod.outlook.com (10.172.126.15) X-MS-Office365-Filtering-Correlation-Id: 089dd7fa-e125-493b-e469-08d407bf66e5 X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2155; 2:s+D+tEjRtZsO8bIhNOWmA8dYYl24sUr0tvpuN9bNG1BeShMaa0Am/vJGAB+5UsxZ5hSxzwqnwyAMcHXZnOG9uJTYKYTFWUm70DuD2ZTVLuXuvNUSVALxbAzp8bd+0LV4xu92ujRLFFsozh/QJryvL85d83sSGsRtCbOUGvr0QRR7gV1mc++8n9g8ZKDygvQHNxdTSvmreEqh6KqMjUh2Zg==; 3:Cpda13qaH3W7OTody9ugML/vmh3fG2zyi8D333M1N6/RJ8tSp3dEKME7Zz2ROquEKaSMqSHLg6woyX1g28lmt4CeUddQ5s+GmUxrJpPxynfTcMpXPkHqN1YDh+vsU2mZFYmjWV/B8hm7w40p9QCB9A==; 25:OvzBNFEnFpl3+0xRSG2KZl7rA8KVMRGurCjAAyK0E2AGuMm1SDmQgIqQscG+KFlnMO8RX9uDRfKXaqdQsPoAOX4mhRk6GASTiUOMuY+hZ4rI9TPUIaQ88cGuVY8il5i/GAp4xzUKkuD8mT1Z1L89zCsAk8kDqeN2Eq8EW4BkoBFhfuVxe+VTsBiJET9nrtjJPcnp6LznHzL2bapKVa958h6lTz7HSkVB0KHULwklTObbHwoZV9P05PFSZhxeF6pHVwGgj3UuTDsAs8rsxsUMSOXMxsdJIxzN2zvcxSAX5cYtrzliZtp5pqfQl3WjLt6+5zyGMv86Jz3IvA8Qz7OSIETB+CwKlNQq+9LPLpaAnTrpw6kTDEL+5FYWJuzMcvMHlV9/zoDz/v9fY2gPGG3j/+kd86Y+S66qMVyCNUmNinELoTXrPcTorwAff2p0fSKD6nN4J2l7Lu5SnaZlo9vhsYOaxPMDr8408wKOAV1ND7vObscEJKyKQO9PYNlC/+TH X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0802MB2155; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2155; 31:javmQ73bg0wUEGbXhEA5et+OFR1/SG1bJ9cuBdy/0xZjm64p9+61FapUnqOC/4UaftQbrWH8ChayNCu0cssxB5YjyZdJiRTNA77CbjF0cUESrMP0XfDg5hgYVTXUE6hlhPWnEVkI0VJiWQ/49qVsS2XpWnyLd1Ck0/nrVc+F0ph70q3YS0EATLHdLABK57lgv1LWxQhuwzozAIOlJQkENw2HIiAxfoxFTczuN+bq+W6y0GWxloW2dOhf7PHVDo0rlfRZkIBIiZjf6VHJ9BJ2ig==; 20:YY1niYY6MjtqVSrTsqmyDwVG7rlgN32fbslVMKvbpos9ocQaZUxpnwMgUXmPCr8yHYDB6bjq94lZ9uFvc8Umc5D/ObAk5KayfwSW/uuFHdPE0gwnOWdnthgTC8E4MJ1OR5wbnywIcsf5fLGm0kR8nZM0XrVcaXCzeSTfaHccHus=; 4:d94XIzgx6LqUPUOTFUya72XsXipeecmOCMFRZQPxDpbX4aa9m83IH2uzTxe4B/5SpV68VtGdu2mbKxPalD0aH3z8huVWe7QoVOdBTha0woscbtbO01P8ogERliE4TS8tN6/NrkHW6g6HCivr4fvUw9jztjgha6Hcx+4fzMgeeJ1eP6Y5KGtiQFWKwovaZUlMrUraWeXe9WtojCBUWJ4/ThKVb9MLqEMzCdGjpTWj4RK0jJroJ028D9GRfSpX0NPmTEk7HaKEEgjaKYmrJ5gTxffgIDtJlxSvslaIUkLuTWF/NZA/4csPWiO84jEZwvXHcRACw3vvAF722xmwsaFtlXexZuDhg9XTo6MxR2kUVSRUEszN0mvdjE22vqdKblevzdtITyH7V+cqLfzXPMIxIPpmeEOse/H+OOLW/YoupWwLGWDC7ybarEFSL8nSllMCq9m/CX/japKpDG/9XaE5Rb/YHgFF4wsNcw0qtXk2q30= NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(102415321)(6040176)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026); SRVR:HE1PR0802MB2155; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0802MB2155; X-Forefront-PRVS: 01208B1E18 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6049001)(7916002)(189002)(199003)(377424004)(80316001)(97736004)(2906002)(189998001)(105586002)(568964002)(87266999)(2476003)(6666003)(4610100001)(42186005)(6916009)(5000100001)(81166006)(101416001)(92566002)(229853001)(54356999)(586003)(5890100001)(66066001)(106356001)(33656002)(50986999)(59896002)(8676002)(110136003)(3846002)(21490400002)(81156014)(7846002)(450100001)(36756003)(5660300001)(512874002)(65816999)(6116002)(270700001)(68736007)(4326007)(77096005)(7736002)(83506001)(305945005)(64126003)(4001350100001)(84326002)(65806001)(65956001)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0802MB2155; H:[10.2.206.73]; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0802MB2155; 23:KVNcACotj0QtBntVC4fXY2qWA8+gh/rWftSGBY/?= =?us-ascii?Q?VX5xjEnlOhFZ8ZuZPO967f/ppn77m/UHxWIJUKYz2znVHSGkKvilsgOiDf3K?= =?us-ascii?Q?jttkQ6ZaqIf/bi8rOrXwwsk8o+n7/u6Z+YRALcln/aP5HMylxorkcy/vxEHD?= =?us-ascii?Q?PQNvY7WdGZtJgLS9VkKCGI8q7MlugRjmMRjG6+pOb24drPwF8ZdQpCQYu1Q7?= =?us-ascii?Q?WCu0LCoyCX9Z99Cl8RnP3luBAgIMLq456qEXZ5yrLpn/9wSfJmtfo52roca2?= =?us-ascii?Q?BMW+bu5N7tFkWyMbtdcawvotDsDRv/nZdbkHcKwUAJdVzXGh0ROuT6iDl7I7?= =?us-ascii?Q?Kxc8P2JvmSpygLvbMGha7OaTkF5neMhdh8A81jWfUSW9TIlXT7J4qLWJUWkc?= =?us-ascii?Q?v7sozQRXKDZJxxLmuZZzJpTW+FfPtMYdW7s5gxAvai6HpCtfOLOyy6BdRHIc?= =?us-ascii?Q?Fr9g53/wz3KnGM1tH42/M1p0sXCUnfjgi/3RF5jcXW0A9d9SHBaos3xHd9zl?= =?us-ascii?Q?5KbwbM4F2YhTJaHy/jJUmeXZ6sLSYXAsC9SWNOESBTnWvqy7jUrhJUlPCSUe?= =?us-ascii?Q?cioGaUz7qNjDF/xkgCA6keBvW4GOUJULl7FOe4BJxv0FheUrjQahsR63UyWd?= =?us-ascii?Q?Xjr1oXZ2lrH5bmqgo1reEeBcbBcFh1X1+tVC3J++lC5AgCf50FQzzKS+IlwB?= =?us-ascii?Q?mcYpilM1bR4alE4Wog2guf/fd1UG1mqxfgI9z9XLAgXQyl3dfkR8WRohRchE?= =?us-ascii?Q?Upm0JrdvkBBKxwWN0JJfcx0CA7NYWoNGosm3PFiWlI5YgFMs7i/mKxbfU3IH?= =?us-ascii?Q?SnHv8G5smIv+dT+GbwzQW1aSapHnfxvFPJP5BTEJeRcuuuPgIPKIuISnXx4f?= =?us-ascii?Q?MSSDIfqlUMsYd2rkBnS0l1C7HqHzoFeqjpnvThHphCLTEBvMGPza5eQGG9Yn?= =?us-ascii?Q?z1RNUE8X5T9mpOYE2dxKG9U4cIE6nw4HXyXqrqm+gvOvASFpqlvofXsuVy7R?= =?us-ascii?Q?YtVfFszghcpTeZoq6Bn+FKDzs30mtnv8/4tOQRts9D0vGnyK/wE6x7aIhnGu?= =?us-ascii?Q?Y7UKmeAuf6a74j+Nd0snU6XxbpDzrF8m977m3dIsqHl9/znE/6tkA1Mid3SU?= =?us-ascii?Q?5Yh7nK+YqgNvVL/SR+COCQr0rUtfCu0NDosxVZfqN9aMQ0SGMVkbcw7ijiJA?= =?us-ascii?Q?Yyi3oSqt9K0owy57inrHMQ3P3UKObAK3UcTUcrS+Tx9VtIZ+xCE0VGikIR+i?= =?us-ascii?Q?aGR4yyMB1otvPCsBoPLIGmjrITcAJvQt/D6YGrhBm0XelwgeBLRHGYc3en/u?= =?us-ascii?Q?wM75nd/evj0mxNgC04iC2YytnFEUrvjgMO5Li14fe53ENiQSjIQTsbraDxox?= =?us-ascii?Q?i5mMFZQ0hD+9lMJiF5jfV+HYlvaalW288haPuWp9XI69YP4FEWaioxZ525Pd?= =?us-ascii?Q?QQsNt6QLStg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2155; 6:Q2QDpYoho7Rnfnz+hyXN8Q13jyIID2olgQeIyWmek9Aw5ovHQse6/t+tPdSKsR5F9AW47nq5B9WLDfH6/amRzpqGOFwt9RbmQUrLYMLdj0NU2FeRTici1CfPoSowq1GGozwMwNEzgMIAuZUavMY+5exDkRup756TPj23CLQDgdAdhJEaP+o9rCRmMhO2Q9BHY2k2ssrPmaLBcTzKqEUbl/j+FL7VM7fC29A46Wv1eyKOwPhpLJF7T89ZwaGmmHzk/0Cn/yirV1c9K+9A4CraVsxoo/l3qDbzvm3UNZb9ubkknM9/oCi9n1rwdYkqk/46P9fbSXvD68DD8J/KJEn1oyKM2Sv6DZ6rW9xtgikIHdw=; 5:1yCYzHhuZR9oKhw4ikCYCEOquh55CL2bV9nRbWjiObBJ0gZU2LfdoZh+/fWqCE2jDytkZ3v6S4wsv64lKGB99ILFU7Z+UZrthDUCQzegxplnSvjy8zBw87ttier7PKg6MQleTfBcWYA4Xz0gE3RqReJr0JewbKqdUp5ObGBB1kI=; 24:RT0mzrw/+Lqc8pPhN7Jb31sKhBKKa0d/wgmvJHoJ2vSAk//P5a/kohtLcV3BABHl+yxP/y8XPrvSbaPGhecIPLS3PN+Hg63YOJkj9mSG4v4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2155; 7:pG2TLq5W7OlKp38XhJfZYkVXSSwtc5slh7bJvHp+7i7LQI2PE2PoMBfrN+Ud9NMvCRQ7Gy4FyzdhJq1oryDgGsiHzHb+l0v+RejHOqCJCF7XRFkViGTOna7XQg0e2BSlxlRpo/8VHrufsqdW7mTb6jIJoHrCtclb2MwjoUjqAv0p5mtoG6kd6gRPrk6UKTv8ARzOuMpfdiLzvldQRUryZVL+l57o+FrbFnkJLDcMWd77v5Hxrm6Up2paqHiXP/oyy0kn4AvdFJI8tr+s5jTCbmrtMf+k94jpJ89KUHRic6SdtIEBEOdLv3lxMLSQgZW0Y4AqBDQEm7PgezGFstAc/c+xTLI8RUAhUi1j2YeU2zE= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2016 10:10:00.9570 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0802MB2155 X-IsSubscribed: yes Add support for system registers introduced in ARMv8.3 for pointer authentication. opcodes/ 2016-11-08 Szabolcs Nagy * aarch64-opc.c (aarch64_sys_regs): Add apiakeylo_el1, apiakeyhi_el1, apibkeylo_el1, apibkeyhi_el1, apdakeylo_el1, apdakeyhi_el1, apdbkeylo_el1, apdbkeyhi_el1, apgakeylo_el1 and apgakeyhi_el1. (aarch64_sys_reg_supported_p): Add feature test for new registers. gas/testsuite/ 2016-11-08 Szabolcs Nagy * gas/aarch64/sysreg-3.s: New. * gas/aarch64/sysreg-3.d: New. * gas/aarch64/illegal-sysreg-3.l: New. * gas/aarch64/illegal-sysreg-3.d: New. diff --git a/gas/testsuite/gas/aarch64/illegal-sysreg-3.d b/gas/testsuite/gas/aarch64/illegal-sysreg-3.d new file mode 100644 index 0000000..309391b --- /dev/null +++ b/gas/testsuite/gas/aarch64/illegal-sysreg-3.d @@ -0,0 +1,3 @@ +#as: -march=armv8-a +#source: sysreg-3.s +#error-output: illegal-sysreg-3.l diff --git a/gas/testsuite/gas/aarch64/illegal-sysreg-3.l b/gas/testsuite/gas/aarch64/illegal-sysreg-3.l new file mode 100644 index 0000000..23aac82 --- /dev/null +++ b/gas/testsuite/gas/aarch64/illegal-sysreg-3.l @@ -0,0 +1,21 @@ +[^:]*: Assembler messages: +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apiakeylo_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apiakeylo_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apiakeyhi_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apiakeyhi_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apibkeylo_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apibkeylo_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apibkeyhi_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apibkeyhi_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apdakeylo_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apdakeylo_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apdakeyhi_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apdakeyhi_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apdbkeylo_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apdbkeylo_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apdbkeyhi_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apdbkeyhi_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apgakeylo_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apgakeylo_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apgakeyhi_el1' +[^:]*:[0-9]+: Error: selected processor does not support system register name 'apgakeyhi_el1' diff --git a/gas/testsuite/gas/aarch64/sysreg-3.d b/gas/testsuite/gas/aarch64/sysreg-3.d new file mode 100644 index 0000000..4329377 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg-3.d @@ -0,0 +1,28 @@ +#objdump: -dr +#as: -march=armv8.3-a + +.*: file .* + +Disassembly of section \.text: + +0000000000000000 <.*>: + 0: d5182100 msr apiakeylo_el1, x0 + 4: d5382100 mrs x0, apiakeylo_el1 + 8: d5182121 msr apiakeyhi_el1, x1 + c: d5382121 mrs x1, apiakeyhi_el1 + 10: d5182142 msr apibkeylo_el1, x2 + 14: d5382142 mrs x2, apibkeylo_el1 + 18: d5182163 msr apibkeyhi_el1, x3 + 1c: d5382163 mrs x3, apibkeyhi_el1 + 20: d5182204 msr apdakeylo_el1, x4 + 24: d5382204 mrs x4, apdakeylo_el1 + 28: d5182225 msr apdakeyhi_el1, x5 + 2c: d5382225 mrs x5, apdakeyhi_el1 + 30: d5182246 msr apdbkeylo_el1, x6 + 34: d5382246 mrs x6, apdbkeylo_el1 + 38: d5182267 msr apdbkeyhi_el1, x7 + 3c: d5382267 mrs x7, apdbkeyhi_el1 + 40: d5182308 msr apgakeylo_el1, x8 + 44: d5382308 mrs x8, apgakeylo_el1 + 48: d5182329 msr apgakeyhi_el1, x9 + 4c: d5382329 mrs x9, apgakeyhi_el1 diff --git a/gas/testsuite/gas/aarch64/sysreg-3.s b/gas/testsuite/gas/aarch64/sysreg-3.s new file mode 100644 index 0000000..e2ffc81 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sysreg-3.s @@ -0,0 +1,21 @@ +/* sysreg-3.s Test file for ARMv8.3 system registers. */ + + .macro test sys_reg xreg + msr \sys_reg, \xreg + mrs \xreg, \sys_reg + .endm + + .text + + test sys_reg=apiakeylo_el1 xreg=x0 + test sys_reg=apiakeyhi_el1 xreg=x1 + test sys_reg=apibkeylo_el1 xreg=x2 + test sys_reg=apibkeyhi_el1 xreg=x3 + + test sys_reg=apdakeylo_el1 xreg=x4 + test sys_reg=apdakeyhi_el1 xreg=x5 + test sys_reg=apdbkeylo_el1 xreg=x6 + test sys_reg=apdbkeyhi_el1 xreg=x7 + + test sys_reg=apgakeylo_el1 xreg=x8 + test sys_reg=apgakeyhi_el1 xreg=x9 diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index 333be5a..8e89b5b 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -3650,6 +3650,16 @@ const aarch64_sys_reg aarch64_sys_regs [] = { "tcr_el3", CPENC(3,6,C2,C0,2), 0 }, { "tcr_el12", CPENC (3, 5, C2, C0, 2), F_ARCHEXT }, { "vtcr_el2", CPENC(3,4,C2,C1,2), 0 }, + { "apiakeylo_el1", CPENC (3, 0, C2, C1, 0), F_ARCHEXT }, + { "apiakeyhi_el1", CPENC (3, 0, C2, C1, 1), F_ARCHEXT }, + { "apibkeylo_el1", CPENC (3, 0, C2, C1, 2), F_ARCHEXT }, + { "apibkeyhi_el1", CPENC (3, 0, C2, C1, 3), F_ARCHEXT }, + { "apdakeylo_el1", CPENC (3, 0, C2, C2, 0), F_ARCHEXT }, + { "apdakeyhi_el1", CPENC (3, 0, C2, C2, 1), F_ARCHEXT }, + { "apdbkeylo_el1", CPENC (3, 0, C2, C2, 2), F_ARCHEXT }, + { "apdbkeyhi_el1", CPENC (3, 0, C2, C2, 3), F_ARCHEXT }, + { "apgakeylo_el1", CPENC (3, 0, C2, C3, 0), F_ARCHEXT }, + { "apgakeyhi_el1", CPENC (3, 0, C2, C3, 1), F_ARCHEXT }, { "afsr0_el1", CPENC(3,0,C5,C1,0), 0 }, { "afsr1_el1", CPENC(3,0,C5,C1,1), 0 }, { "afsr0_el2", CPENC(3,4,C5,C1,0), 0 }, @@ -4026,6 +4036,20 @@ aarch64_sys_reg_supported_p (const aarch64_feature_set features, && !AARCH64_CPU_HAS_FEATURE (features, AARCH64_FEATURE_PROFILE)) return FALSE; + /* ARMv8.3 Pointer authentication keys. */ + if ((reg->value == CPENC (3, 0, C2, C1, 0) + || reg->value == CPENC (3, 0, C2, C1, 1) + || reg->value == CPENC (3, 0, C2, C1, 2) + || reg->value == CPENC (3, 0, C2, C1, 3) + || reg->value == CPENC (3, 0, C2, C2, 0) + || reg->value == CPENC (3, 0, C2, C2, 1) + || reg->value == CPENC (3, 0, C2, C2, 2) + || reg->value == CPENC (3, 0, C2, C2, 3) + || reg->value == CPENC (3, 0, C2, C3, 0) + || reg->value == CPENC (3, 0, C2, C3, 1)) + && !AARCH64_CPU_HAS_FEATURE (features, AARCH64_FEATURE_V8_3)) + return FALSE; + return TRUE; }