rseq/selftests: add s390 support
Implement support for s390 in the rseq selftests, in order to sanity check the recently enabled rseq syscall. The Implementation covers both 64-bit and 31-bit mode. Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:

committed by
Martin Schwidefsky

parent
26f843848b
commit
4c14d1ce17
@@ -90,6 +90,30 @@ unsigned int yield_mod_cnt, nr_abort;
|
||||
#error "Unsupported architecture"
|
||||
#endif
|
||||
|
||||
#elif defined(__s390__)
|
||||
|
||||
#define RSEQ_INJECT_INPUT \
|
||||
, [loop_cnt_1]"m"(loop_cnt[1]) \
|
||||
, [loop_cnt_2]"m"(loop_cnt[2]) \
|
||||
, [loop_cnt_3]"m"(loop_cnt[3]) \
|
||||
, [loop_cnt_4]"m"(loop_cnt[4]) \
|
||||
, [loop_cnt_5]"m"(loop_cnt[5]) \
|
||||
, [loop_cnt_6]"m"(loop_cnt[6])
|
||||
|
||||
#define INJECT_ASM_REG "r12"
|
||||
|
||||
#define RSEQ_INJECT_CLOBBER \
|
||||
, INJECT_ASM_REG
|
||||
|
||||
#define RSEQ_INJECT_ASM(n) \
|
||||
"l %%" INJECT_ASM_REG ", %[loop_cnt_" #n "]\n\t" \
|
||||
"ltr %%" INJECT_ASM_REG ", %%" INJECT_ASM_REG "\n\t" \
|
||||
"je 333f\n\t" \
|
||||
"222:\n\t" \
|
||||
"ahi %%" INJECT_ASM_REG ", -1\n\t" \
|
||||
"jnz 222b\n\t" \
|
||||
"333:\n\t"
|
||||
|
||||
#elif defined(__ARMEL__)
|
||||
|
||||
#define RSEQ_INJECT_INPUT \
|
||||
|
Reference in New Issue
Block a user