1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright IBM Corp 2000, 2011
4 * Author(s): Holger Smolinski <Holger.Smolinski@de.ibm.com>,
8 #include <linux/linkage.h>
9 #include <asm/asm-offsets.h>
10 #include <asm/nospec-insn.h>
16 # Issue "store status" for the current CPU to its prefix page
17 # and call passed function afterwards
19 # r2 = Function to be called after store status
20 # r3 = Parameter for function
23 /* Save register one and load save area base */
24 stg %r1,__LC_SAVE_AREA_RESTART
25 /* General purpose registers */
26 lghi %r1,__LC_GPREGS_SAVE_AREA
28 mvc 8(8,%r1),__LC_SAVE_AREA_RESTART
29 /* Control registers */
30 lghi %r1,__LC_CREGS_SAVE_AREA
32 /* Access registers */
33 lghi %r1,__LC_AREGS_SAVE_AREA
35 /* Floating point registers */
36 lghi %r1,__LC_FPREGS_SAVE_AREA
53 /* Floating point control register */
54 lghi %r1,__LC_FP_CREG_SAVE_AREA
57 lghi %r1,__LC_CPU_TIMER_SAVE_AREA
59 /* Store prefix register */
60 lghi %r1,__LC_PREFIX_SAVE_AREA
62 /* Clock comparator - seven bytes */
63 lghi %r1,__LC_CLOCK_COMP_SAVE_AREA
67 /* Program status word */
68 lghi %r1,__LC_PSW_SAVE_AREA
80 .Lclkcmp: .quad 0x0000000000000000