master
s 43 lines 1.06 KB
Raw
1 /*
2 * Test early exception recognition using EXRL + SSM.
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 .org 0x8d
7 ilc:
8 .org 0x8e
9 program_interruption_code:
10 .org 0x150
11 program_old_psw:
12 .org 0x1D0 /* program new PSW */
13 .quad 0,pgm
14 .org 0x200 /* lowcore padding */
15
16 .globl _start
17 _start:
18 exrl %r0,ssm
19 expected_pswa:
20 j failure
21 ssm:
22 ssm ssm_op
23
24 pgm:
25 chhsi program_interruption_code,0x6 /* specification exception? */
26 jne failure
27 cli ilc,6 /* ilc for EXRL? */
28 jne failure
29 clc program_old_psw(16),expected_old_psw /* correct old PSW? */
30 jne failure
31 lpswe success_psw
32 failure:
33 lpswe failure_psw
34
35 ssm_op:
36 .byte 0x08 /* bit 4 set */
37 .align 8
38 expected_old_psw:
39 .quad 0x0800000180000000,expected_pswa /* bit 2 set */
40 success_psw:
41 .quad 0x2000000000000,0xfff /* see is_special_wait_psw() */
42 failure_psw:
43 .quad 0x2000000000000,0 /* disabled wait */