[Lldb-commits] [lldb] 91f46ec - [lldb][AArch64] Document how to control the SVE/SSVE tests
David Spickett via lldb-commits
lldb-commits at lists.llvm.org
Tue Sep 19 01:51:51 PDT 2023
Author: David Spickett
Date: 2023-09-19T08:51:37Z
New Revision: 91f46ece9efca7a1109b5837a1b24f2a251bb0cc
URL: https://github.com/llvm/llvm-project/commit/91f46ece9efca7a1109b5837a1b24f2a251bb0cc
DIFF: https://github.com/llvm/llvm-project/commit/91f46ece9efca7a1109b5837a1b24f2a251bb0cc.diff
LOG: [lldb][AArch64] Document how to control the SVE/SSVE tests
A lot of these use defines that I made up for this purpose,
which is not obvious at first glance. Document that at the top
of each file.
Added:
Modified:
lldb/test/API/commands/register/register/aarch64_dynamic_regset/main.c
lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/main.c
lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_static_config/main.c
lldb/test/API/commands/register/register/aarch64_sve_simd_registers/main.c
Removed:
################################################################################
diff --git a/lldb/test/API/commands/register/register/aarch64_dynamic_regset/main.c b/lldb/test/API/commands/register/register/aarch64_dynamic_regset/main.c
index b8db8852b8ed51a..93100f01502f8ba 100644
--- a/lldb/test/API/commands/register/register/aarch64_dynamic_regset/main.c
+++ b/lldb/test/API/commands/register/register/aarch64_dynamic_regset/main.c
@@ -1,5 +1,9 @@
#include <sys/auxv.h>
+// If this program receives 0 arguments, it will use non-streaming SVE
+// registers. If the number of arguments is >= 1, it will use streaming SVE
+// registers.
+
#ifndef HWCAP2_SME
#define HWCAP2_SME (1 << 23)
#endif
diff --git a/lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/main.c b/lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/main.c
index 0bb6b3b57046f89..d126f8d75fb0c7c 100644
--- a/lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/main.c
+++ b/lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/main.c
@@ -2,6 +2,9 @@
#include <stdbool.h>
#include <sys/prctl.h>
+// If USE_SSVE is defined, this program will use streaming mode SVE registers
+// instead of non-streaming mode SVE registers.
+
#ifndef PR_SME_SET_VL
#define PR_SME_SET_VL 63
#endif
diff --git a/lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_static_config/main.c b/lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_static_config/main.c
index b4623fe12725a2a..b07fb62ed85b74c 100644
--- a/lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_static_config/main.c
+++ b/lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_static_config/main.c
@@ -1,6 +1,10 @@
#include <stdbool.h>
#include <sys/prctl.h>
+// If START_SSVE is defined, this program will start in streaming SVE mode
+// (it will later enter and exit streaming mode a few times). Otherwise, it
+// will start in non-streaming SVE mode.
+
#ifndef PR_SME_SET_VL
#define PR_SME_SET_VL 63
#endif
diff --git a/lldb/test/API/commands/register/register/aarch64_sve_simd_registers/main.c b/lldb/test/API/commands/register/register/aarch64_sve_simd_registers/main.c
index 2156f094cab5c5f..0a05a9a5a59de17 100644
--- a/lldb/test/API/commands/register/register/aarch64_sve_simd_registers/main.c
+++ b/lldb/test/API/commands/register/register/aarch64_sve_simd_registers/main.c
@@ -1,6 +1,16 @@
#include <stdint.h>
#include <sys/prctl.h>
+// If SSVE is defined, this program will start in streaming SVE mode. Otherwise,
+// if SVE is defined, it will start in non-streaming mode and activate the SVE
+// registers by writing to one of them. If neither SSVE or SVE are defined,
+// the program will start in non-streaming mode, with the SVE registers
+// inactive.
+//
+// For most programs the
diff erence between inactive non-streaming SVE and
+// active is transparent. For lldb, there are some
diff erences in how we use
+// ptrace in either scenario.
+
// base is added to each value. If base = 2, then v0 = 2, v1 = 3, etc.
void write_simd_regs(unsigned base) {
#define WRITE_SIMD(NUM) \
More information about the lldb-commits
mailing list