xref: /qemu/tests/tcg/s390x/cksm.S (revision 3ee44ec72753ec0ff05ad1569dfa609203d722b2)
1*f6044c99SIlya Leoshkevich    .org 0x8e
2*f6044c99SIlya Leoshkevichprogram_interruption_code:
3*f6044c99SIlya Leoshkevich    .org 0x1d0                         /* program new PSW */
4*f6044c99SIlya Leoshkevich    .quad 0,pgm
5*f6044c99SIlya Leoshkevich    .org 0x200                         /* lowcore padding */
6*f6044c99SIlya Leoshkevich    .globl _start
7*f6044c99SIlya Leoshkevich_start:
8*f6044c99SIlya Leoshkevich    lmg %r0,%r1,cksm_args
9*f6044c99SIlya Leoshkevich    cksm %r2,%r0
10*f6044c99SIlya Leoshkevich    c %r2,cksm_exp
11*f6044c99SIlya Leoshkevich    jne failure
12*f6044c99SIlya Leoshkevich    .insn rre,0xb2410000,%r2,%r15      /* cksm %r2,%r15 */
13*f6044c99SIlya Leoshkevichfailure:
14*f6044c99SIlya Leoshkevich    lpswe failure_psw
15*f6044c99SIlya Leoshkevichpgm:
16*f6044c99SIlya Leoshkevich    chhsi program_interruption_code,6  /* specification exception? */
17*f6044c99SIlya Leoshkevich    jne failure
18*f6044c99SIlya Leoshkevich    lpswe success_psw
19*f6044c99SIlya Leoshkevichcksm_args:
20*f6044c99SIlya Leoshkevich    .quad cksm_buf, 16
21*f6044c99SIlya Leoshkevichcksm_buf:
22*f6044c99SIlya Leoshkevich    .quad 0xaaaabbbbcccc0000, 0x12345678
23*f6044c99SIlya Leoshkevichcksm_exp:
24*f6044c99SIlya Leoshkevich    .long 0x89ab1234
25*f6044c99SIlya Leoshkevich    .align 8
26*f6044c99SIlya Leoshkevichsuccess_psw:
27*f6044c99SIlya Leoshkevich    .quad 0x2000000000000,0xfff        /* see is_special_wait_psw() */
28*f6044c99SIlya Leoshkevichfailure_psw:
29*f6044c99SIlya Leoshkevich    .quad 0x2000000000000,0            /* disabled wait */
30