tests/tcg/s390x: Test ICM

Add a small test to prevent regressions.

Tested-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Message-Id: <20230724082032.66864-12-iii@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Ilya Leoshkevich 2023-07-24 10:16:04 +02:00 committed by Thomas Huth
parent 285a672d29
commit f383b2f770
2 changed files with 33 additions and 0 deletions

View File

@ -19,6 +19,7 @@ ASM_TESTS = \
cksm \
clm \
exrl-ssm-early \
icm \
sam \
lpsw \
lpswe-early \

32
tests/tcg/s390x/icm.S Normal file
View File

@ -0,0 +1,32 @@
.org 0x8e
program_interruption_code:
.org 0x1d0 /* program new PSW */
.quad 0,pgm
.org 0x200 /* lowcore padding */
.globl _start
_start:
lgrl %r0,op1
icm %r0,10,op2
cg %r0,exp
jne failure
lgrl %r1,bad_addr
icm %r0,0,0(%r1)
failure:
lpswe failure_psw
pgm:
chhsi program_interruption_code,5 /* addressing exception? */
jne failure
lpswe success_psw
.align 8
op1:
.quad 0x1234567887654321
op2:
.quad 0x0011223344556677
exp:
.quad 0x1234567800651121
bad_addr:
.quad 0xffffffff00000000
success_psw:
.quad 0x2000000000000,0xfff /* see is_special_wait_psw() */
failure_psw:
.quad 0x2000000000000,0 /* disabled wait */