From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id 8F7F6384DEFC for ; Mon, 19 Feb 2024 09:48:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8F7F6384DEFC 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 8F7F6384DEFC Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708336129; cv=none; b=mmc4E+FbsnSLxAzfqozSwVmgx70kBr8Q6qwrZQEmzhaF4Se16MOyiXcAIRYMhMH0im5rdAuYS5hcSaveJpsAgGJ7Bp7vZb81lDZkmL8Yotzsq/KNUjBZQlQivvKk+RawtD/YSfy1FpDekOYxG17rK99DS4KrS+RUrdh9ycddQdQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708336129; c=relaxed/simple; bh=cPCJwe5GKQQzxwUDTeXmMhSMYMnaR/snmggfdwVo4Vw=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=I5epbirIrwdlnQrpF69swHaUbvnAv2iwigoG3HMQCnxLm+JJTWsfLUUG88CYtGRwYqTouJur8FrFxvRgeHhwn4c/tKWEvFbyS8gjZMZ0js8FrUzfDmjaHDV6pSDXyf4GzOP2XM+FE4P6wcrv7cQA00h8VNkQhPFTzcvya2mnYCI= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 07D66FEC; Mon, 19 Feb 2024 01:49:25 -0800 (PST) Received: from localhost (e121540-lin.manchester.arm.com [10.32.110.72]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B95193F762; Mon, 19 Feb 2024 01:48:44 -0800 (PST) From: Richard Sandiford To: Iain Sandoe Mail-Followup-To: Iain Sandoe ,GCC Patches , richard.sandiford@arm.com Cc: GCC Patches Subject: Re: [PATCH] aarch64, acle header: Cast uint64_t pointers to DIMode. References: <20240205145606.93835-1-iain@sandoe.co.uk> <380B64B0-9824-4121-81B8-F61EB4813B0D@gmail.com> Date: Mon, 19 Feb 2024 09:48:43 +0000 In-Reply-To: (Iain Sandoe's message of "Fri, 16 Feb 2024 13:40:55 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-21.0 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_NONE,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE 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: Iain Sandoe writes: >> On 15 Feb 2024, at 18:05, Richard Sandiford wrote: >> >> Iain Sandoe writes: >>>> On 5 Feb 2024, at 14:56, Iain Sandoe wrote: >>>> >>>> Tested on aarch64-linux,darwin and a cross from aarch64-darwin to linux, >>>> OK for trunk, or some alternative is needed? >>> >>> Hmm.. apparently, this fails the linaro pre-commit CI for g++ with: >>> error: invalid conversion from 'long int*' to 'long unsigned int*' [-fpermissive] >>> >>> So, I guess some alternative is needed, advice welcome, >> >> The builtins are registered with: >> >> static void >> aarch64_init_rng_builtins (void) >> { >> tree unsigned_ptr_type = build_pointer_type (unsigned_intDI_type_node); >> ... >> >> Does it work if you change unsigned_intDI_type_node to >> get_typenode_from_name (UINT64_TYPE)? > > Yes, that works fine; tested on aarch64-linux and aarch64-darwin. > > revised, as below, > OK for trunk? > Iain > > > Subject: [PATCH] aarch64: Register rng builtins with uint64_t pointers. > > Currently, these are registered as unsigned_intDI_type_node which is not > necessarily the same type definition as uint64_t. On platforms where these > differ that causes fails in consuming the arm_acle.h header. > > gcc/ChangeLog: > > * config/aarch64/aarch64-builtins.cc (aarch64_init_rng_builtins): > Register these builtins with a pointer to uint64_t rather than unsigned > DI mode. OK, thanks. Richard > --- > gcc/config/aarch64/aarch64-builtins.cc | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc > index e211a7271ba..1330558f109 100644 > --- a/gcc/config/aarch64/aarch64-builtins.cc > +++ b/gcc/config/aarch64/aarch64-builtins.cc > @@ -1759,7 +1759,8 @@ aarch64_init_tme_builtins (void) > static void > aarch64_init_rng_builtins (void) > { > - tree unsigned_ptr_type = build_pointer_type (unsigned_intDI_type_node); > + tree unsigned_ptr_type > + = build_pointer_type (get_typenode_from_name (UINT64_TYPE)); > tree ftype > = build_function_type_list (integer_type_node, unsigned_ptr_type, NULL); > aarch64_builtin_decls[AARCH64_BUILTIN_RNG_RNDR]