Re: git: ccb59683b983 - main - arm64: add tests for swp/swpb emulation
- Reply: Kyle Evans : "Re: git: ccb59683b983 - main - arm64: add tests for swp/swpb emulation"
- Reply: John Baldwin : "Re: git: ccb59683b983 - main - arm64: add tests for swp/swpb emulation"
- In reply to: Kyle Evans : "git: ccb59683b983 - main - arm64: add tests for swp/swpb emulation"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 15 May 2023 21:59:54 UTC
On 15 May 2023, at 16:42, Kyle Evans <kevans@FreeBSD.org> wrote:
>
> The branch main has been updated by kevans:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=ccb59683b98360afaf5b5bb641a68fea22c68d0b
>
> commit ccb59683b98360afaf5b5bb641a68fea22c68d0b
> Author: Kyle Evans <kevans@FreeBSD.org>
> AuthorDate: 2023-05-15 15:42:16 +0000
> Commit: Kyle Evans <kevans@FreeBSD.org>
> CommitDate: 2023-05-15 15:42:16 +0000
>
> arm64: add tests for swp/swpb emulation
>
> One test is suitable to be hooked up to the build, so I've done this
> here. The other test lives in tools/regression because failure is a
> bit more subjective -- generally, one runs it for some unbounded amount
> of time and observe if it eventually exits because two threads acquired
> the same mutex.
>
> Reviewed by: imp, mmel
> Sponsored by: Stormshield
> Sponsored by: Klara, Inc.
> Differential Revision: https://reviews.freebsd.org/D39668
> ---
> etc/mtree/BSD.tests.dist | 2 +
> tests/sys/Makefile | 1 +
> tests/sys/compat32/Makefile | 6 +
> tests/sys/compat32/Makefile.inc | 4 +
> tests/sys/compat32/aarch64/Makefile | 24 ++
> tests/sys/compat32/aarch64/common.sh | 9 +
> tests/sys/compat32/aarch64/swp_cond_test.sh | 14 +
> tests/sys/compat32/aarch64/swp_cond_test_impl.S | 413 ++++++++++++++++++++++
> tests/sys/compat32/aarch64/swp_test.sh | 14 +
> tests/sys/compat32/aarch64/swp_test_impl.S | 216 +++++++++++
> tools/regression/compat32/aarch64/Makefile | 4 +
> tools/regression/compat32/aarch64/swp_test_impl.S | 410 +++++++++++++++++++++
> 12 files changed, 1117 insertions(+)
>
> ...
> diff --git a/tests/sys/compat32/aarch64/Makefile b/tests/sys/compat32/aarch64/Makefile
> new file mode 100644
> index 000000000000..716182b15d9c
> --- /dev/null
> +++ b/tests/sys/compat32/aarch64/Makefile
> @@ -0,0 +1,24 @@
> +PACKAGE= tests
> +FILESGROUPS+= asmprogs
> +
> +ACFLAGS= -target armv7-unknown-freebsd${OS_REVISION} -nostdlib -Wl,-e -Wl,main -static
This won’t work with GCC, nor will it work with an LLVM built with only
AArch64 enabled as a target (e.g. -DWITHOUT_LLVM_TARGET_ALL
-DWITHOUT_LLVM_TARGET_ARM; latter is needed since we do default to
enabling ARM if AArch64 is even for a cut-down toolchain so that -m32
works). This is why the freebsd32 sigcode in arm64 kernels is written
as hex (with disassembly comments) rather than assembled from proper
source.
Jess