aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/powerpc/tm/tm.h
diff options
context:
space:
mode:
authorGustavo Romero <gromero@linux.vnet.ibm.com>2017-11-01 15:23:41 -0400
committerMichael Ellerman <mpe@ellerman.id.au>2017-11-09 15:50:21 +1100
commit77fad8bfb1d2f8225b05e4ea34457875fcfae37e (patch)
treedf158bda5a5542d731403989d1a0005dd1cc3fd3 /tools/testing/selftests/powerpc/tm/tm.h
parentpowerpc/xmon: Support dumping software pagetables (diff)
downloadlinux-dev-77fad8bfb1d2f8225b05e4ea34457875fcfae37e.tar.xz
linux-dev-77fad8bfb1d2f8225b05e4ea34457875fcfae37e.zip
selftests/powerpc: Check FP/VEC on exception in TM
Add a self test to check if FP/VEC/VSX registers are sane (restored correctly) after a FP/VEC/VSX unavailable exception is caught during a transaction. This test checks all possibilities in a thread regarding the combination of MSR.[FP|VEC] states in a thread and for each scenario raises a FP/VEC/VSX unavailable exception in transactional state, verifying if vs0 and vs32 registers, which are representatives of FP/VEC/VSX reg sets, are not corrupted. Signed-off-by: Gustavo Romero <gromero@linux.vnet.ibm.com> Signed-off-by: Breno Leitao <leitao@debian.org> Signed-off-by: Cyril Bur <cyrilbur@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to '')
-rw-r--r--tools/testing/selftests/powerpc/tm/tm.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/testing/selftests/powerpc/tm/tm.h b/tools/testing/selftests/powerpc/tm/tm.h
index 0ffff04433c5..df4204247d45 100644
--- a/tools/testing/selftests/powerpc/tm/tm.h
+++ b/tools/testing/selftests/powerpc/tm/tm.h
@@ -47,6 +47,11 @@ static inline bool failure_is_syscall(void)
return (failure_code() & TM_CAUSE_SYSCALL) == TM_CAUSE_SYSCALL;
}
+static inline bool failure_is_unavailable(void)
+{
+ return (failure_code() & TM_CAUSE_FAC_UNAV) == TM_CAUSE_FAC_UNAV;
+}
+
static inline bool failure_is_nesting(void)
{
return (__builtin_get_texasru() & 0x400000);