From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60070.outbound.protection.outlook.com [40.107.6.70]) by sourceware.org (Postfix) with ESMTPS id C0161385085E for ; Thu, 20 Oct 2022 14:57:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C0161385085E 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-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=XKNx10Sno2OXaiMqX2tvWZeuoLTU8l+Tx4vFJvMol1rpP8hyfKxRizOYE0aua5trn0oCvWGivDV39tSaeKccr+SqyMHsSvXChGd8yYNMRtuuVWn4iyofTkyY4w8Qy/wX6At5eQi/37CPf1TjAix+oyXu67D/ZsDtzIEbVV9EiW1GTIkjhxjNzsIUNbX3wA3iZMzKT7q6qtsm0efxW1/j3czNv0g8YFY9cBlvAqgq9SoJReFtrV/cTLIcYMiQ+b8J9Up77qnPmAW26FjWRfeI+qusFk4rjzByJQZQKIWzeHuP/lXcqT50gFgOtwCfkuXStlvWbJXvuCkOQS530kwOqQ== 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=C5nvrr7wKNMUZ8V550XZ4IpTQNY92rmrYmM8l8QJ/rw=; b=hPGRC4QJ55X8znCp7/MFIXDu7MCcUZPlDS9WYPPrfxX/cke4HB1scCuGk/B6TxKHf3VQclUe4EMxEW8A59Stws2H5J+cBNtXL28DFiJtR+/ObZlVt8YyIYYNOB/US22/9LReyoDR26IYGmMd/SXeaaYOXwN5PJhq/nyIvQG/i6hBYzs/VeqjxfbM0rDpQv7pnrwLVAJ554gAXLS6HJ2s2t9nuvgHXhGqz7XInSEzjem9ILWziAf7wboKK5W1WIhKgx5Gdct5JlupPkQnVIxb4APKXMX8zwuxEN3IbKwAqlbMiMHhbvbLuWW1uSISTynmq8aDTiunxGepNUPCCw5Z+w== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.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] dkim=[1,1,header.d=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=C5nvrr7wKNMUZ8V550XZ4IpTQNY92rmrYmM8l8QJ/rw=; b=0c6ADKKMOtO6CbICxRMrmj9Gz0kdL9kOju9pv6lspjBVvd37ZnD+d8maEmsOERBk46YdxeNhcBGXdT2256Refno3ja4oibS1Kjl5uQGURew8YkfosG/QXPNWQRv6W/sgMoGkkCPUT0vEa3tSyz6LTsQX542j452CC319aI68x3I= Received: from FR3P281CA0110.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::7) by DBBPR08MB6153.eurprd08.prod.outlook.com (2603:10a6:10:20e::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.34; Thu, 20 Oct 2022 14:57:03 +0000 Received: from VI1EUR03FT059.eop-EUR03.prod.protection.outlook.com (2603:10a6:d10:a3:cafe::17) by FR3P281CA0110.outlook.office365.com (2603:10a6:d10:a3::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5746.17 via Frontend Transport; Thu, 20 Oct 2022 14:57:03 +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 VI1EUR03FT059.mail.protection.outlook.com (100.127.144.74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5746.16 via Frontend Transport; Thu, 20 Oct 2022 14:57:03 +0000 Received: ("Tessian outbound f394866f3f2b:v130"); Thu, 20 Oct 2022 14:57:03 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 05b591aa5ffe7dbb X-CR-MTA-TID: 64aa7808 Received: from 0cf3d86d2e05.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id DC5E37CF-AA41-4442-8B2C-BE6230236705.1; Thu, 20 Oct 2022 14:56:52 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0cf3d86d2e05.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 20 Oct 2022 14:56:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CgtMHIKzh8tnFCRBj7FOrWwIPS/DrIrfR94yL7KAAE/G7qL9QbrSLJC1DhAHa0ve5sQ3m8weA2fJ8JppqkhugaJU2IYYUbFdQJY20iEh0KPv5OJ9n5Ic+5d4RZ8wPMjsZlS/IF27gWoAoHr+hK1DN1F6wgfsIUioIFJu0ZsVF36DNHwz+qHdtuVN2lM9xCbWedg9eMf9a3OqvmZnGK6wse6QzqUnpUXZFMis1wJgYYyu+xXn0fQqqZCMvkbYh0Oayblue1y2Rxo+uewBE6srFnGYRN5dkj8458L7KLGqb3b0kTSXAS5nkPECUFCEwnSzAkt0wmCV2UbGtVbQhJaEIw== 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=C5nvrr7wKNMUZ8V550XZ4IpTQNY92rmrYmM8l8QJ/rw=; b=QR5wnf8g+iK2LC67ljvfvh+KD9xpQEzTdYy4czLnYhyf4A+psN4wMOtnK++hUPN4/Z2Wo7y8rPMO1Z6XiIY61rVmQQwCweK2gxc1ahrKpKyeceiElU8HvhjJWTaDpmHL0YgCSQQBiQeEzQ0kt9WBvFcLxFWsmWtWDS77dvRMTrDSK1wM5P8dPLehLxn8ri6nHTgHXwWejhbT5VqsvwPKZjdRqagpamu4NPE6qnJXWY34D+MLhjXRhctSR8vIs+NTDcEafLxeCshhN4DTcVl7vcqQ3uw6jZBzEGOobVgRdd8JWmlICK6e82wjX1QInOnwk23NiGjIZNvwpyw7coVxow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none 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=C5nvrr7wKNMUZ8V550XZ4IpTQNY92rmrYmM8l8QJ/rw=; b=0c6ADKKMOtO6CbICxRMrmj9Gz0kdL9kOju9pv6lspjBVvd37ZnD+d8maEmsOERBk46YdxeNhcBGXdT2256Refno3ja4oibS1Kjl5uQGURew8YkfosG/QXPNWQRv6W/sgMoGkkCPUT0vEa3tSyz6LTsQX542j452CC319aI68x3I= Received: from PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by DU0PR08MB7737.eurprd08.prod.outlook.com (2603:10a6:10:3bf::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.34; Thu, 20 Oct 2022 14:56:41 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::c5b2:df77:49dc:608c]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::c5b2:df77:49dc:608c%7]) with mapi id 15.20.5723.034; Thu, 20 Oct 2022 14:56:41 +0000 From: Kyrylo Tkachov To: Andrea Corallo CC: Andrea Corallo via Gcc-patches , Richard Earnshaw , nd Subject: RE: [PATCH 12/15 V2] arm: implement bti injection Thread-Topic: [PATCH 12/15 V2] arm: implement bti injection Thread-Index: AQHY1BqWerz8EB0JlE6NgNkLg2kjnK4Xf7QQ Date: Thu, 20 Oct 2022 14:56:41 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAXPR08MB6926:EE_|DU0PR08MB7737:EE_|VI1EUR03FT059:EE_|DBBPR08MB6153:EE_ X-MS-Office365-Filtering-Correlation-Id: bb28d0e3-947a-43f1-4bf3-08dab2ab5961 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: N5MHL8HZiHYUQy/ezmG6Juafgpu1cguwRsskYS9+3kdzFOXmijyaUHiXwGYO84+CsGFmm64IGTuOSjs+XVT3bDfXFEX8d20y5wJAelNTIpzPyUhRhl19a8JiHN8DI6GA3xqGNyLxCvLDAtUfEmYNUx/q0XHwovrKD2maaV4DmVDv803QsYuL3YKzRmI5Xbz0fM108KBDgMQsubR7TpmPKvIAgD2R17Co3zDlFbTGwHSWMuH4Xi52X6OxHk8y+I3iCk+e14pgmIyyR5Aqy7ThQ9YqFHKTCIxB99x4Fv/HfTPmmNeY89wDWpXa/dU/PkHUmZNCs6QsSM/ULGHfu5Cdtl+sgje8ryaYY2z/5reWu7qWjBfzr1cwMYl5Dnd7WBQZxsTlQz6vGS6yko9Yr3hX+3/iIF+4l0rd0n6O0n4on4Nn29EXDYrAEvXIiEqVz1B+1H60HI7JKxgJp61RzU2MfACgAx18cGNhLubLCRjIr6pO8fpYRxVaeM7LExCJyHjFN9goPaKPFcs66JRp/ghy97hPJkILrjGq3rgRzTMtgcqQ13bxpv0bjfcnd7g7jKittXxS8PfO1cxa2kr8GNlK3cmpnjilo4pnxDcXldtow3orWGv5x0cdk5k+g/3Idq/NIdyKrfpeG//BPpNxPwpXr+zAu8OK+9sGJcFZQk1sv6FmNO2SemOT60AzozYbq/qhHq/NZAzNUqbswrA/eim8tX3DEkCzsGA9jOhtLQ4LFpdTKdVAZPCvU0LHg2ktm4w0zIQMzHUC+meZgynopceG5Q== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6926.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(346002)(396003)(376002)(366004)(136003)(39860400002)(451199015)(316002)(38100700002)(52536014)(86362001)(2906002)(66476007)(6862004)(5660300002)(8676002)(8936002)(41300700001)(53546011)(7696005)(64756008)(66446008)(66946007)(55016003)(66556008)(4326008)(38070700005)(6636002)(54906003)(6506007)(33656002)(76116006)(186003)(26005)(71200400001)(9686003)(478600001)(122000001)(83380400001);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7737 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VI1EUR03FT059.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 3edb5e05-cbeb-4346-ee36-08dab2ab4c4f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4zDrQBNRJQTINvO2CFMQ1VMgFxZRHj2VHUHHiit4p5vsdGV97G5WrJgx++YV4mCqBK4PPJbpS/xl2rlBOv238FXaHde0BwyfjnVj+N3bWHPytGCJTrF0Ko/5LM9m53w0SsGuBu7Tj4syCfFe/rc5T+KCgZHvRLGcSonGlVmAjgmsbHsbqwdTYd3i1mzg/SngJOZupc7FmO06kDzkTci0+iFhB3PuleeHWOi06sEM1Ie6C32rrw7H7jfpNbDUiO1V+n/IjSPI8Ak4eqAvVdQu+BxJ9SLywiRF2gZRXR+18hu7c2kGfr2tEvsTKZ8dTfW3unrvSdIAfB1UjLCS/Ts5YWTbw0jYVbAHNkvgG0fZngh6lBugGB7KP9Qvh4KPuNjpzYPQaOdL2zt5S38cq9zp7jL6jG+DuzqQ8qJ8EamdBkSSBqbjJX2u4xKUekk+/J86fN8zKhmrX4yL2btBOanUZVg01om6aKevmSACmyXhJgKz6cBQMBvsPQdx2i2qQPyYxwnkN82sVjcXcWiCb3i7sKnoWNqftgaxumDlhJjJPKgVLCFE3FZKp9smL6i+xuBiNiSNonNRt/gV7WJwSIy+mrxRtxvWqg6CUWwzxyk2N4A0XOZu1Eyp6rOxQVmqfGc2NA/OSOzzfiGPR1NwUAjerSC4uCQSvx9Sl1F1dahbWXkl5I+bSfAZwxTFK8HIFuVe6QmCstgwmAY9fqcIVQK0Ui6kQgZRevHjLlOX4s5glIBpAk0LtTy9RXICi8Std9q6wfbhcputN78oIjv3CPWfdg== 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:(13230022)(4636009)(396003)(136003)(39860400002)(346002)(376002)(451199015)(36840700001)(40470700004)(46966006)(36860700001)(316002)(41300700001)(6636002)(54906003)(55016003)(52536014)(40480700001)(47076005)(9686003)(8936002)(6862004)(186003)(6506007)(33656002)(5660300002)(26005)(8676002)(2906002)(336012)(70206006)(70586007)(4326008)(53546011)(86362001)(83380400001)(7696005)(40460700003)(81166007)(82310400005)(478600001)(356005)(82740400003);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2022 14:57:03.3953 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bb28d0e3-947a-43f1-4bf3-08dab2ab5961 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: VI1EUR03FT059.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6153 X-Spam-Status: No, score=-11.6 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,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 List-Id: > -----Original Message----- > From: Andrea Corallo > Sent: Thursday, September 29, 2022 4:46 PM > To: Kyrylo Tkachov > Cc: Andrea Corallo via Gcc-patches ; Richard > Earnshaw ; nd > Subject: [PATCH 12/15 V2] arm: implement bti injection >=20 > Kyrylo Tkachov writes: >=20 > > Hi Andrea, >=20 > [...] >=20 > > diff --git a/gcc/config/arm/aarch-bti-insert.cc b/gcc/config/arm/aarch-= bti- > insert.cc > > index 2d1d2e334a9..8f045c247bf 100644 > > --- a/gcc/config/arm/aarch-bti-insert.cc > > +++ b/gcc/config/arm/aarch-bti-insert.cc > > @@ -41,6 +41,7 @@ > > #include "cfgrtl.h" > > #include "tree-pass.h" > > #include "cgraph.h" > > +#include "diagnostic-core.h" > > > > This change doesn't seem to match what's in the ChangeLog and doesn't > make sense to me. >=20 > Change removed thanks. >=20 > > @@ -32985,6 +32979,58 @@ arm_current_function_pac_enabled_p (void) > > && !crtl->is_leaf); > > } > > > > +/* Return TRUE if Branch Target Identification Mechanism is enabled. = */ > > +bool > > +aarch_bti_enabled (void) > > +{ > > + return aarch_enable_bti =3D=3D 1; > > +} > > + > > +/* Check if INSN is a BTI J insn. */ > > +bool > > +aarch_bti_j_insn_p (rtx_insn *insn) > > +{ > > + if (!insn || !INSN_P (insn)) > > + return false; > > + > > + rtx pat =3D PATTERN (insn); > > + return GET_CODE (pat) =3D=3D UNSPEC_VOLATILE && XINT (pat, 1) =3D=3D > UNSPEC_BTI_NOP; > > +} > > + > > +/* Check if X (or any sub-rtx of X) is a PACIASP/PACIBSP instruction. = */ > > > > The arm instructions are not PACIASP/PACIBSP. > > This comment should be rewritten. >=20 > This hunk belongs to aarch64.cc so it's aarch64 specific. >=20 > > +bool > > +aarch_pac_insn_p (rtx x) > > +{ > > > > .......... > > > > +rtx > > +aarch_gen_bti_c (void) > > +{ > > + return gen_bti_nop (); > > +} > > + > > +rtx > > +aarch_gen_bti_j (void) > > +{ > > + return gen_bti_nop (); > > +} > > + > > > > A reader may be confused for why we have a bti_c and bti_j function tha= t > have identical functionality. > > Please add function comments explaining the situation. >=20 > Done >=20 > > diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md > > index 92269a7819a..90c8c1d66f5 100644 > > --- a/gcc/config/arm/arm.md > > +++ b/gcc/config/arm/arm.md > > @@ -12913,6 +12913,13 @@ > > "aut\t%|ip, %|lr, %|sp" > > [(set_attr "length" "4")]) > > > > +(define_insn "bti_nop" > > + [(unspec_volatile [(const_int 0)] UNSPEC_BTI_NOP)] > > + "arm_arch7 && arm_arch_cmse" > > > > That seems like a copy-paste mistake. CMSE has nothing to do with this > functionality? >=20 > This is because we don't have arm_arch8m_main, but this is equivalent to > arm_arch7 && arm_arch_cmse. IIUC it wasn't added becasue armv8-m is > basically just armv7-m + cmse. >=20 > Any other preferred way to express this? I think I'd prefer if we added an explicit arm_arch8m_main. It would help r= eadability >=20 > > + "bti" > > + [(set_attr "length" "4") > > > > The length of instructions in the arm backend is 4 by default, this set= _attr > can be omitted > > > > + (set_attr "type" "mov_reg")]) > > + > > Probably better to use the "nop" attribute here? >=20 > Done Thanks, and as in patch 10/12 I think we'll want to set the "conds" attribu= te here to "unconditional". Looks good to me otherwise! Kyrill >=20 > Thanks for reviewing, please find attached the updated version. >=20 > Andrea