xref: /kvm-unit-tests/s390x/snippets/asm/pv-diag-288.S (revision 1d0f08f40d53daa39566842ec46a112db5f7e524)
1c604fa93SJanosch Frank/* SPDX-License-Identifier: GPL-2.0-only */
2c604fa93SJanosch Frank/*
3c604fa93SJanosch Frank * Diagnose 0x288 snippet used for PV interception testing.
4c604fa93SJanosch Frank *
5c604fa93SJanosch Frank * Copyright (c) 2021 IBM Corp
6c604fa93SJanosch Frank *
7c604fa93SJanosch Frank * Authors:
8c604fa93SJanosch Frank *  Janosch Frank <frankja@linux.ibm.com>
9c604fa93SJanosch Frank */
102c96b77eSJanosch Frank#include <asm/asm-offsets.h>
114c8a99caSJanosch Frank#include "macros.S"
122c96b77eSJanosch Frank.section .text
132c96b77eSJanosch Frank
142c96b77eSJanosch Frank/* Clean and pre-load registers that are used for diag 288 */
152c96b77eSJanosch Frankxgr	%r0, %r0
162c96b77eSJanosch Frankxgr	%r1, %r1
172c96b77eSJanosch Frankxgr	%r3, %r3
182c96b77eSJanosch Franklghi	%r0, 1
192c96b77eSJanosch Franklghi	%r1, 2
202c96b77eSJanosch Franklghi	%r2, 3
212c96b77eSJanosch Frank
222c96b77eSJanosch Frank/* Let's jump to the pgm exit label on a PGM */
234c8a99caSJanosch FrankSET_PSW_NEW_ADDR 4, exit_pgm, GEN_LC_PGM_NEW_PSW
242c96b77eSJanosch Frank
252c96b77eSJanosch Frank/* Execute the diag288 */
262c96b77eSJanosch Frankdiag	%r0, %r2, 0x288
272c96b77eSJanosch Frank
282c96b77eSJanosch Frank/* Force exit if we don't get a PGM */
292c96b77eSJanosch Frankdiag	0, 0, 0x44
302c96b77eSJanosch Frank
312c96b77eSJanosch Frank/* Communicate the PGM code via diag9c(easiest) */
322c96b77eSJanosch Frankexit_pgm:
332c96b77eSJanosch Franklh	%r1, GEN_LC_PGM_INT_CODE
342c96b77eSJanosch Frankdiag	%r1, 0, 0x9c
35