/* SPDX-License-Identifier: GPL-2.0-only */ /* * Commonly used assembly macros * * Copyright (c) 2022 IBM Corp * * Authors: * Janosch Frank */ #include /* * Writes a PSW to addr_psw, useful for exception PSWs in lowcore * * reg is the scratch register used for temporary storage, it's NOT restored * The psw address part is defined via psw_new_addr * The psw mask part is always 64 bit */ .macro SET_PSW_NEW_ADDR reg, psw_new_addr, addr_psw larl \reg, psw_mask_64 mvc \addr_psw(8,%r0), 0(\reg) larl \reg, \psw_new_addr stg \reg, \addr_psw + 8 .endm .section .rodata psw_mask_64: .quad 0x0000000180000000