tests/tcg/s390x: Test CKSM

Add a small test to prevent regressions.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Message-Id: <20230724082032.66864-9-iii@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Ilya Leoshkevich 2023-07-24 10:16:01 +02:00 committed by Thomas Huth
parent ff537b0370
commit f6044c994a
2 changed files with 30 additions and 0 deletions

View File

@ -16,6 +16,7 @@ LDFLAGS=-nostdlib -static
ASM_TESTS = \
bal \
cksm \
exrl-ssm-early \
sam \
lpsw \

29
tests/tcg/s390x/cksm.S Normal file
View File

@ -0,0 +1,29 @@
.org 0x8e
program_interruption_code:
.org 0x1d0 /* program new PSW */
.quad 0,pgm
.org 0x200 /* lowcore padding */
.globl _start
_start:
lmg %r0,%r1,cksm_args
cksm %r2,%r0
c %r2,cksm_exp
jne failure
.insn rre,0xb2410000,%r2,%r15 /* cksm %r2,%r15 */
failure:
lpswe failure_psw
pgm:
chhsi program_interruption_code,6 /* specification exception? */
jne failure
lpswe success_psw
cksm_args:
.quad cksm_buf, 16
cksm_buf:
.quad 0xaaaabbbbcccc0000, 0x12345678
cksm_exp:
.long 0x89ab1234
.align 8
success_psw:
.quad 0x2000000000000,0xfff /* see is_special_wait_psw() */
failure_psw:
.quad 0x2000000000000,0 /* disabled wait */