/* * Test early exception recognition using EXRL + SSM. * * SPDX-License-Identifier: GPL-2.0-or-later */ .org 0x8d ilc: .org 0x8e program_interruption_code: .org 0x150 program_old_psw: .org 0x1D0 /* program new PSW */ .quad 0,pgm .org 0x200 /* lowcore padding */ .globl _start _start: exrl %r0,ssm expected_pswa: j failure ssm: ssm ssm_op pgm: chhsi program_interruption_code,0x6 /* specification exception? */ jne failure cli ilc,6 /* ilc for EXRL? */ jne failure clc program_old_psw(16),expected_old_psw /* correct old PSW? */ jne failure lpswe success_psw failure: lpswe failure_psw ssm_op: .byte 0x08 /* bit 4 set */ .align 8 expected_old_psw: .quad 0x0800000180000000,expected_pswa /* bit 2 set */ success_psw: .quad 0x2000000000000,0xfff /* see is_special_wait_psw() */ failure_psw: .quad 0x2000000000000,0 /* disabled wait */