From patchwork Fri Apr 4 21:10:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ezra Sitorus X-Patchwork-Id: 109888 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6EB733857007 for ; Fri, 4 Apr 2025 21:11:42 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6EB733857007 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=Ryk77Ov+; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=Ryk77Ov+ X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on20618.outbound.protection.outlook.com [IPv6:2a01:111:f403:2613::618]) by sourceware.org (Postfix) with ESMTPS id 9A1253857BA7 for ; Fri, 4 Apr 2025 21:10:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9A1253857BA7 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 9A1253857BA7 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2613::618 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1743801050; cv=pass; b=fhk+PWwQEIWa3G6SgWCHNNW1aErviCIAha6t6vZEL6I7uD7A48qmopo4z1TCP4E6ifcIbafHmwoRwgXnAkgTD8InqGp3q0L611Cf/Q0ntp0adpJ6hQdKNqbqNyw5ZtzxNeEwZC+m3QZPlgTnM02F1qV2z4gyktaL2gP0cQyzGoo= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1743801050; c=relaxed/simple; bh=/Jgi15yoL6lLIF4tzMymaSKtEnIpjqfnk3kYQOSxwv8=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=HV5CYwTajbGnFyue6ngXv3gaEWanAR4Vcq4042I/Yjx3qliDWpeGhACE2DgUULTkJyuYnnH792tA3sc7k9IKWt4LNZkzUycFd5qMLLUC3KeM/T3x5OF244JEbbd2maYs1JG1g62IimaA4eWq43jk5k2tn6QXVh/Hi7Rn2AhtlEI= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9A1253857BA7 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=lYtjsdc+AZvnGoQp5jeJHZsIEXvlcp5O+6DN/CksCeJQIXWtuIdE/Ha2tY+7bbubaU4jJcCVYjRA4XFfoS/BL9XVSLBDmAPLR+EOZN2/qmDtfOmM+SkkAue+3rhqMCAqq/cSAfQofzI8rG4XfZ57GaMf1v+qYr7FYPGt591pxXcCSuu68iyg8dAgPHeB21eeXLro9XdDrvVc95IRcWrzo9LZVr/UPaGJlNvnHdrkJU2rZSJKaeA22PTwBr4MWX76dYxgHSgtn0mKLE/uwibuxFH37o+RNtIg0yoKz9yQ1Tzxh55eLUavQBhld7TWR5PHOHNeGEKQAIOaNPwksZ4AYw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=Ono6PrvepmJVP4LJaSWX3zdYBHC5V4/pVKi1/qEkodo=; b=A9Pn0UcuKY/d+OPSahcetNx8ZxZg8shJbttjAqLQjZBTPQkErVYaygRbYCxxrUCzxFg0n/DhNwImvi40C+tOPfQpJfs7QVkweb7upNPwdWwRhsNCWXa+SWiUDwShSdtWrOnFG4jWykC9CWP9OActUdWcIIt7T+CbPksJo+T95QjXQw73myyLSxjNrOqFHISgWxzvsdeJGcZxLA2Dfc66mQatCweKt5ZOibCp2mAZ+oAnt1Sf53hn5JM9WTnmAp5cpXTIRdJ+F1Iiru2Lv/TdAQi4QAP7Dx7qYCvmrCiRDtr0++dBkubLDYVolOKpLbWwWckX8nmu2MivNlWZNq8WSA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=fail (sender ip is 4.158.2.129) 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=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ono6PrvepmJVP4LJaSWX3zdYBHC5V4/pVKi1/qEkodo=; b=Ryk77Ov+/3h4dA20FP9dfiNK4RINJpcKaCKyjbCf+SsWkxOAGcFrTbK8+Gcfo44RH719JDA6dEAqBnabHh/VTnnBzQktGfsxHf1XLqyAvKVXbkYJitLHF/fuf8R8e4EYuoivGmsQvkKuww9K6eZWfeVYb4OYbgu+oL+SpTYQoZo= Received: from AS4P195CA0026.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:5d6::12) by AS8PR08MB9266.eurprd08.prod.outlook.com (2603:10a6:20b:5a2::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.41; Fri, 4 Apr 2025 21:10:43 +0000 Received: from AMS1EPF00000048.eurprd04.prod.outlook.com (2603:10a6:20b:5d6:cafe::a0) by AS4P195CA0026.outlook.office365.com (2603:10a6:20b:5d6::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.27 via Frontend Transport; Fri, 4 Apr 2025 21:10:43 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by AMS1EPF00000048.mail.protection.outlook.com (10.167.16.132) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.22 via Frontend Transport; Fri, 4 Apr 2025 21:10:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BMUvKMduLRfdZSJNgxZdRdagVM/9AIS/idbnsZRU10TlW+FXTs0+WF8t+uKhVeqXvDKHYopkgTQvhLGGKnrRvq4hGV3sBEBYdWp4zJ0Hro4ed0HTV6/h1vQSVPdLTvIkxGG52LS+h5G0l5L5+aZsD2jVLlTF0hmQOggsE8mABaPHODCQFrmzHLJ9BKDMcvO35rDLybvbwhbGL8qvA1RcPmz4Q621qFCV+gAxI8ie1hfQ6K/YGe3Tb+dwhd8ZtcHX+zjIdg2UkYbf7nGmumBaRVpJFYnqpiBmbbXcy4zledxBAr4MfjtM4xhj9eHkl0HbPpt+WHIgDoC9PvOXnxQ59Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=Ono6PrvepmJVP4LJaSWX3zdYBHC5V4/pVKi1/qEkodo=; b=BPwcwtqyzemRvm9BJ+/wwlLBDTJAfEqDA6sObGNJu+lQP6CFdWeg4YgO3La6vEOLcoOzxnVMPdDvUJBUbyyMnHKZs1Nw34LlO4XQo/vBBK7ygCG9KY/VybujIwzu61clY9Yc4tQruP+Twld032wa6hLR/WnQbq7/CB44QXNJ3fVIkNf0dgZYkNvwV2m8/2SpE3Ka0J8vpAmOkjyRI9QVCdYk7Bg5IJ7XI0Jjz+DF1AikMgCmCaPGfB2GHCQifBvq0O8V7eEcJAwScYpsdXlazrC2POEb70ZrpPrMG6beaLphBGNY0B0eataTj9MKvQQY7pEd2jzxX7+YcZWLTww6Wg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=fail (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=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ono6PrvepmJVP4LJaSWX3zdYBHC5V4/pVKi1/qEkodo=; b=Ryk77Ov+/3h4dA20FP9dfiNK4RINJpcKaCKyjbCf+SsWkxOAGcFrTbK8+Gcfo44RH719JDA6dEAqBnabHh/VTnnBzQktGfsxHf1XLqyAvKVXbkYJitLHF/fuf8R8e4EYuoivGmsQvkKuww9K6eZWfeVYb4OYbgu+oL+SpTYQoZo= Received: from DU7P251CA0007.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:551::19) by AS2PR08MB8384.eurprd08.prod.outlook.com (2603:10a6:20b:55b::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.50; Fri, 4 Apr 2025 21:10:07 +0000 Received: from DB5PEPF00014B9D.eurprd02.prod.outlook.com (2603:10a6:10:551:cafe::3b) by DU7P251CA0007.outlook.office365.com (2603:10a6:10:551::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8606.26 via Frontend Transport; Fri, 4 Apr 2025 21:10:07 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DB5PEPF00014B9D.mail.protection.outlook.com (10.167.8.164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8632.13 via Frontend Transport; Fri, 4 Apr 2025 21:10:07 +0000 Received: from AZ-NEU-EX05.Arm.com (10.240.25.133) by AZ-NEU-EX06.Arm.com (10.240.25.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 4 Apr 2025 21:10:06 +0000 Received: from D2G2X7XGD1.arm.com (10.57.43.177) by mail.arm.com (10.240.25.133) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Fri, 4 Apr 2025 21:10:06 +0000 From: To: CC: , Ezra Sitorus Subject: [PATCH] aarch64: Support for FEAT_PCDPHINT Date: Fri, 4 Apr 2025 22:10:31 +0100 Message-ID: <20250404211031.43917-1-Ezra.Sitorus@arm.com> X-Mailer: git-send-email 2.48.1 MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB5PEPF00014B9D:EE_|AS2PR08MB8384:EE_|AMS1EPF00000048:EE_|AS8PR08MB9266:EE_ X-MS-Office365-Filtering-Correlation-Id: e97b7ae6-7a16-4278-7d08-08dd73bd2903 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|376014|82310400026|1800799024|36860700013|13003099007; X-Microsoft-Antispam-Message-Info-Original: NsD4Pjx6tQ2ewrwdkOHwW29RqrA9VwTVFodv5lWrat8f9PFyizgc9299IPSBQ8cVHtsJ3Hf7o7YRQGRZtNvgFwkltyqzEmS/fwM4Re18flNCq6aSDivof6l36EoSuKZp97Mcm30RY4mym08MvDZ2l5EHUs9QyR/dWYHgylAMG/IFboMByI9om6jM5cP8KFKIIKmNM0iQCb8PAbrXQD7xdHU+KHQHwvGVNpO4VpIHBIMK+rqHcCNphTiJwKFzAJ5u5/lOBNkvVSr+ttfIv06FbywmEPkyXqJ+5S/HpxRNtFXYkhfKklFLyfZTzLNYLFW6+Zra83pujLmeW1jJZ93oUGNDcbEFzD074Vl5X05dUMiDRtV62WNQdEPZWD5fBF/0Vkb1HOQzvZhhD4zmWr7NL1rDdNAv6gouEpLTIYMrr/Xf7RB2okzJw7WvpCn7obAfgWZb7qC/z6ITXReV2JEbvnHIppSkEA+lAuxKJlXrm1UwD8LBKC5qDLih7zzDWwLgYdDyM/VoMlAAkfF9LIyuve21yB81/9ZEUlQoPsfjNcssBz/Vu8nmLMpyqd0FnE1M4vDEqfQJgaSxvcdzeA1/kmvzN5pXqQ2XWcvQCRziYkUMpVu4Cgl57fb5gHNE26CLGM+wCgruLxfd0yyKBArofRwC1xW1RgJwezkkQdsGBVeTJ2oQv2/ALUJBQscCLx8fGbHQ7zkf3kGRm71Enhpbo5Hy4Cymyf7GiW0GqPW4ExIy3b7SVz4EIdIbxTfVr+6vDkxGcwYp3uAWgawm6+89WCltMzgfCkROKQqadRKaWHH9hUgnR+NKCh7rW/VRgnR+1sZvlGcUgEsINtrJM/w6KwUUnuoHiGbYplELDjo7t3ospivVruyDaYjALb5eqTu4hUSqoyN5rZbh9k7kw9A3w02UxBJMbclvOd/mppyRo5suUxAz3+jfYmSxsrkE2xgR5CkWSTfWPfsqryif2HZhjtOKzHJRf/ZDZ2XHoGu7TT/nkwMmAYgZrlj+S+9J6O1CszUprO/ZQRzpKaHKZloNbgKAS/3Tp1VAQwXH2zgTtvIi7pjONHzyFZLybIpFoNn0brplwALCl3aOyASMEEWmg5LWyhOPnZLAkxgg0eF1ad9/EX3LMFURP+qMVNHNFDe614RReEZ17Ja8/lbtKgEicCMgSi1PmQU5A4uf0BS/esIkwQRgMc21cvjLTh6JxsH7a5qXqWxYy677t+iaJp2qmIeqHWTajIINn8i+skcvZZaZRMkafqFM/67+KL5y0x43dwVCx5Osg1Kwjiyg9sb2XtiU4wdf3aW0+dUNu8Hd2igvoFGRhpU694Y5gQO74hZgDCOhhMXWNHor42vBodDMT8JgwuSxrDY+Xiia3nXGPCvPJI/Ic41ibXzfYeGsWIVe1livCwIDqJQ5UO9wTM4X5uUNsnmVi44HqlCFjhLVScRz8CP5BpGPunn+3PuKT0E534wzSxb1Ay0vcF745L/I4DG1Z7WIrZliMic7nv24jLq0RwxYJsArTIPToMFy9zCF X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013)(13003099007); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8384 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS1EPF00000048.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: cdc1cf34-d51e-480d-c048-08dd73bd13b4 X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|14060799003|35042699022|1800799024|36860700013|376014|13003099007; X-Microsoft-Antispam-Message-Info: rnwn4SL8eTSac4ScsDvCIgFRmOM9UZ5y8w7r2QcUmuP73MtLR5eCcnwRmEc38j777H+vevJ9RXCIN8uCZgZeEeXkkqgwv79XVmbkk63aYo8pVteVxqylmI2+53ej8un67u963O5WvzrWX3tCGkMilD/pMr/A17mWXEz8ZVlJPFiZYi55cv2tpQ+ri+B2+vkfPKYN6PfVUXuGAVGodsQEOGb90IU9Is04xmIlWW2ugfiglhrdMPrqCZmnmtk6DwYgs5hGf98Brvub0OKtoQQAT3qp2n2ecKTOZKOtrJOOYrOWn013Emm1NycWsK1sX/yjMApg/VtGJVoFNI9OeGkDrHjRNEu8Vo1Ef99zd6QB9NSj8sRTlujrTdP8pGWAsMAEzabyDCRMobvKgF47xdfhda/mvgrQflxVHde3B423+DYQStmNrXwNY5iKF8P9FerP8TWX3lo1MZwqaLvbKO+ggCMKN/CWksijepEAh1cs3EzSacRWSAsq8HXqz4Ga4YifDVgDyAeWgwWo1BV6MzJLnoPppQWRdWxaE1ZZk9UwlPGKEMdWQ+3bbxUocGg7RkM8Gt6h0S33KmfGOajle/7Cg9MDId1b1dZmzVtEXsl2SZMy3RhjOWKhzckFyVc+AB5EPX+CtFQNBZT9qEuLzGtPXUX1tVUF9EECNSqaJW5khiu6Z4DSkPzaXhXtLNOfW31e1/mDKFE4lG/cdHwtyPCXnHbLJylUKTwGzLRQGPjMEobAMvFwiWLwBeDEhsTSI7MPgAuraS3937hgvqsXxdQ1l/x8/l8xbyc9Lc/N3SX3nNS4wxZxcl9ys5HSEyB7ZA/9MBbdWlhkcCN7h39KWp45PVt00GruFkfXwRntDhefsoYO5zaeVx1f6dZllmBfDSWh1WOYhLhtPzkB9vmwDtINKHfIWW8Tvl6reIHNbgI0KbjL1RyG8knt0YuydkNfYA+3YNdJKJ014Sd8F9NVNrpz3CNcbEhzhaZ6bW0Vv+j2pXEQhl1/Z7tSgQTNanPn5gIH3jm7WgjlGa+luQDvbp3xwECT78knMVzbZeOHGCnL48aWBSu/Mem1IJroKaEedcx+I+nc/3LLBw4FPveyqHd0BSx1uuJ3emvJYC0eYigDOVrsJxjUXGooUiNQBn6qU2OJC4EmfSDIv941sqZZiA1KPeMVpM/Z9KIVxD2eaMYPL0F6hlBI1V2drjpYJcaPP79XNRJ4Zzj2FCw9MVdyB7vCVGhEm6/ATBXiAt//WAnD0P1fzh4KHvgT7m8CyUIF7JlxRt3omFwe8oS3jngRcim33O1/opC7se2ykowJQz+KuIDv+vVubsxrV/CyR/93q5LcM0XagHHEes4SbaeYtRaV9suBybJY3oSbhMFprgT1oKiGEqt+FMg4cg7heAsGrFxTpBk0YQB6S9dm3ySQt35loh6c+OS0EPzOXHLl0tG2cWFjAyUCuxP8+SOzkeJiodIJL5tZ++xfejQheehX2PSuXGhmihCRxni4O3xTD6IujC+Ym4lW3QIaBZRhB/a+PYt4 X-Forefront-Antispam-Report: CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(82310400026)(14060799003)(35042699022)(1800799024)(36860700013)(376014)(13003099007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Apr 2025 21:10:43.0273 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e97b7ae6-7a16-4278-7d08-08dd73bd2903 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129]; Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: AMS1EPF00000048.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9266 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org 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~patchwork=sourceware.org@sourceware.org From: Ezra Sitorus FEAT_PCDPHINT - Producer-consumer data placement hints - is an optional ISA extension that provides hint instructions to indicate: - a store in the current execution thread is generating data at a specific location, which a thread of execution on one or more other observers is waiting on. - the thread of execution on the current PE will read a location that may not yet have been written with the value to be consumed. This extension introduces: - STSHH, a hint instruction, with operands (policies) keep and strm - PRFM *IR*, a new prefetch memory operand. Details of FEAT_PCPHINT can be found here: https://developer.arm.com/documentation/109697/2024_12/Feature-descriptions/The-Armv9-6-architecture-extension https://developer.arm.com/documentation/ddi0602/2024-12/Base-Instructions/STSHH--Store-shared-hint-?lang=en https://developer.arm.com/documentation/ddi0602/2024-12/Base-Instructions/PRFM--immediate---Prefetch-memory--immediate--?lang=en --- Regression tested on aarch64-none-linux-gnu. I do not have commit rights yet, can somebody commit it if it looks ok? Ezra gas/config/tc-aarch64.c | 9 ++++++++- gas/testsuite/gas/aarch64/pcdphint-bad.d | 4 ++++ gas/testsuite/gas/aarch64/pcdphint-bad.l | 5 +++++ gas/testsuite/gas/aarch64/pcdphint-bad.s | 5 +++++ gas/testsuite/gas/aarch64/stshh.d | 10 ++++++++++ gas/testsuite/gas/aarch64/stshh.s | 6 ++++++ gas/testsuite/gas/aarch64/system.d | 8 ++++---- include/opcode/aarch64.h | 3 +++ opcodes/aarch64-opc.c | 8 +++++++- opcodes/aarch64-tbl.h | 3 +++ 10 files changed, 55 insertions(+), 6 deletions(-) create mode 100644 gas/testsuite/gas/aarch64/pcdphint-bad.d create mode 100644 gas/testsuite/gas/aarch64/pcdphint-bad.l create mode 100644 gas/testsuite/gas/aarch64/pcdphint-bad.s create mode 100644 gas/testsuite/gas/aarch64/stshh.d create mode 100644 gas/testsuite/gas/aarch64/stshh.s diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index e071ad11f46..290733eb6d2 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -4607,7 +4607,9 @@ parse_hint_opt (const char *name, char **str, && o->value != HINT_OPD_CSYNC) || ((strcmp ("bti", name) == 0) && (o->value != HINT_OPD_C && o->value != HINT_OPD_J - && o->value != HINT_OPD_JC))) + && o->value != HINT_OPD_JC)) + || ((strcmp ("stshh", name) == 0) + && (o->value != HINT_OPD_KEEP && o->value != HINT_OPD_STRM))) return false; *str = q; @@ -8150,6 +8152,11 @@ parse_operands (char *str, const aarch64_opcode *opcode) goto failure; break; + case AARCH64_OPND_STSHH_POLICY: + if (!parse_hint_opt (opcode->name, &str, &(info->hint_option))) + goto failure; + break; + case AARCH64_OPND_SME_ZAda_1b: case AARCH64_OPND_SME_ZAda_2b: case AARCH64_OPND_SME_ZAda_3b: diff --git a/gas/testsuite/gas/aarch64/pcdphint-bad.d b/gas/testsuite/gas/aarch64/pcdphint-bad.d new file mode 100644 index 00000000000..33373b45356 --- /dev/null +++ b/gas/testsuite/gas/aarch64/pcdphint-bad.d @@ -0,0 +1,4 @@ +#name: Negative test of PCPHINT instructions. +#as: -march=armv8-a +#source: pcdphint-bad.s +#error_output: pcdphint-bad.l diff --git a/gas/testsuite/gas/aarch64/pcdphint-bad.l b/gas/testsuite/gas/aarch64/pcdphint-bad.l new file mode 100644 index 00000000000..ae542f852d5 --- /dev/null +++ b/gas/testsuite/gas/aarch64/pcdphint-bad.l @@ -0,0 +1,5 @@ +[^ :]+: Assembler messages: +[^ :]+:[0-9]+: Error: operand 1 must be STSHH policies keep/strm -- `stshh kee' +[^ :]+:[0-9]+: Error: operand 1 must be STSHH policies keep/strm -- `stshh strmm' +[^ :]+:[0-9]+: Error: operand 1 must be STSHH policies keep/strm -- `stshh' +[^ :]+:[0-9]+: Error: constant expression required at operand 1 -- `prfm ir1234' diff --git a/gas/testsuite/gas/aarch64/pcdphint-bad.s b/gas/testsuite/gas/aarch64/pcdphint-bad.s new file mode 100644 index 00000000000..93c433aeae3 --- /dev/null +++ b/gas/testsuite/gas/aarch64/pcdphint-bad.s @@ -0,0 +1,5 @@ +stshh kee +stshh strmm +stshh + +prfm ir1234 diff --git a/gas/testsuite/gas/aarch64/stshh.d b/gas/testsuite/gas/aarch64/stshh.d new file mode 100644 index 00000000000..095048d143f --- /dev/null +++ b/gas/testsuite/gas/aarch64/stshh.d @@ -0,0 +1,10 @@ +#as: -march=armv8-a +#objdump: -dr + +.*: file format .* + +Disassembly of section \.text: + +0+ <.*>: +.*: d503261f stshh keep +.*: d503263f stshh strm diff --git a/gas/testsuite/gas/aarch64/stshh.s b/gas/testsuite/gas/aarch64/stshh.s new file mode 100644 index 00000000000..01632aaf532 --- /dev/null +++ b/gas/testsuite/gas/aarch64/stshh.s @@ -0,0 +1,6 @@ +// Test file for AArch64 stshh. + + .text + + stshh keep + stshh strm diff --git a/gas/testsuite/gas/aarch64/system.d b/gas/testsuite/gas/aarch64/system.d index c1400771d43..907acdc549d 100644 --- a/gas/testsuite/gas/aarch64/system.d +++ b/gas/testsuite/gas/aarch64/system.d @@ -63,8 +63,8 @@ Disassembly of section \.text: .*: d50325bf hint #0x2d .*: d50325df hint #0x2e .*: d50325ff hint #0x2f -.*: d503261f hint #0x30 -.*: d503263f hint #0x31 +.*: d503261f (hint #0x30|stshh keep) +.*: d503263f (hint #0x31|stshh strm) .*: d503265f hint #0x32 .*: d503267f hint #0x33 .*: d503269f hint #0x34 @@ -330,9 +330,9 @@ Disassembly of section \.text: .*: f8af6bf7 prfm pstslcstrm, \[sp, x15\] .*: f8be58f7 prfm pstslcstrm, \[x7, w30, uxtw #3\] .*: f9800c77 prfm pstslcstrm, \[x3, #24\] -.*: d8000018 prfm #0x18, 0 +.*: d8000018 prfm ir, 0 .*: R_AARCH64_(P32_|)LD_PREL_LO19 LABEL1 -.*: f9800c78 prfm #0x18, \[x3, #24\] +.*: f9800c78 prfm ir, \[x3, #24\] .*: d8000019 prfm #0x19, 0 .*: R_AARCH64_(P32_|)LD_PREL_LO19 LABEL1 .*: f9800c79 prfm #0x19, \[x3, #24\] diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index dfe3f05820a..ede9fc7746f 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -688,6 +688,7 @@ enum aarch64_opnd AARCH64_OPND_BARRIER_PSB, /* Barrier operand for PSB. */ AARCH64_OPND_BARRIER_GCSB, /* Barrier operand for GCSB. */ AARCH64_OPND_BTI_TARGET, /* BTI {}. */ + AARCH64_OPND_STSHH_POLICY, /* STSHH {}. */ AARCH64_OPND_BRBOP, /* BRB operation IALL or INJ in bit 5. */ AARCH64_OPND_Rt_IN_SYS_ALIASES, /* Defaulted and omitted Rt used in SYS aliases such as brb. */ AARCH64_OPND_LSE128_Rt, /* LSE128 . */ @@ -1770,6 +1771,8 @@ struct aarch64_inst #define HINT_OPD_C 0x22 #define HINT_OPD_J 0x24 #define HINT_OPD_JC 0x26 +#define HINT_OPD_KEEP 0x30 +#define HINT_OPD_STRM 0x31 #define HINT_OPD_NULL 0x00 diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index 4f0c71696fa..488db45c467 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -596,6 +596,8 @@ const struct aarch64_name_value_pair aarch64_hint_options[] = { "c", HINT_OPD_C }, /* BTI C. */ { "j", HINT_OPD_J }, /* BTI J. */ { "jc", HINT_OPD_JC }, /* BTI JC. */ + { "keep", HINT_OPD_KEEP }, /* STSHH KEEP */ + { "strm", HINT_OPD_STRM }, /* STSHH STRM */ { NULL, HINT_OPD_NULL }, }; @@ -629,7 +631,7 @@ const struct aarch64_name_value_pair aarch64_prfops[32] = { "pstl3strm", B(2, 3, 1) }, { "pstslckeep", B(2, 4, 0) }, { "pstslcstrm", B(2, 4, 1) }, - { NULL, 0x18 }, + { "ir", 0x18 }, { NULL, 0x19 }, { NULL, 0x1a }, { NULL, 0x1b }, @@ -5071,6 +5073,10 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc, style_sub_mnem (styler, opnd->hint_option->name)); break; + case AARCH64_OPND_STSHH_POLICY: + snprintf (buf, size, "%s", style_sub_mnem (styler, opnd->hint_option->name)); + break; + case AARCH64_OPND_MOPS_ADDR_Rd: case AARCH64_OPND_MOPS_ADDR_Rs: snprintf (buf, size, "[%s]!", diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h index 8b64eb07067..bdca7a0adc9 100644 --- a/opcodes/aarch64-tbl.h +++ b/opcodes/aarch64-tbl.h @@ -4588,6 +4588,7 @@ const struct aarch64_opcode aarch64_opcode_table[] = SME_INSN ("smstop", 0xd503407f, 0xfffff1ff, sme_stop, 0, OP1 (SME_SM_ZA), {}, F_SYS_WRITE, 0), /* System. */ CHK_INSN ("chkfeat", 0xd503251f, 0xffffffff, OP1 (X16), QL_I1X, 0), + CORE_INSN ("stshh", 0xd503261f, 0xffffffdf, ic_system, 0, OP1 (STSHH_POLICY), {}, F_ALIAS), CORE_INSN ("msr", 0xd500401f, 0xfff8f01f, ic_system, 0, OP2 (PSTATEFIELD, UIMM4), {}, F_SYS_WRITE), CORE_INSN ("hint",0xd503201f, 0xfffff01f, ic_system, 0, OP1 (UIMM7), {}, F_HAS_ALIAS), CORE_INSN ("nop", 0xd503201f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS), @@ -7235,6 +7236,8 @@ const struct aarch64_opcode aarch64_opcode_table[] = "the GCSB option name DSYNC") \ Y(SYSTEM, hint, "BTI_TARGET", 0, F (), \ "BTI targets j/c/jc") \ + Y(SYSTEM, hint, "STSHH_POLICY", 0, F(), \ + "STSHH policies keep/strm") \ Y(SYSTEM, imm, "BRBOP", 0, F(FLD_brbop), \ "Branch Record Buffer operation operand") \ Y(INT_REG, regno, "Rt_IN_SYS_ALIASES", 0, F(FLD_Rt), \