Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Apr 2023 23:03:15 +0100
From:      Jessica Clarke <jrtc27@freebsd.org>
To:        Andrew Turner <andrew@FreeBSD.org>
Cc:        "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org>
Subject:   Re: git: 47ff149afaea - main - Move arm64 EENTRY uses before ENTRY
Message-ID:  <E18CDBC5-5F9E-405D-A856-D00DB7E85C19@freebsd.org>
In-Reply-To: <1D6F1E29-6EA8-4ABA-BA63-A9D91B1C8A0A@freebsd.org>
References:  <202303311556.32VFuGQT080989@gitrepo.freebsd.org> <1D6F1E29-6EA8-4ABA-BA63-A9D91B1C8A0A@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 31 Mar 2023, at 17:00, Jessica Clarke <jrtc27@FreeBSD.org> wrote:
> On 31 Mar 2023, at 16:56, Andrew Turner <andrew@FreeBSD.org> wrote:
>>=20
>> The branch main has been updated by andrew:
>>=20
>> URL: =
https://cgit.FreeBSD.org/src/commit/?id=3D47ff149afaea6a403b8d044e26673bc3=
cd605fe4
>>=20
>> commit 47ff149afaea6a403b8d044e26673bc3cd605fe4
>> Author:     Andrew Turner <andrew@FreeBSD.org>
>> AuthorDate: 2023-03-31 12:34:51 +0000
>> Commit:     Andrew Turner <andrew@FreeBSD.org>
>> CommitDate: 2023-03-31 15:45:31 +0000
>>=20
>>   Move arm64 EENTRY uses before ENTRY
>>=20
>>   The ENTRY macro adds instructions to the start of a function but =
not
>>   EENTRY. To use these instructions in both functions move the EENTRY
>>   use before the ENTRY use.
>=20
> This doesn=E2=80=99t work. ENTRY is what has the .text and .align 2, =
so this
> could have the EENTRY symbols be unaligned or in the wrong section. In
> this specific case it happens to work, but in general this is broken
> and so your original problem needs fixing another way. Or I guess you
> could make both ENTRY and EENTRY include the .text and .align 2 (but =
on
> other architectures with variable-length instructions, or even on =
arm64
> were you to ever want to over-align functions, this would still be
> insufficient).

Ping.

Jess

>>   Sponsored by:   Arm Ltd
>> ---
>> sys/arm64/arm64/memcpy.S  | 4 ++--
>> sys/arm64/arm64/support.S | 8 ++++----
>> 2 files changed, 6 insertions(+), 6 deletions(-)
>>=20
>> diff --git a/sys/arm64/arm64/memcpy.S b/sys/arm64/arm64/memcpy.S
>> index d5fbfa64e0fa..b394d6c1d30a 100644
>> --- a/sys/arm64/arm64/memcpy.S
>> +++ b/sys/arm64/arm64/memcpy.S
>> @@ -55,8 +55,8 @@
>>   The loop tail is handled by always copying 64 bytes from the end.
>> */
>>=20
>> -ENTRY(memcpy)
>> EENTRY(memmove)
>> +ENTRY(memcpy)
>> 	add	srcend, src, count
>> 	add	dstend, dstin, count
>> 	cmp	count, 128
>> @@ -237,6 +237,6 @@ L(copy64_from_start):
>> 	stp	B_l, B_h, [dstin, 16]
>> 	stp	C_l, C_h, [dstin]
>> 	ret
>> -EEND(memmove)
>> END(memcpy)
>> +EEND(memmove)
>>=20
>> diff --git a/sys/arm64/arm64/support.S b/sys/arm64/arm64/support.S
>> index 885af5676159..28ac1d553fbc 100644
>> --- a/sys/arm64/arm64/support.S
>> +++ b/sys/arm64/arm64/support.S
>> @@ -175,15 +175,15 @@ END(fueword32)
>> * long fueword(volatile const void *, int64_t *)
>> * int64_t fueword64(volatile const void *, int64_t *)
>> */
>> -ENTRY(fueword)
>> EENTRY(fueword64)
>> +ENTRY(fueword)
>> 	check_user_access 0, (VM_MAXUSER_ADDRESS-7), fsu_fault_nopcb
>> 	fsudata	ldtr, x0, 0
>> 	str	x0, [x1]		/* Save the data in kernel space =
*/
>> 	mov	x0, #0			/* Success */
>> 	ret				/* Return */
>> -EEND(fueword64)
>> END(fueword)
>> +EEND(fueword64)
>>=20
>> /*
>> * int subyte(volatile void *, int)
>> @@ -218,14 +218,14 @@ END(suword32)
>> /*
>> * int suword(volatile void *, long)
>> */
>> -ENTRY(suword)
>> EENTRY(suword64)
>> +ENTRY(suword)
>> 	check_user_access 0, (VM_MAXUSER_ADDRESS-7), fsu_fault_nopcb
>> 	fsudata	sttr, x1, 0
>> 	mov	x0, #0			/* Success */
>> 	ret				/* Return */
>> -EEND(suword64)
>> END(suword)
>> +EEND(suword64)
>>=20
>> ENTRY(setjmp)
>> 	/* Store the stack pointer */




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E18CDBC5-5F9E-405D-A856-D00DB7E85C19>