From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 74126 invoked by alias); 25 Oct 2016 16:30:30 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 74043 invoked by uid 89); 25 Oct 2016 16:30:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.0 required=5.0 tests=BAYES_00,KAM_LOTSOFHASH,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=msr, tAPSR_nzcvq, 6532, BUILT_IN_MD X-HELO: foss.arm.com Received: from foss.arm.com (HELO foss.arm.com) (217.140.101.70) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 25 Oct 2016 16:30:21 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A03CB28; Tue, 25 Oct 2016 09:30:20 -0700 (PDT) Received: from [10.2.206.246] (e107157-lin.cambridge.arm.com [10.2.206.246]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 306913F220; Tue, 25 Oct 2016 09:30:20 -0700 (PDT) Subject: Re: [PATCH 7/7, GCC, ARM, V8M] Added support for ARMV8-M Security Extension cmse_nonsecure_caller intrinsic To: gcc-patches@gcc.gnu.org References: <5796116C.6010100@arm.com> <57961419.8040904@arm.com> <57BD7EA4.4010500@arm.com> Cc: Kyrill Tkachov From: "Andre Vieira (lists)" Message-ID: <580F889A.1030802@arm.com> Date: Tue, 25 Oct 2016 16:30:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <57BD7EA4.4010500@arm.com> Content-Type: multipart/mixed; boundary="------------030903090900030109070001" X-IsSubscribed: yes X-SW-Source: 2016-10/txt/msg02051.txt.bz2 This is a multi-part message in MIME format. --------------030903090900030109070001 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-length: 3893 On 24/08/16 12:01, Andre Vieira (lists) wrote: > On 25/07/16 14:28, Andre Vieira (lists) wrote: >> This patch adds support ARMv8-M's Security Extension's >> cmse_nonsecure_caller intrinsic. This intrinsic is used to check whether >> an entry function was called from a non-secure state. >> See Section 5.4.3 of ARM®v8-M Security Extensions: Requirements on >> Development Tools >> (http://infocenter.arm.com/help/topic/com.arm.doc.ecm0359818/index.html) >> for further details. >> >> The FIXME in config/arm/arm_cmse.h is for a diagnostic message that is >> suggested in the ARMv8-M Security Extensions document mentioned above, >> to diagnose the use of the cmse_nonsecure_caller intrinsic outside of >> functions with the 'cmse_nonsecure_entry' attribute. Checking whether >> the intrinsic is called from within such functions can easily be done >> inside 'arm_expand_builtin'. However, making the warning point to the >> right location is more complicated. The ARMv8-M Security Extensions >> specification does mention that such a diagnostic might become >> mandatory, so I might have to pick this up later, otherwise it is left >> as a potential extra feature. >> >> >> *** gcc/ChangeLog *** >> 2016-07-25 Andre Vieira >> Thomas Preud'homme >> >> * config/arm/arm-builtins.c (arm_builtins): Define >> ARM_BUILTIN_CMSE_NONSECURE_CALLER. >> (bdesc_2arg): Add line for cmse_nonsecure_caller. >> (arm_expand_builtin): Handle cmse_nonsecure_caller. >> * config/arm/arm_cmse.h (cmse_nonsecure_caller): New. >> >> *** gcc/testsuite/ChangeLog *** >> 2016-07-25 Andre Vieira >> Thomas Preud'homme >> >> * gcc.target/arm/cmse/cmse-1.c: Add test for >> cmse_nonsecure_caller. >> > Added more documentation as requested. > > --- > > This patch adds support ARMv8-M's Security Extension's > cmse_nonsecure_caller intrinsic. This intrinsic is used to check whether > an entry function was called from a non-secure state. > See Section 5.4.3 of ARM®v8-M Security Extensions: Requirements on > Development Tools > (http://infocenter.arm.com/help/topic/com.arm.doc.ecm0359818/index.html) > for further details. > > The FIXME in config/arm/arm_cmse.h is for a diagnostic message that is > suggested in the ARMv8-M Security Extensions document mentioned above, > to diagnose the use of the cmse_nonsecure_caller intrinsic outside of > functions with the 'cmse_nonsecure_entry' attribute. Checking whether > the intrinsic is called from within such functions can easily be done > inside 'arm_expand_builtin'. However, making the warning point to the > right location is more complicated. The ARMv8-M Security Extensions > specification does mention that such a diagnostic might become > mandatory, so I might have to pick this up later, otherwise it is left > as a potential extra feature. > > > *** gcc/ChangeLog *** > 2016-07-xx Andre Vieira > Thomas Preud'homme > > * config/arm/arm-builtins.c (arm_builtins): Define > ARM_BUILTIN_CMSE_NONSECURE_CALLER. > (bdesc_2arg): Add line for cmse_nonsecure_caller. > (arm_expand_builtin): Handle cmse_nonsecure_caller. > * config/arm/arm_cmse.h (cmse_nonsecure_caller): New. > * doc/extend.texi (ARM ARMv8-M Security Extensions): New intrinsic. > > *** gcc/testsuite/ChangeLog *** > 2016-07-xx Andre Vieira > Thomas Preud'homme > > * gcc.target/arm/cmse/cmse-1.c: Add test for > cmse_nonsecure_caller. > Hi, Rebased previous patch on top of trunk as requested. No changes to ChangeLog. Cheers, Andre --------------030903090900030109070001 Content-Type: text/plain; charset=UTF-8; name="diff7" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="diff7" Content-length: 5454 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL2FybS1idWlsdGlucy5jIGIv Z2NjL2NvbmZpZy9hcm0vYXJtLWJ1aWx0aW5zLmMKaW5kZXggZTczMDQzZGI2 ZGI2OWZhNjRiYjFlNzJjZjcxYTM2ZDcxNjkwNjJkYi4uNjhmYTE3ZjA3MDk3 YmRhOWY4MjIwZDdlODZmZmQyZGQ0ZmRiZjE2OSAxMDA2NDQKLS0tIGEvZ2Nj L2NvbmZpZy9hcm0vYXJtLWJ1aWx0aW5zLmMKKysrIGIvZ2NjL2NvbmZpZy9h cm0vYXJtLWJ1aWx0aW5zLmMKQEAgLTUyOCw2ICs1MjgsOCBAQCBlbnVtIGFy bV9idWlsdGlucwogICBBUk1fQlVJTFRJTl9HRVRfRlBTQ1IsCiAgIEFSTV9C VUlMVElOX1NFVF9GUFNDUiwKIAorICBBUk1fQlVJTFRJTl9DTVNFX05PTlNF Q1VSRV9DQUxMRVIsCisKICN1bmRlZiBDUllQVE8xCiAjdW5kZWYgQ1JZUFRP MgogI3VuZGVmIENSWVBUTzMKQEAgLTE4MzIsNiArMTgzNCwxNyBAQCBhcm1f aW5pdF9idWlsdGlucyAodm9pZCkKIAk9IGFkZF9idWlsdGluX2Z1bmN0aW9u ICgiX19idWlsdGluX2FybV9zdGZzY3IiLCBmdHlwZV9zZXRfZnBzY3IsCiAJ CQkJQVJNX0JVSUxUSU5fU0VUX0ZQU0NSLCBCVUlMVF9JTl9NRCwgTlVMTCwg TlVMTF9UUkVFKTsKICAgICB9CisKKyAgaWYgKGFybV9hcmNoX2Ntc2UpCisg ICAgeworICAgICAgdHJlZSBmdHlwZV9jbXNlX25vbnNlY3VyZV9jYWxsZXIK Kwk9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAodW5zaWduZWRfdHlwZV9u b2RlLCBOVUxMKTsKKyAgICAgIGFybV9idWlsdGluX2RlY2xzW0FSTV9CVUlM VElOX0NNU0VfTk9OU0VDVVJFX0NBTExFUl0KKwk9IGFkZF9idWlsdGluX2Z1 bmN0aW9uICgiX19idWlsdGluX2FybV9jbXNlX25vbnNlY3VyZV9jYWxsZXIi LAorCQkJCWZ0eXBlX2Ntc2Vfbm9uc2VjdXJlX2NhbGxlciwKKwkJCQlBUk1f QlVJTFRJTl9DTVNFX05PTlNFQ1VSRV9DQUxMRVIsIEJVSUxUX0lOX01ELAor CQkJCU5VTEwsIE5VTExfVFJFRSk7CisgICAgfQogfQogCiAvKiBSZXR1cm4g dGhlIEFSTSBidWlsdGluIGZvciBDT0RFLiAgKi8KQEAgLTI0NTIsNiArMjQ2 NSwxMiBAQCBhcm1fZXhwYW5kX2J1aWx0aW4gKHRyZWUgZXhwLAogICAgICAg ZW1pdF9pbnNuIChwYXQpOwogICAgICAgcmV0dXJuIHRhcmdldDsKIAorICAg IGNhc2UgQVJNX0JVSUxUSU5fQ01TRV9OT05TRUNVUkVfQ0FMTEVSOgorICAg ICAgdGFyZ2V0ID0gZ2VuX3JlZ19ydHggKFNJbW9kZSk7CisgICAgICBvcDAg PSBhcm1fcmV0dXJuX2FkZHIgKDAsIE5VTExfUlRYKTsKKyAgICAgIGVtaXRf aW5zbiAoZ2VuX2FkZHNpMyAodGFyZ2V0LCBvcDAsIGNvbnN0MV9ydHgpKTsK KyAgICAgIHJldHVybiB0YXJnZXQ7CisKICAgICBjYXNlIEFSTV9CVUlMVElO X1RFWFRSTVNCOgogICAgIGNhc2UgQVJNX0JVSUxUSU5fVEVYVFJNVUI6CiAg ICAgY2FzZSBBUk1fQlVJTFRJTl9URVhUUk1TSDoKZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcvYXJtL2FybV9jbXNlLmggYi9nY2MvY29uZmlnL2FybS9hcm1f Y21zZS5oCmluZGV4IGI0MjMyOTM3YzZhZTA0NzU0YTZiYmM1MTNiMTQzNjcy YTRiZTU1MzAuLmQzZjUyOWNjZTkwYjhhN2VjZjgxMzJhZDQwODQzMjcwZTBi MjI5ZDIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYXJtL2FybV9jbXNlLmgK KysrIGIvZ2NjL2NvbmZpZy9hcm0vYXJtX2Ntc2UuaApAQCAtMTYzLDYgKzE2 MywxMyBAQCBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18pKQog Y21zZV9UVEFUICh2b2lkICpfX3ApCiBfX0NNU0VfVFRfQVNNIChhdCkKIAor LyogRklYTUU6IGRpYWdub3NlIHVzZSBvdXRzaWRlIGNtc2Vfbm9uc2VjdXJl X2VudHJ5IGZ1bmN0aW9ucy4gICovCitfX2V4dGVuc2lvbl9fIHN0YXRpYyBf X2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f KSkKK2Ntc2Vfbm9uc2VjdXJlX2NhbGxlciAodm9pZCkKK3sKKyAgcmV0dXJu IF9fYnVpbHRpbl9hcm1fY21zZV9ub25zZWN1cmVfY2FsbGVyICgpOworfQor CiAjZGVmaW5lIENNU0VfQVVfTk9OU0VDVVJFCTIKICNkZWZpbmUgQ01TRV9N UFVfTk9OU0VDVVJFCTE2CiAjZGVmaW5lIENNU0VfTk9OU0VDVVJFCQkxOApk aWZmIC0tZ2l0IGEvZ2NjL2RvYy9leHRlbmQudGV4aSBiL2djYy9kb2MvZXh0 ZW5kLnRleGkKaW5kZXggNDYyZTZjNzFlMjA3OTFiMzVmMDJhZGFiZmM5N2I5 YjAxM2ZkMjk2YS4uODhmNmUwMTRjM2RlZjhlNmEyZDI0NTJkZjVkNDkzN2E0 ZjBkZDFlZiAxMDA2NDQKLS0tIGEvZ2NjL2RvYy9leHRlbmQudGV4aQorKysg Yi9nY2MvZG9jL2V4dGVuZC50ZXhpCkBAIC0xMjYyNSw2ICsxMjYyNSw3IEBA IGNtc2VfYWRkcmVzc19pbmZvX3QgY21zZV9UVEFUX2ZwdHIgKEZQVFIpCiB2 b2lkICogY21zZV9jaGVja19hZGRyZXNzX3JhbmdlICh2b2lkICosIHNpemVf dCwgaW50KQogdHlwZW9mKHApIGNtc2VfbnNmcHRyX2NyZWF0ZSAoRlBUUiBw KQogaW50cHRyX3QgY21zZV9pc19uc2ZwdHIgKEZQVFIpCitpbnQgY21zZV9u b25zZWN1cmVfY2FsbGVyICh2b2lkKQogQGVuZCBzbWFsbGV4YW1wbGUKIAog QG5vZGUgQVZSIEJ1aWx0LWluIEZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9jbXNlL2Ntc2UtMS5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9jbXNlL2Ntc2UtMS5jCmluZGV4 IGQ1YjlhMmQ5ZDU5NTY5ZGUxNzBkYTgxNGFlNjYwZTlmYjJiOTQzZTcuLmRk Y2YxMmEzMGE2YzE4MDY5NjlkMjM5YzQ0OGRhODFjY2Y0OTUzMmUgMTAwNjQ0 Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vY21zZS9jbXNl LTEuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL2Ntc2Uv Y21zZS0xLmMKQEAgLTY1LDMgKzY1LDMyIEBAIGludCBmb28gKGNoYXIgKiBw KQogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJ0dGF0 ICIgMiB9IH0gKi8KIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyAiYmwuY21zZV9jaGVja19hZGRyZXNzX3JhbmdlIiA3IH0gfSAqLwog LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAiY21zZV9jaGVj a19wb2ludGVkX29iamVjdCIgfSB9ICovCisKK3R5cGVkZWYgaW50ICgqaW50 X3JldF9mdW5jcHRyX3QpICh2b2lkKTsKK3R5cGVkZWYgaW50IF9fYXR0cmli dXRlX18gKChjbXNlX25vbnNlY3VyZV9jYWxsKSkgKCppbnRfcmV0X25zZnVu Y3B0cl90KSAodm9pZCk7CisKK2ludCBfX2F0dHJpYnV0ZV9fICgoY21zZV9u b25zZWN1cmVfZW50cnkpKQorYmF6ICh2b2lkKQoreworICByZXR1cm4gY21z ZV9ub25zZWN1cmVfY2FsbGVyICgpOworfQorCitpbnQgX19hdHRyaWJ1dGVf XyAoKGNtc2Vfbm9uc2VjdXJlX2VudHJ5KSkKK3F1eCAoaW50X3JldF9mdW5j cHRyX3QgaW50X3JldF9mdW5jcHRyKQoreworICBpbnRfcmV0X25zZnVuY3B0 cl90IGludF9yZXRfbnNmdW5jX3B0cjsKKworICBpZiAoY21zZV9pc19uc2Zw dHIgKGludF9yZXRfZnVuY3B0cikpCisgICAgeworICAgICAgaW50X3JldF9u c2Z1bmNfcHRyID0gY21zZV9uc2ZwdHJfY3JlYXRlIChpbnRfcmV0X2Z1bmNw dHIpOworICAgICAgcmV0dXJuIGludF9yZXRfbnNmdW5jX3B0ciAoKTsKKyAg ICB9CisgIHJldHVybiAwOworfQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyICJiYXo6IiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlciAiX19hY2xlX3NlX2JhejoiIH0gfSAqLworLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAiXHRjbXNlX25vbnNlY3VyZV9jYWxs ZXIiIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tcnRsLWR1bXAgImFu ZC4qcmVnLipjb25zdF9pbnQgMSIgZXhwYW5kIH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyICJiaWMiIH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyICJwdXNoXHRce3I0LCByNSwgcjYiIH0g fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJtc3JcdEFQ U1JfbnpjdnEiIH0gfSAqLwo= --------------030903090900030109070001--