From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx07-00178001.pphosted.com (mx08-00178001.pphosted.com [91.207.212.93]) by sourceware.org (Postfix) with ESMTPS id DBF27384AB47 for ; Thu, 2 May 2024 10:51:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DBF27384AB47 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=foss.st.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org DBF27384AB47 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=91.207.212.93 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714647088; cv=none; b=aY2dNMacwk6oLlBcPQQqOi1cMHn83AHF+Z45g6Lg1tE4D3C2SKwrGNOIlSMj4UN+aaSS0Dkvredu7JMs7mx8zI588CGtUno8TmrxcN9gkIx8Tk6Avmur0xslup4VI5aBJK4J43SjQOyziYpmkf/i360fsPwokDuYoe5yyWAYio8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714647088; c=relaxed/simple; bh=HA0AeQnNzrFxQpZKjUe9/4VYlT0I4r4uno+5jAqr3i4=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=qXrSWMNH+LLaEyeG7ukU3Vkq2721JUmpB3Vo/jg6323cPZiyolQ9csikrzDr/hwvBr9OeUvGCa9wg8L43N4KHPfCfVOOJnTWppTAtiCeyYQOYyPRzaPNSRXRSiXfC6TOm0d2nsVdpLdo8i5mxGyWK4/0+9BRTK3qINxL8Tr/z+E= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0046660.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4428YO72001673; Thu, 2 May 2024 12:51:24 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s= selector1; bh=PXY7ZxESvncJmrq+T+cNUR+XICu9bJuia4osFbS2zYM=; b=Ht OoimlTNOW/KFrArGBzZ2HuBBZsuoCzn8V0qotv2EIortMyj4A/YcH7lkMbxgpreL uRnu1GHt5NR9OPCOrCWcCr69YprSqOc6dBM9LJG+9b06mGnZVq9lZG3Y6oOMqie3 B0dIOWIk4xFW5zUi624aO62hYuQPLnAsnwKH23RT8Qva9fkn518lWTPyVQAR6irz RDD2LEXFuvZvtLwBywNEa5OA7IXbzD5XahrkMWeXIeHgxlOWFjQcwLoscBrH4EtP FUtmBTwdsQF34xLAM0TVEhCIW7RY/GIiVZhn/RJ2dyMQjNmCStyhcDB3Q9l/xSt7 Z9vJ4Jlwj8cinGhqTLWw== Received: from beta.dmz-ap.st.com (beta.dmz-ap.st.com [138.198.100.35]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 3xrpg53fve-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 May 2024 12:51:24 +0200 (MEST) Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-ap.st.com (STMicroelectronics) with ESMTP id 71EFF4002D; Thu, 2 May 2024 12:51:19 +0200 (CEST) Received: from Webmail-eu.st.com (shfdag1node3.st.com [10.75.129.71]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 39962211F1D; Thu, 2 May 2024 12:51:05 +0200 (CEST) Received: from jkgcxl0004.jkg.st.com (10.74.22.255) by SHFDAG1NODE3.st.com (10.75.129.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 2 May 2024 12:51:04 +0200 From: =?UTF-8?q?Torbj=C3=B6rn=20SVENSSON?= To: CC: , , , =?UTF-8?q?Torbj=C3=B6rn=20SVENSSON?= Subject: [PATCH v2] testsuite: Verify r0-r3 are extended with CMSE Date: Thu, 2 May 2024 12:50:46 +0200 Message-ID: <20240502105045.2505591-1-torbjorn.svensson@foss.st.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <07fde3e9-c08a-4a05-839f-86c8a18efec3@arm.com> References: <07fde3e9-c08a-4a05-839f-86c8a18efec3@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Originating-IP: [10.74.22.255] X-ClientProxiedBy: SHFCAS1NODE2.st.com (10.75.129.73) To SHFDAG1NODE3.st.com (10.75.129.71) X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1011,Hydra:6.0.650,FMLib:17.11.176.26 definitions=2024-05-02_01,2024-05-02_01,2023-05-22_02 X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS,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 List-Id: Add regression test to the existing zero/sign extend tests for CMSE to verify that r0, r1, r2 and r3 are properly extended, not just r0. boolCharShortEnumSecureFunc test is done using -O0 to ensure the instructions are in a predictable order. gcc/testsuite/ChangeLog: * gcc.target/arm/cmse/extend-param.c: Add regression test. Add -fshort-enums. * gcc.target/arm/cmse/extend-return.c: Add -fshort-enums option. Signed-off-by: Torbjörn SVENSSON --- .../gcc.target/arm/cmse/extend-param.c | 21 +++++++++++++++---- .../gcc.target/arm/cmse/extend-return.c | 4 ++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/gcc/testsuite/gcc.target/arm/cmse/extend-param.c b/gcc/testsuite/gcc.target/arm/cmse/extend-param.c index 01fac786238..d01ef87e0be 100644 --- a/gcc/testsuite/gcc.target/arm/cmse/extend-param.c +++ b/gcc/testsuite/gcc.target/arm/cmse/extend-param.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mcmse" } */ +/* { dg-options "-mcmse -fshort-enums" } */ /* { dg-final { check-function-bodies "**" "" "" } } */ #include @@ -78,7 +78,6 @@ __attribute__((cmse_nonsecure_entry)) char enumSecureFunc (enum offset index) { if (index >= ARRAY_SIZE) return 0; return array[index]; - } /* @@ -88,9 +87,23 @@ __attribute__((cmse_nonsecure_entry)) char enumSecureFunc (enum offset index) { ** ... */ __attribute__((cmse_nonsecure_entry)) char boolSecureFunc (bool index) { - if (index >= ARRAY_SIZE) return 0; return array[index]; +} -} \ No newline at end of file +/* +**__acle_se_boolCharShortEnumSecureFunc: +** ... +** uxtb r0, r0 +** uxtb r1, r1 +** uxth r2, r2 +** uxtb r3, r3 +** ... +*/ +__attribute__((cmse_nonsecure_entry,optimize(0))) char boolCharShortEnumSecureFunc (bool a, unsigned char b, unsigned short c, enum offset d) { + size_t index = a + b + c + d; + if (index >= ARRAY_SIZE) + return 0; + return array[index]; +} diff --git a/gcc/testsuite/gcc.target/arm/cmse/extend-return.c b/gcc/testsuite/gcc.target/arm/cmse/extend-return.c index cf731ed33df..081de0d699f 100644 --- a/gcc/testsuite/gcc.target/arm/cmse/extend-return.c +++ b/gcc/testsuite/gcc.target/arm/cmse/extend-return.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-mcmse" } */ +/* { dg-options "-mcmse -fshort-enums" } */ /* { dg-final { check-function-bodies "**" "" "" } } */ #include @@ -89,4 +89,4 @@ unsigned char __attribute__((noipa)) enumNonsecure0 (ns_enum_foo_t * ns_foo_p) unsigned char boolNonsecure0 (ns_bool_foo_t * ns_foo_p) { return ns_foo_p (); -} \ No newline at end of file +} -- 2.25.1