| /* |
| * Test the LPSW instruction. |
| * |
| * SPDX-License-Identifier: GPL-2.0-or-later |
| */ |
| .org 0x140 |
| svc_old_psw: |
| .org 0x1c0 /* supervisor call new PSW */ |
| .quad 0x80000000,svc /* 31-bit mode */ |
| .org 0x200 /* lowcore padding */ |
| |
| .globl _start |
| _start: |
| lpsw short_psw |
| lpsw_target: |
| svc 0 |
| expected_pswa: |
| j failure |
| |
| svc: |
| clc svc_old_psw(16),expected_psw /* correct full PSW? */ |
| jne failure |
| lpswe success_psw |
| failure: |
| lpswe failure_psw |
| |
| .align 8 |
| short_psw: |
| .long 0x90001,0x80000000+lpsw_target /* problem state, |
| 64-bit mode */ |
| expected_psw: |
| .quad 0x1000180000000,expected_pswa /* corresponds to short_psw */ |
| success_psw: |
| .quad 0x2000000000000,0xfff /* see is_special_wait_psw() */ |
| failure_psw: |
| .quad 0x2000000000000,0 /* disabled wait */ |