1/* 2 * Common softmmu code for specification exception testing. 3 * 4 * SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 .section .head 7 .org 0x8d 8ilc: 9 .org 0x8e 10program_interruption_code: 11 .org 0x150 12program_old_psw: 13 .org 0x1D0 /* program new PSW */ 14 .quad 0x180000000,pgm /* 64-bit mode */ 15 .org 0x200 /* lowcore padding */ 16 17 .globl _start 18_start: 19 lpswe test_psw 20 21pgm: 22 chhsi program_interruption_code,0x6 /* PGM_SPECIFICATION? */ 23 jne failure 24 lg %r0,expected_old_psw+8 /* ilc adjustment */ 25 llgc %r1,ilc 26 agr %r0,%r1 27 stg %r0,expected_old_psw+8 28 clc expected_old_psw(16),program_old_psw /* correct location? */ 29 jne failure 30 lpswe success_psw 31failure: 32 lpswe failure_psw 33 34 .align 8 35test_psw: 36 .quad 0x180000000,test /* 64-bit mode */ 37success_psw: 38 .quad 0x2000180000000,0xfff /* see is_special_wait_psw() */ 39failure_psw: 40 .quad 0x2000180000000,0 /* disabled wait */ 41