2 * arch/s390/kernel/base.S
4 * Copyright IBM Corp. 2006,2007
5 * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
6 * Michael Holzheu <holzheu@de.ibm.com>
9 #include <asm/ptrace.h>
10 #include <asm/lowcore.h>
14 .globl s390_base_mcck_handler
15 s390_base_mcck_handler:
17 0: lg %r15,__LC_PANIC_STACK # load panic stack
18 aghi %r15,-STACK_FRAME_OVERHEAD
19 larl %r1,s390_base_mcck_handler_fn
25 lmg %r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1)
26 lpswe __LC_MCK_OLD_PSW
29 .globl s390_base_mcck_handler_fn
30 s390_base_mcck_handler_fn:
34 .globl s390_base_ext_handler
35 s390_base_ext_handler:
36 stmg %r0,%r15,__LC_SAVE_AREA
38 0: aghi %r15,-STACK_FRAME_OVERHEAD
39 larl %r1,s390_base_ext_handler_fn
44 1: lmg %r0,%r15,__LC_SAVE_AREA
45 ni __LC_EXT_OLD_PSW+1,0xfd # clear wait state bit
46 lpswe __LC_EXT_OLD_PSW
49 .globl s390_base_ext_handler_fn
50 s390_base_ext_handler_fn:
54 .globl s390_base_pgm_handler
55 s390_base_pgm_handler:
56 stmg %r0,%r15,__LC_SAVE_AREA
58 0: aghi %r15,-STACK_FRAME_OVERHEAD
59 larl %r1,s390_base_pgm_handler_fn
64 lmg %r0,%r15,__LC_SAVE_AREA
65 lpswe __LC_PGM_OLD_PSW
66 1: lpswe disabled_wait_psw-0b(%r13)
70 .quad 0x0002000180000000,0x0000000000000000 + s390_base_pgm_handler
73 .globl s390_base_pgm_handler_fn
74 s390_base_pgm_handler_fn:
78 #else /* CONFIG_64BIT */
80 .globl s390_base_mcck_handler
81 s390_base_mcck_handler:
83 0: l %r15,__LC_PANIC_STACK # load panic stack
84 ahi %r15,-STACK_FRAME_OVERHEAD
90 1: lm %r0,%r15,__LC_GPREGS_SAVE_AREA
93 2: .long s390_base_mcck_handler_fn
96 .globl s390_base_mcck_handler_fn
97 s390_base_mcck_handler_fn:
101 .globl s390_base_ext_handler
102 s390_base_ext_handler:
103 stm %r0,%r15,__LC_SAVE_AREA
105 0: ahi %r15,-STACK_FRAME_OVERHEAD
111 1: lm %r0,%r15,__LC_SAVE_AREA
112 ni __LC_EXT_OLD_PSW+1,0xfd # clear wait state bit
113 lpsw __LC_EXT_OLD_PSW
115 2: .long s390_base_ext_handler_fn
118 .globl s390_base_ext_handler_fn
119 s390_base_ext_handler_fn:
123 .globl s390_base_pgm_handler
124 s390_base_pgm_handler:
125 stm %r0,%r15,__LC_SAVE_AREA
127 0: ahi %r15,-STACK_FRAME_OVERHEAD
133 lm %r0,%r15,__LC_SAVE_AREA
134 lpsw __LC_PGM_OLD_PSW
136 1: lpsw disabled_wait_psw-0b(%r13)
138 2: .long s390_base_pgm_handler_fn
142 .long 0x000a0000,0x00000000 + s390_base_pgm_handler
145 .globl s390_base_pgm_handler_fn
146 s390_base_pgm_handler_fn:
150 #endif /* CONFIG_64BIT */