From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2054.outbound.protection.outlook.com [40.107.7.54]) by sourceware.org (Postfix) with ESMTPS id 7729D3858C00 for ; Fri, 27 Jan 2023 14:17:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7729D3858C00 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=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=H7JlUcETD8RUIXYHmQ/HyTirpc32gYxURW5SYWEdNFM=; b=PpJZhQS7yYr1EneWl4znYV0pW+oJuH3f1/1IVh3DJv70IwFjIf0zjV4erSVqzyIalHyB/mvMUQ8iXgMCz1IhHqh0jQCJtJjlmLxkVkn1pJcGUEs3GF3X0ozwCFffTv9grEe+YgLKZiZaQX2f8kj4I3LN31tgzj7XrqqC8uJjE/U= Received: from AS9PR05CA0068.eurprd05.prod.outlook.com (2603:10a6:20b:499::34) by GV2PR08MB8294.eurprd08.prod.outlook.com (2603:10a6:150:be::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.22; Fri, 27 Jan 2023 14:16:56 +0000 Received: from AM7EUR03FT031.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:499:cafe::74) by AS9PR05CA0068.outlook.office365.com (2603:10a6:20b:499::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.23 via Frontend Transport; Fri, 27 Jan 2023 14:16:56 +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 AM7EUR03FT031.mail.protection.outlook.com (100.127.140.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.22 via Frontend Transport; Fri, 27 Jan 2023 14:16:56 +0000 Received: ("Tessian outbound 8038f0863a52:v132"); Fri, 27 Jan 2023 14:16:55 +0000 X-CR-MTA-TID: 64aa7808 Received: from 135105b8429d.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id BBBC639D-9F79-4B9E-A176-24A8EB4EF80D.1; Fri, 27 Jan 2023 14:16:44 +0000 Received: from EUR03-AM7-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 135105b8429d.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 27 Jan 2023 14:16:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FImItirLxw3nqcXVaYWB3ue7nndPeUjvrkTQ+MfNIlJbJp4DHma6J25RVxT6MOXpQzeXA9wCXVBeva7SKly1m6A+7g98Q/GxZFxls9rS/InDW7kQE+Mn2qaH7+nUiR+pBk0LbWhp2io9AtWZrqt9/9jhEFc6iaezxkjiikhN+Uzf24Ds6RT0DDnEvYaTvQ3XKoydKAvGWKV7jl3gfdNWE/r3TrJrIBa2NhexJsbRGPCIAo89UMmA5YPXnMugSFdr2eaNxd/ODK2QVcyBoROhS8NwyJhKpBezM2m56sonyQkxLgs/ksnoxEpAdWNEUYpy6RSqklb4pGCTkMVoDpuD+g== 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=H7JlUcETD8RUIXYHmQ/HyTirpc32gYxURW5SYWEdNFM=; b=kLgRYoc7vRbO5VcoOwtqHNpjpVykmu1Lx12twEmTrCALJ7RYMmfsbSMfplrwelyTJqlQLhsvCg7ABx0lh7h3c6XWwNBqMGFBhQ0U8u+TuOAMzwCicgbusvjF4a8jlcpoAq1jJWU3prP87mR4tgA0W8FuB0p17yEHpOHuMQ9FjGxQU/GYdYPW0KVCbbGqWmNEMQRf+dtb8b/E7+sJ7hfURA6jxZUIZb7jkJd1JYX5wE0rYyHjLmGxWIGDu2pgeY5FpephvZisSXC7EmZE6f9/oXIIu6qkrg/vCI/9yuyCG8pcskdQt3pmryMhKjOdBYlbo6C2CnInQCaQSaUOOILD8w== 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=H7JlUcETD8RUIXYHmQ/HyTirpc32gYxURW5SYWEdNFM=; b=PpJZhQS7yYr1EneWl4znYV0pW+oJuH3f1/1IVh3DJv70IwFjIf0zjV4erSVqzyIalHyB/mvMUQ8iXgMCz1IhHqh0jQCJtJjlmLxkVkn1pJcGUEs3GF3X0ozwCFffTv9grEe+YgLKZiZaQX2f8kj4I3LN31tgzj7XrqqC8uJjE/U= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by PR3PR08MB5804.eurprd08.prod.outlook.com (2603:10a6:102:83::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.23; Fri, 27 Jan 2023 14:16:42 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::7e84:c35c:e966:c886]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::7e84:c35c:e966:c886%9]) with mapi id 15.20.6043.023; Fri, 27 Jan 2023 14:16:42 +0000 From: Tamar Christina To: Richard Sandiford CC: "gcc-patches@gcc.gnu.org" , nd , Richard Earnshaw , Marcus Shawcroft , Kyrylo Tkachov Subject: RE: [PATCH]AArch64: Fix native detection in the presence of mandatory features which don't have midr values Thread-Topic: [PATCH]AArch64: Fix native detection in the presence of mandatory features which don't have midr values Thread-Index: AQHZMjs0nH3tuJgX5EC617Zb+5rMqa6yLJnVgAAiGKA= Date: Fri, 27 Jan 2023 14:16:42 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: BACDDF7874D851459096AAD88BC5D4DE.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: VI1PR08MB5325:EE_|PR3PR08MB5804:EE_|AM7EUR03FT031:EE_|GV2PR08MB8294:EE_ X-MS-Office365-Filtering-Correlation-Id: 5c63566f-f13a-48a5-54da-08db0071256b 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: k0iSfU/p+WvGMQfRgdGsdEtNGE9DHJ2N7XGxiBR+YmJ9RKE6X2kG0s3mLCxK9qvfGwR9d6eQywFTb6BEu0t3iGUyBwcMsWjCwYxpOOBEzAquIX7Ytn8IVXt+SdzaDYBKy0zCC5LjaHJdCT+jR+4O2xTuwOPFr5yWy4vHXmmhUeYTgcIOi5ZPNf29SjEDC9gQAPezkVVC2JtRQFeF68VQ9+TQd2SZHmdLhV+ot0eiqAauwjiTP8bizHmg/M2a/kDfVkoCC1JkybnSAY9pJJVbcJDp3EIMjHUrw4iUowNNJCUFwSEzRtplHemHOzsi0z4YdNbvjB/j94v/w44bVwP29T7+5oYl29lxMxA4vecwrVcgp7npS2/4NzIsq3ckJroZwIBC4vxdv40aUBaEZ9l5amAAY4AIeh9nU51hiE3Hl0cu2WWYTzUxTUzY26Rdmv8OWiYuDjhaBWha3+v2FNU0io/INt3Pe4XiREduUwgte+3Mqsge+LkjSIPxYDVpkyiUQ684HGsE5f2et5cHRtWws0U42vaCvATY+r9fPC1OqfasNb/i2razbhyp8MS1k3gm6/H24VMBoWEsLfN8qjnBcUPvZUG52/tZp1B76DC8GIQC5G/nrA4eTRBdN3gwhSSAbGgE7VOFpHWNek4moGo32aZOsBNHcfJw5alqdIB+IaJvdccEhLoEgmYLxQcZRlNyKahvgATL1f2B3d+hYXkyZ1kzl+G6JCmPWEHQgmprH0bKX/K9hMbEyMNxpvXx4/Ug7ASUwNCdvECwat+4voJFEQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB5325.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(396003)(376002)(136003)(366004)(39860400002)(346002)(451199018)(41300700001)(38070700005)(26005)(186003)(9686003)(52536014)(8676002)(66946007)(8936002)(6862004)(76116006)(66446008)(66476007)(66556008)(83380400001)(5660300002)(64756008)(55016003)(6506007)(30864003)(84970400001)(478600001)(6636002)(54906003)(122000001)(99936003)(38100700002)(7696005)(33656002)(86362001)(71200400001)(4326008)(316002)(2906002);DIR:OUT;SFP:1101; Content-Type: multipart/mixed; boundary="_002_VI1PR08MB5325EBDE06C485D387593E60FFCC9VI1PR08MB5325eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5804 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: AM7EUR03FT031.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: f55501fb-fa05-4926-93aa-08db00711d1d X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BTulVnt3M7prT+ns+O9gKPweip6c6R4FJtXUJHxmslyXW6qn9FFBVrN/QiM6qejYlcm1r3SJt8tG7ADgRraCTsARTA73K4gkecQoAwmRnuW8/c1FLG0ic1gsNeUXz0mH6DRczq+zZEdwGdA55VxcdWZARefotxbrrxCaFpczIGIRIGmIBsdfOP6poL/JiNHxaysEj04hFaz+FKlzVqh8qNoUve8G1zOLbpg1ykWk/uHLrA3mM2zoAsVbHC0tpqtrexDr6kabvgKGh33VhfB9DFyaTh0Zs6+pAFajg57VXeQZvSi75jo9KrIjD4+yQ+SQU9yvhs65fkBHUR+OGMlePj+dTYFfnRb8N1ZHPNjgksXReOSBJjPl1qHFAFAqWx+1w9Qg5E13OWPReTw+MrRL3OEQezjarSevTWHy/I159BLPUTuevVqlPZeWKCLbm7dJao/c4slqVr26voK7g5QqLL+TaTAahJjT4vsex7oQYBTWJ2Jk71qRWNBL4QNjRpxj0R92IHxidOkS7oGZNxJo5hx1eYJ0KOAOPgew5pRqaHN+gNUG0tkyetu+t1FBljvhc9DhgDxUZR0jzeieT8YK2Jmk5NOaTRlzBq2us02rEro2EtMDhGBRNmUzefUYsbwQbj76br2OtnIsKLuPqFmUHBgOehyMvDv4Gy9uFi/6ImwehXEuTDmR6CVwZKMPkFQHGisQLFtAWL5xDNeRzeWUQTUm0banrCMR/A7807Q2G6QdZ/famnC8OzpOFr1y/TunJZNl3t3VmuvaAM61eTzufR9Z9J5IZEZSkiENGH4qZnPHzC6xPy7KG/WwNWLgcn4VSvAsNp0sWnpejhfEGf/GoQ== 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:(13230025)(4636009)(396003)(136003)(376002)(346002)(39860400002)(451199018)(46966006)(40470700004)(36840700001)(41300700001)(356005)(70206006)(40460700003)(478600001)(86362001)(33656002)(7696005)(83380400001)(336012)(316002)(82310400005)(55016003)(6636002)(54906003)(40480700001)(47076005)(8676002)(4326008)(70586007)(84970400001)(5660300002)(6506007)(9686003)(30864003)(235185007)(82740400003)(36860700001)(99936003)(52536014)(26005)(186003)(81166007)(8936002)(6862004)(2906002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jan 2023 14:16:56.1215 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5c63566f-f13a-48a5-54da-08db0071256b 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: AM7EUR03FT031.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8294 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_LOTSOFHASH,KAM_SHORT,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: --_002_VI1PR08MB5325EBDE06C485D387593E60FFCC9VI1PR08MB5325eurp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Richard, > > + /* The smallest set of feature bits to toggle to enable this > > + option. */ > > aarch64_feature_flags flag_canonical; > > - aarch64_feature_flags flags_on; > > - aarch64_feature_flags flags_off; > > + /* If this feature is turned on, these bits also need to be turned > > + on. */ const unsigned long flags_on; > > + /* If this feature is turned off, these bits also need to be turned > > + off. */ const unsigned long flags_off; >=20 > Please don't undo the aarch64_feature_flags abstraction. "long" isn't > enough for x86_32 to aarch64 cross-compilers (yes, I know, but still), an= d > we're not far off running out of room in the uint64_t. The point of the > abstraction was to reduce the number of changes that we need once we > have 65 or more features, architecture levels, etc. >=20 Sorry, the duplicate copy confused me. Bootstrapped Regtested on aarch64-none-linux-gnu and no issues. Ok for master? I think it needs backporting but need to verify older compil= ers. If one is required, OK for backporting? Thanks, Tamar gcc/ChangeLog: * common/config/aarch64/aarch64-common.cc (struct aarch64_option_extension): Add native_detect_p and document struct a bit more. (all_extensions): Set new field native_detect_p. * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete unused struct. gcc/testsuite/ChangeLog: * gcc.target/aarch64/cpunative/info_19: New test. * gcc.target/aarch64/cpunative/info_20: New test. * gcc.target/aarch64/cpunative/info_21: New test. * gcc.target/aarch64/cpunative/info_22: New test. * gcc.target/aarch64/cpunative/native_cpu_19.c: New test. * gcc.target/aarch64/cpunative/native_cpu_20.c: New test. * gcc.target/aarch64/cpunative/native_cpu_21.c: New test. * gcc.target/aarch64/cpunative/native_cpu_22.c: New test. --- inline copy of patch --- diff --git a/gcc/common/config/aarch64/aarch64-common.cc b/gcc/common/confi= g/aarch64/aarch64-common.cc index a9695d60197e6585957b293d2d755a557e124d4f..5a5ebfa1b724b173dd01ec71ffd= 63662037b3b74 100644 --- a/gcc/common/config/aarch64/aarch64-common.cc +++ b/gcc/common/config/aarch64/aarch64-common.cc @@ -139,20 +139,28 @@ aarch64_handle_option (struct gcc_options *opts, /* An ISA extension in the co-processor and main instruction set space. *= / struct aarch64_option_extension { + /* The extension name to pass on to the assembler. */ const char *name; + /* The smallest set of feature bits to toggle to enable this option. */ aarch64_feature_flags flag_canonical; + /* If this feature is turned on, these bits also need to be turned on. = */ aarch64_feature_flags flags_on; + /* If this feature is turned off, these bits also need to be turned off.= */ aarch64_feature_flags flags_off; + /* Indicates whether this feature is taken into account during native cp= u + detection. */ + bool native_detect_p; }; =20 /* ISA extensions in AArch64. */ static constexpr aarch64_option_extension all_extensions[] =3D { -#define AARCH64_OPT_EXTENSION(NAME, IDENT, C, D, E, F) \ +#define AARCH64_OPT_EXTENSION(NAME, IDENT, C, D, E, FEATURE_STRING) \ {NAME, AARCH64_FL_##IDENT, feature_deps::IDENT ().explicit_on, \ - feature_deps::get_flags_off (feature_deps::root_off_##IDENT)}, + feature_deps::get_flags_off (feature_deps::root_off_##IDENT), \ + FEATURE_STRING[0]}, #include "config/aarch64/aarch64-option-extensions.def" - {NULL, 0, 0, 0} + {NULL, 0, 0, 0, false} }; =20 struct processor_name_to_arch @@ -325,9 +333,13 @@ aarch64_get_extension_string_for_isa_flags outstr +=3D opt.name; } =20 - /* Remove the features in current_flags & ~isa_flags. */ + /* Remove the features in current_flags & ~isa_flags. If the feature do= es + not have an HWCAPs then it shouldn't be taken into account for featur= e + detection because one way or another we can't tell if it's available + or not. */ for (auto &opt : all_extensions) - if (opt.flag_canonical & current_flags & ~isa_flags) + if (opt.native_detect_p + && (opt.flag_canonical & current_flags & ~isa_flags)) { current_flags &=3D ~opt.flags_off; outstr +=3D "+no"; diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index d36b57341b336a81dc2e1a975986b3e37402602a..860aeb3e5fbf655e87284be28cc= 72648c1cd71f9 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -2808,14 +2808,6 @@ static const struct attribute_spec aarch64_attribute= _table[] =3D { NULL, 0, 0, false, false, false, false, NULL, NULL } }; =20 -/* An ISA extension in the co-processor and main instruction set space. *= / -struct aarch64_option_extension -{ - const char *const name; - const unsigned long flags_on; - const unsigned long flags_off; -}; - typedef enum aarch64_cond_code { AARCH64_EQ =3D 0, AARCH64_NE, AARCH64_CS, AARCH64_CC, AARCH64_MI, AARCH6= 4_PL, diff --git a/gcc/testsuite/gcc.target/aarch64/cpunative/info_19 b/gcc/tests= uite/gcc.target/aarch64/cpunative/info_19 new file mode 100644 index 0000000000000000000000000000000000000000..616d3b26d03398a8ef3f4cdf4c5= 6b144ecf0b1c2 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/cpunative/info_19 @@ -0,0 +1,9 @@ +processor : 0 +BogoMIPS : 100.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp = asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 s= ve asimdfhm dit uscat ilrcpc flagm ssbs sb dcpodp sve2 sveaes svepmull sveb= itperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh bti +CPU implementer : 0x41 +CPU architecture: 8 +CPU variant : 0x0 +CPU part : 0xd49 +CPU revision : 2 + diff --git a/gcc/testsuite/gcc.target/aarch64/cpunative/info_20 b/gcc/tests= uite/gcc.target/aarch64/cpunative/info_20 new file mode 100644 index 0000000000000000000000000000000000000000..45d45d15f16b927ebdffa80bca7= 6270a7e2ed135 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/cpunative/info_20 @@ -0,0 +1,9 @@ +processor : 0 +BogoMIPS : 100.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp = asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 s= ve asimdfhm dit uscat ilrcpc flagm ssbs sb dcpodp sve2 sveaes svepmull sveb= itperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh bti paca p= acg +CPU implementer : 0x41 +CPU architecture: 8 +CPU variant : 0x0 +CPU part : 0xd49 +CPU revision : 2 + diff --git a/gcc/testsuite/gcc.target/aarch64/cpunative/info_21 b/gcc/tests= uite/gcc.target/aarch64/cpunative/info_21 new file mode 100644 index 0000000000000000000000000000000000000000..3c418a4bee4e2bf009e658def70= bd184c4084d16 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/cpunative/info_21 @@ -0,0 +1,9 @@ +processor : 0 +BogoMIPS : 100.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp = asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 s= ve asimdfhm dit uscat ilrcpc flagm ssbs sb dcpodp sve2 sveaes svepmull sveb= itperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh bti +CPU implementer : 0x41 +CPU architecture: 8 +CPU variant : 0x0 +CPU part : 0xd08 +CPU revision : 2 + diff --git a/gcc/testsuite/gcc.target/aarch64/cpunative/info_22 b/gcc/tests= uite/gcc.target/aarch64/cpunative/info_22 new file mode 100644 index 0000000000000000000000000000000000000000..3147eec1f443b3a7da77a89148c= 23511846ecd85 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/cpunative/info_22 @@ -0,0 +1,9 @@ +processor : 0 +BogoMIPS : 100.00 +Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp = asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 s= ve asimdfhm dit uscat ilrcpc flagm ssbs sb dcpodp sve2 sveaes svepmull sveb= itperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh bti paca p= acg +CPU implementer : 0x41 +CPU architecture: 8 +CPU variant : 0x0 +CPU part : 0xd08 +CPU revision : 2 + diff --git a/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_19.c b/g= cc/testsuite/gcc.target/aarch64/cpunative/native_cpu_19.c new file mode 100644 index 0000000000000000000000000000000000000000..980d3f79dfb03b0d8eb68f691bf= 2dedf80aed87d --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_19.c @@ -0,0 +1,14 @@ +/* { dg-do compile { target { { aarch64*-*-linux*} && native } } } */ +/* { dg-set-compiler-env-var GCC_CPUINFO "$srcdir/gcc.target/aarch64/cpuna= tive/info_19" } */ +/* { dg-additional-options "-mcpu=3Dnative" } */ + +int main() +{ + return 0; +} + +/* { dg-final { scan-assembler {\.arch armv9-a\+crc\+profile\+memtag\+sve2= -sm4\+sve2-aes\+sve2-sha3\+sve2-bitperm\+i8mm\+bf16\+nopauth\n} } } */ + +/* Test one that if the kernel doesn't report the availability of a mandat= ory + feature that it has turned it off for whatever reason. As such compile= rs + should follow along. */ diff --git a/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_20.c b/g= cc/testsuite/gcc.target/aarch64/cpunative/native_cpu_20.c new file mode 100644 index 0000000000000000000000000000000000000000..117df2b0b6cd5751d9f5175b434= 3aad9825a6c43 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_20.c @@ -0,0 +1,15 @@ +/* { dg-do compile { target { { aarch64*-*-linux*} && native } } } */ +/* { dg-set-compiler-env-var GCC_CPUINFO "$srcdir/gcc.target/aarch64/cpuna= tive/info_20" } */ +/* { dg-additional-options "-mcpu=3Dnative" } */ + +int main() +{ + return 0; +} + +/* { dg-final { scan-assembler {\.arch armv9-a\+crc\+profile\+memtag\+sve2= -sm4\+sve2-aes\+sve2-sha3\+sve2-bitperm\+i8mm\+bf16\n} } } */ + +/* Check whether features that don't have a midr name during detection are + correctly ignored. These features shouldn't affect the native detectio= n. + This particular test checks that predres is not turned off during + detection. */ diff --git a/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_21.c b/g= cc/testsuite/gcc.target/aarch64/cpunative/native_cpu_21.c new file mode 100644 index 0000000000000000000000000000000000000000..efbd02cbdc0638db85e776f1e79= 043709c11df21 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_21.c @@ -0,0 +1,13 @@ +/* { dg-do compile { target { { aarch64*-*-linux*} && native } } } */ +/* { dg-set-compiler-env-var GCC_CPUINFO "$srcdir/gcc.target/aarch64/cpuna= tive/info_21" } */ +/* { dg-additional-options "-mcpu=3Dnative" } */ + +int main() +{ + return 0; +} + +/* { dg-final { scan-assembler {\.arch armv8-a\+crc\+lse\+rcpc\+rdma\+dotp= rod\+fp16fml\+sb\+ssbs\+sve2-sm4\+sve2-aes\+sve2-sha3\+sve2-bitperm\+i8mm\+= bf16\+flagm\n} } } */ + +/* Check that an Armv8-A core doesn't fall apart on extensions without mid= r + values. */ diff --git a/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_22.c b/g= cc/testsuite/gcc.target/aarch64/cpunative/native_cpu_22.c new file mode 100644 index 0000000000000000000000000000000000000000..d431d4938265d024891b464ac3d= 069607b21d8e7 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_22.c @@ -0,0 +1,13 @@ +/* { dg-do compile { target { { aarch64*-*-linux*} && native } } } */ +/* { dg-set-compiler-env-var GCC_CPUINFO "$srcdir/gcc.target/aarch64/cpuna= tive/info_22" } */ +/* { dg-additional-options "-mcpu=3Dnative" } */ + +int main() +{ + return 0; +} + +/* { dg-final { scan-assembler {\.arch armv8-a\+crc\+lse\+rcpc\+rdma\+dotp= rod\+fp16fml\+sb\+ssbs\+sve2-sm4\+sve2-aes\+sve2-sha3\+sve2-bitperm\+i8mm\+= bf16\+flagm\+pauth\n} } } */ + +/* Check that an Armv8-A core doesn't fall apart on extensions without mid= r + values and that it enables optional features. */ --_002_VI1PR08MB5325EBDE06C485D387593E60FFCC9VI1PR08MB5325eurp_ Content-Type: application/octet-stream; name="rb16839.patch" Content-Description: rb16839.patch Content-Disposition: attachment; filename="rb16839.patch"; size=9655; creation-date="Fri, 27 Jan 2023 14:16:32 GMT"; modification-date="Fri, 27 Jan 2023 14:16:41 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb21tb24vY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1jb21tb24uY2Mg Yi9nY2MvY29tbW9uL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtY29tbW9uLmNjCmluZGV4IGE5Njk1 ZDYwMTk3ZTY1ODU5NTdiMjkzZDJkNzU1YTU1N2UxMjRkNGYuLjVhNWViZmExYjcyNGIxNzNkZDAx ZWM3MWZmZDYzNjYyMDM3YjNiNzQgMTAwNjQ0Ci0tLSBhL2djYy9jb21tb24vY29uZmlnL2FhcmNo NjQvYWFyY2g2NC1jb21tb24uY2MKKysrIGIvZ2NjL2NvbW1vbi9jb25maWcvYWFyY2g2NC9hYXJj aDY0LWNvbW1vbi5jYwpAQCAtMTM5LDIwICsxMzksMjggQEAgYWFyY2g2NF9oYW5kbGVfb3B0aW9u IChzdHJ1Y3QgZ2NjX29wdGlvbnMgKm9wdHMsCiAvKiBBbiBJU0EgZXh0ZW5zaW9uIGluIHRoZSBj by1wcm9jZXNzb3IgYW5kIG1haW4gaW5zdHJ1Y3Rpb24gc2V0IHNwYWNlLiAgKi8KIHN0cnVjdCBh YXJjaDY0X29wdGlvbl9leHRlbnNpb24KIHsKKyAgLyogVGhlIGV4dGVuc2lvbiBuYW1lIHRvIHBh c3Mgb24gdG8gdGhlIGFzc2VtYmxlci4gICovCiAgIGNvbnN0IGNoYXIgKm5hbWU7CisgIC8qIFRo ZSBzbWFsbGVzdCBzZXQgb2YgZmVhdHVyZSBiaXRzIHRvIHRvZ2dsZSB0byBlbmFibGUgdGhpcyBv cHRpb24uICAqLwogICBhYXJjaDY0X2ZlYXR1cmVfZmxhZ3MgZmxhZ19jYW5vbmljYWw7CisgIC8q IElmIHRoaXMgZmVhdHVyZSBpcyB0dXJuZWQgb24sIHRoZXNlIGJpdHMgYWxzbyBuZWVkIHRvIGJl IHR1cm5lZCBvbi4gICovCiAgIGFhcmNoNjRfZmVhdHVyZV9mbGFncyBmbGFnc19vbjsKKyAgLyog SWYgdGhpcyBmZWF0dXJlIGlzIHR1cm5lZCBvZmYsIHRoZXNlIGJpdHMgYWxzbyBuZWVkIHRvIGJl IHR1cm5lZCBvZmYuICAqLwogICBhYXJjaDY0X2ZlYXR1cmVfZmxhZ3MgZmxhZ3Nfb2ZmOworICAv KiBJbmRpY2F0ZXMgd2hldGhlciB0aGlzIGZlYXR1cmUgaXMgdGFrZW4gaW50byBhY2NvdW50IGR1 cmluZyBuYXRpdmUgY3B1CisgICAgIGRldGVjdGlvbi4gICovCisgIGJvb2wgbmF0aXZlX2RldGVj dF9wOwogfTsKIAogLyogSVNBIGV4dGVuc2lvbnMgaW4gQUFyY2g2NC4gICovCiBzdGF0aWMgY29u c3RleHByIGFhcmNoNjRfb3B0aW9uX2V4dGVuc2lvbiBhbGxfZXh0ZW5zaW9uc1tdID0KIHsKLSNk ZWZpbmUgQUFSQ0g2NF9PUFRfRVhURU5TSU9OKE5BTUUsIElERU5ULCBDLCBELCBFLCBGKSBcCisj ZGVmaW5lIEFBUkNINjRfT1BUX0VYVEVOU0lPTihOQU1FLCBJREVOVCwgQywgRCwgRSwgRkVBVFVS RV9TVFJJTkcpIFwKICAge05BTUUsIEFBUkNINjRfRkxfIyNJREVOVCwgZmVhdHVyZV9kZXBzOjpJ REVOVCAoKS5leHBsaWNpdF9vbiwgXAotICAgZmVhdHVyZV9kZXBzOjpnZXRfZmxhZ3Nfb2ZmIChm ZWF0dXJlX2RlcHM6OnJvb3Rfb2ZmXyMjSURFTlQpfSwKKyAgIGZlYXR1cmVfZGVwczo6Z2V0X2Zs YWdzX29mZiAoZmVhdHVyZV9kZXBzOjpyb290X29mZl8jI0lERU5UKSwgXAorICAgRkVBVFVSRV9T VFJJTkdbMF19LAogI2luY2x1ZGUgImNvbmZpZy9hYXJjaDY0L2FhcmNoNjQtb3B0aW9uLWV4dGVu c2lvbnMuZGVmIgotICB7TlVMTCwgMCwgMCwgMH0KKyAge05VTEwsIDAsIDAsIDAsIGZhbHNlfQog fTsKIAogc3RydWN0IHByb2Nlc3Nvcl9uYW1lX3RvX2FyY2gKQEAgLTMyNSw5ICszMzMsMTMgQEAg YWFyY2g2NF9nZXRfZXh0ZW5zaW9uX3N0cmluZ19mb3JfaXNhX2ZsYWdzCiAJb3V0c3RyICs9IG9w dC5uYW1lOwogICAgICAgfQogCi0gIC8qIFJlbW92ZSB0aGUgZmVhdHVyZXMgaW4gY3VycmVudF9m bGFncyAmIH5pc2FfZmxhZ3MuICAqLworICAvKiBSZW1vdmUgdGhlIGZlYXR1cmVzIGluIGN1cnJl bnRfZmxhZ3MgJiB+aXNhX2ZsYWdzLiAgSWYgdGhlIGZlYXR1cmUgZG9lcworICAgICBub3QgaGF2 ZSBhbiBIV0NBUHMgdGhlbiBpdCBzaG91bGRuJ3QgYmUgdGFrZW4gaW50byBhY2NvdW50IGZvciBm ZWF0dXJlCisgICAgIGRldGVjdGlvbiBiZWNhdXNlIG9uZSB3YXkgb3IgYW5vdGhlciB3ZSBjYW4n dCB0ZWxsIGlmIGl0J3MgYXZhaWxhYmxlCisgICAgIG9yIG5vdC4gICovCiAgIGZvciAoYXV0byAm b3B0IDogYWxsX2V4dGVuc2lvbnMpCi0gICAgaWYgKG9wdC5mbGFnX2Nhbm9uaWNhbCAmIGN1cnJl bnRfZmxhZ3MgJiB+aXNhX2ZsYWdzKQorICAgIGlmIChvcHQubmF0aXZlX2RldGVjdF9wCisJJiYg KG9wdC5mbGFnX2Nhbm9uaWNhbCAmIGN1cnJlbnRfZmxhZ3MgJiB+aXNhX2ZsYWdzKSkKICAgICAg IHsKIAljdXJyZW50X2ZsYWdzICY9IH5vcHQuZmxhZ3Nfb2ZmOwogCW91dHN0ciArPSAiK25vIjsK ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmNjIGIvZ2NjL2NvbmZpZy9h YXJjaDY0L2FhcmNoNjQuY2MKaW5kZXggZDM2YjU3MzQxYjMzNmE4MWRjMmUxYTk3NTk4NmIzZTM3 NDAyNjAyYS4uODYwYWViM2U1ZmJmNjU1ZTg3Mjg0YmUyOGNjNzI2NDhjMWNkNzFmOSAxMDA2NDQK LS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuY2MKKysrIGIvZ2NjL2NvbmZpZy9hYXJj aDY0L2FhcmNoNjQuY2MKQEAgLTI4MDgsMTQgKzI4MDgsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGF0dHJpYnV0ZV9zcGVjIGFhcmNoNjRfYXR0cmlidXRlX3RhYmxlW10gPQogICB7IE5VTEwsICAg ICAgICAgICAgICAgICAwLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgTlVMTCwgTlVM TCB9CiB9OwogCi0vKiBBbiBJU0EgZXh0ZW5zaW9uIGluIHRoZSBjby1wcm9jZXNzb3IgYW5kIG1h aW4gaW5zdHJ1Y3Rpb24gc2V0IHNwYWNlLiAgKi8KLXN0cnVjdCBhYXJjaDY0X29wdGlvbl9leHRl bnNpb24KLXsKLSAgY29uc3QgY2hhciAqY29uc3QgbmFtZTsKLSAgY29uc3QgdW5zaWduZWQgbG9u ZyBmbGFnc19vbjsKLSAgY29uc3QgdW5zaWduZWQgbG9uZyBmbGFnc19vZmY7Ci19OwotCiB0eXBl ZGVmIGVudW0gYWFyY2g2NF9jb25kX2NvZGUKIHsKICAgQUFSQ0g2NF9FUSA9IDAsIEFBUkNINjRf TkUsIEFBUkNINjRfQ1MsIEFBUkNINjRfQ0MsIEFBUkNINjRfTUksIEFBUkNINjRfUEwsCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9jcHVuYXRpdmUvaW5mb18x OSBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2NwdW5hdGl2ZS9pbmZvXzE5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAuLjYxNmQzYjI2ZDAzMzk4YThlZjNmNGNkZjRjNTZiMTQ0ZWNmMGIxYzIKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9jcHVuYXRpdmUv aW5mb18xOQpAQCAtMCwwICsxLDkgQEAKK3Byb2Nlc3Nvcgk6IDAKK0JvZ29NSVBTCTogMTAwLjAw CitGZWF0dXJlcyAgICAgICAgOiBmcCBhc2ltZCBldnRzdHJtIGFlcyBwbXVsbCBzaGExIHNoYTIg Y3JjMzIgYXRvbWljcyBmcGhwIGFzaW1kaHAgY3B1aWQgYXNpbWRyZG0ganNjdnQgZmNtYSBscmNw YyBkY3BvcCBzaGEzIHNtMyBzbTQgYXNpbWRkcCBzaGE1MTIgc3ZlIGFzaW1kZmhtIGRpdCB1c2Nh dCBpbHJjcGMgZmxhZ20gc3NicyBzYiBkY3BvZHAgc3ZlMiBzdmVhZXMgc3ZlcG11bGwgc3ZlYml0 cGVybSBzdmVzaGEzIHN2ZXNtNCBmbGFnbTIgZnJpbnQgc3ZlaThtbSBzdmViZjE2IGk4bW0gYmYx NiBkZ2ggYnRpCitDUFUgaW1wbGVtZW50ZXIJOiAweDQxCitDUFUgYXJjaGl0ZWN0dXJlOiA4CitD UFUgdmFyaWFudAk6IDB4MAorQ1BVIHBhcnQJOiAweGQ0OQorQ1BVIHJldmlzaW9uCTogMgorCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9jcHVuYXRpdmUvaW5m b18yMCBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2NwdW5hdGl2ZS9pbmZvXzIw Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAuLjQ1ZDQ1ZDE1ZjE2YjkyN2ViZGZmYTgwYmNhNzYyNzBhN2UyZWQxMzUKLS0t IC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9jcHVuYXRp dmUvaW5mb18yMApAQCAtMCwwICsxLDkgQEAKK3Byb2Nlc3Nvcgk6IDAKK0JvZ29NSVBTCTogMTAw LjAwCitGZWF0dXJlcyAgICAgICAgOiBmcCBhc2ltZCBldnRzdHJtIGFlcyBwbXVsbCBzaGExIHNo YTIgY3JjMzIgYXRvbWljcyBmcGhwIGFzaW1kaHAgY3B1aWQgYXNpbWRyZG0ganNjdnQgZmNtYSBs cmNwYyBkY3BvcCBzaGEzIHNtMyBzbTQgYXNpbWRkcCBzaGE1MTIgc3ZlIGFzaW1kZmhtIGRpdCB1 c2NhdCBpbHJjcGMgZmxhZ20gc3NicyBzYiBkY3BvZHAgc3ZlMiBzdmVhZXMgc3ZlcG11bGwgc3Zl Yml0cGVybSBzdmVzaGEzIHN2ZXNtNCBmbGFnbTIgZnJpbnQgc3ZlaThtbSBzdmViZjE2IGk4bW0g YmYxNiBkZ2ggYnRpIHBhY2EgcGFjZworQ1BVIGltcGxlbWVudGVyCTogMHg0MQorQ1BVIGFyY2hp dGVjdHVyZTogOAorQ1BVIHZhcmlhbnQJOiAweDAKK0NQVSBwYXJ0CTogMHhkNDkKK0NQVSByZXZp c2lvbgk6IDIKKwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQv Y3B1bmF0aXZlL2luZm9fMjEgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9jcHVu YXRpdmUvaW5mb18yMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzQxOGE0YmVlNGUyYmYwMDllNjU4ZGVmNzBiZDE4 NGM0MDg0ZDE2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fh cmNoNjQvY3B1bmF0aXZlL2luZm9fMjEKQEAgLTAsMCArMSw5IEBACitwcm9jZXNzb3IJOiAwCitC b2dvTUlQUwk6IDEwMC4wMAorRmVhdHVyZXMgICAgICAgIDogZnAgYXNpbWQgZXZ0c3RybSBhZXMg cG11bGwgc2hhMSBzaGEyIGNyYzMyIGF0b21pY3MgZnBocCBhc2ltZGhwIGNwdWlkIGFzaW1kcmRt IGpzY3Z0IGZjbWEgbHJjcGMgZGNwb3Agc2hhMyBzbTMgc200IGFzaW1kZHAgc2hhNTEyIHN2ZSBh c2ltZGZobSBkaXQgdXNjYXQgaWxyY3BjIGZsYWdtIHNzYnMgc2IgZGNwb2RwIHN2ZTIgc3ZlYWVz IHN2ZXBtdWxsIHN2ZWJpdHBlcm0gc3Zlc2hhMyBzdmVzbTQgZmxhZ20yIGZyaW50IHN2ZWk4bW0g c3ZlYmYxNiBpOG1tIGJmMTYgZGdoIGJ0aQorQ1BVIGltcGxlbWVudGVyCTogMHg0MQorQ1BVIGFy Y2hpdGVjdHVyZTogOAorQ1BVIHZhcmlhbnQJOiAweDAKK0NQVSBwYXJ0CTogMHhkMDgKK0NQVSBy ZXZpc2lvbgk6IDIKKwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNo NjQvY3B1bmF0aXZlL2luZm9fMjIgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9j cHVuYXRpdmUvaW5mb18yMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTQ3ZWVjMWY0NDNiM2E3ZGE3N2E4OTE0OGMy MzUxMTg0NmVjZDg1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2FhcmNoNjQvY3B1bmF0aXZlL2luZm9fMjIKQEAgLTAsMCArMSw5IEBACitwcm9jZXNzb3IJOiAw CitCb2dvTUlQUwk6IDEwMC4wMAorRmVhdHVyZXMgICAgICAgIDogZnAgYXNpbWQgZXZ0c3RybSBh ZXMgcG11bGwgc2hhMSBzaGEyIGNyYzMyIGF0b21pY3MgZnBocCBhc2ltZGhwIGNwdWlkIGFzaW1k cmRtIGpzY3Z0IGZjbWEgbHJjcGMgZGNwb3Agc2hhMyBzbTMgc200IGFzaW1kZHAgc2hhNTEyIHN2 ZSBhc2ltZGZobSBkaXQgdXNjYXQgaWxyY3BjIGZsYWdtIHNzYnMgc2IgZGNwb2RwIHN2ZTIgc3Zl YWVzIHN2ZXBtdWxsIHN2ZWJpdHBlcm0gc3Zlc2hhMyBzdmVzbTQgZmxhZ20yIGZyaW50IHN2ZWk4 bW0gc3ZlYmYxNiBpOG1tIGJmMTYgZGdoIGJ0aSBwYWNhIHBhY2cKK0NQVSBpbXBsZW1lbnRlcgk6 IDB4NDEKK0NQVSBhcmNoaXRlY3R1cmU6IDgKK0NQVSB2YXJpYW50CTogMHgwCitDUFUgcGFydAk6 IDB4ZDA4CitDUFUgcmV2aXNpb24JOiAyCisKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hYXJjaDY0L2NwdW5hdGl2ZS9uYXRpdmVfY3B1XzE5LmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYWFyY2g2NC9jcHVuYXRpdmUvbmF0aXZlX2NwdV8xOS5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu Ljk4MGQzZjc5ZGZiMDNiMGQ4ZWI2OGY2OTFiZjJkZWRmODBhZWQ4N2QKLS0tIC9kZXYvbnVsbAor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9jcHVuYXRpdmUvbmF0aXZlX2Nw dV8xOS5jCkBAIC0wLDAgKzEsMTQgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCB7IHsg YWFyY2g2NCotKi1saW51eCp9ICYmIG5hdGl2ZSB9IH0gfSAqLworLyogeyBkZy1zZXQtY29tcGls ZXItZW52LXZhciBHQ0NfQ1BVSU5GTyAiJHNyY2Rpci9nY2MudGFyZ2V0L2FhcmNoNjQvY3B1bmF0 aXZlL2luZm9fMTkiIH0gKi8KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItbWNwdT1uYXRp dmUiIH0gKi8KKworaW50IG1haW4oKQoreworICByZXR1cm4gMDsKK30KKworLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyIHtcLmFyY2ggYXJtdjktYVwrY3JjXCtwcm9maWxlXCttZW10YWdc K3N2ZTItc200XCtzdmUyLWFlc1wrc3ZlMi1zaGEzXCtzdmUyLWJpdHBlcm1cK2k4bW1cK2JmMTZc K25vcGF1dGhcbn0gfSB9ICovCisKKy8qIFRlc3Qgb25lIHRoYXQgaWYgdGhlIGtlcm5lbCBkb2Vz bid0IHJlcG9ydCB0aGUgYXZhaWxhYmlsaXR5IG9mIGEgbWFuZGF0b3J5CisgICBmZWF0dXJlIHRo YXQgaXQgaGFzIHR1cm5lZCBpdCBvZmYgZm9yIHdoYXRldmVyIHJlYXNvbi4gIEFzIHN1Y2ggY29t cGlsZXJzCisgICBzaG91bGQgZm9sbG93IGFsb25nLiAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvY3B1bmF0aXZlL25hdGl2ZV9jcHVfMjAuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2NwdW5hdGl2ZS9uYXRpdmVfY3B1XzIwLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMC4uMTE3ZGYyYjBiNmNkNTc1MWQ5ZjUxNzViNDM0M2FhZDk4MjVhNmM0MwotLS0gL2Rl di9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2NwdW5hdGl2ZS9u YXRpdmVfY3B1XzIwLmMKQEAgLTAsMCArMSwxNSBAQAorLyogeyBkZy1kbyBjb21waWxlIHsgdGFy Z2V0IHsgeyBhYXJjaDY0Ki0qLWxpbnV4Kn0gJiYgbmF0aXZlIH0gfSB9ICovCisvKiB7IGRnLXNl dC1jb21waWxlci1lbnYtdmFyIEdDQ19DUFVJTkZPICIkc3JjZGlyL2djYy50YXJnZXQvYWFyY2g2 NC9jcHVuYXRpdmUvaW5mb18yMCIgfSAqLworLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1t Y3B1PW5hdGl2ZSIgfSAqLworCitpbnQgbWFpbigpCit7CisgIHJldHVybiAwOworfQorCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIge1wuYXJjaCBhcm12OS1hXCtjcmNcK3Byb2ZpbGVc K21lbXRhZ1wrc3ZlMi1zbTRcK3N2ZTItYWVzXCtzdmUyLXNoYTNcK3N2ZTItYml0cGVybVwraTht bVwrYmYxNlxufSB9IH0gKi8KKworLyogQ2hlY2sgd2hldGhlciBmZWF0dXJlcyB0aGF0IGRvbid0 IGhhdmUgYSBtaWRyIG5hbWUgZHVyaW5nIGRldGVjdGlvbiBhcmUKKyAgIGNvcnJlY3RseSBpZ25v cmVkLiAgVGhlc2UgZmVhdHVyZXMgc2hvdWxkbid0IGFmZmVjdCB0aGUgbmF0aXZlIGRldGVjdGlv bi4KKyAgIFRoaXMgcGFydGljdWxhciB0ZXN0IGNoZWNrcyB0aGF0IHByZWRyZXMgaXMgbm90IHR1 cm5lZCBvZmYgZHVyaW5nCisgICBkZXRlY3Rpb24uICAgKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2NwdW5hdGl2ZS9uYXRpdmVfY3B1XzIxLmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9jcHVuYXRpdmUvbmF0aXZlX2NwdV8yMS5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAuLmVmYmQwMmNiZGMwNjM4ZGI4NWU3NzZmMWU3OTA0MzcwOWMxMWRmMjEKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9jcHVuYXRpdmUv bmF0aXZlX2NwdV8yMS5jCkBAIC0wLDAgKzEsMTMgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB7IHRh cmdldCB7IHsgYWFyY2g2NCotKi1saW51eCp9ICYmIG5hdGl2ZSB9IH0gfSAqLworLyogeyBkZy1z ZXQtY29tcGlsZXItZW52LXZhciBHQ0NfQ1BVSU5GTyAiJHNyY2Rpci9nY2MudGFyZ2V0L2FhcmNo NjQvY3B1bmF0aXZlL2luZm9fMjEiIH0gKi8KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICIt bWNwdT1uYXRpdmUiIH0gKi8KKworaW50IG1haW4oKQoreworICByZXR1cm4gMDsKK30KKworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyIHtcLmFyY2ggYXJtdjgtYVwrY3JjXCtsc2VcK3Jj cGNcK3JkbWFcK2RvdHByb2RcK2ZwMTZmbWxcK3NiXCtzc2JzXCtzdmUyLXNtNFwrc3ZlMi1hZXNc K3N2ZTItc2hhM1wrc3ZlMi1iaXRwZXJtXCtpOG1tXCtiZjE2XCtmbGFnbVxufSB9IH0gKi8KKwor LyogQ2hlY2sgdGhhdCBhbiBBcm12OC1BIGNvcmUgZG9lc24ndCBmYWxsIGFwYXJ0IG9uIGV4dGVu c2lvbnMgd2l0aG91dCBtaWRyCisgICB2YWx1ZXMuICAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvY3B1bmF0aXZlL25hdGl2ZV9jcHVfMjIuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2NwdW5hdGl2ZS9uYXRpdmVfY3B1XzIyLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMC4uZDQzMWQ0OTM4MjY1ZDAyNDg5MWI0NjRhYzNkMDY5NjA3YjIxZDhlNwotLS0gL2Rl di9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2NwdW5hdGl2ZS9u YXRpdmVfY3B1XzIyLmMKQEAgLTAsMCArMSwxMyBAQAorLyogeyBkZy1kbyBjb21waWxlIHsgdGFy Z2V0IHsgeyBhYXJjaDY0Ki0qLWxpbnV4Kn0gJiYgbmF0aXZlIH0gfSB9ICovCisvKiB7IGRnLXNl dC1jb21waWxlci1lbnYtdmFyIEdDQ19DUFVJTkZPICIkc3JjZGlyL2djYy50YXJnZXQvYWFyY2g2 NC9jcHVuYXRpdmUvaW5mb18yMiIgfSAqLworLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1t Y3B1PW5hdGl2ZSIgfSAqLworCitpbnQgbWFpbigpCit7CisgIHJldHVybiAwOworfQorCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIge1wuYXJjaCBhcm12OC1hXCtjcmNcK2xzZVwrcmNw Y1wrcmRtYVwrZG90cHJvZFwrZnAxNmZtbFwrc2JcK3NzYnNcK3N2ZTItc200XCtzdmUyLWFlc1wr c3ZlMi1zaGEzXCtzdmUyLWJpdHBlcm1cK2k4bW1cK2JmMTZcK2ZsYWdtXCtwYXV0aFxufSB9IH0g Ki8KKworLyogQ2hlY2sgdGhhdCBhbiBBcm12OC1BIGNvcmUgZG9lc24ndCBmYWxsIGFwYXJ0IG9u IGV4dGVuc2lvbnMgd2l0aG91dCBtaWRyCisgICB2YWx1ZXMgYW5kIHRoYXQgaXQgZW5hYmxlcyBv cHRpb25hbCBmZWF0dXJlcy4gICovCg== --_002_VI1PR08MB5325EBDE06C485D387593E60FFCC9VI1PR08MB5325eurp_--