• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/s390/kernel/
1/*
2 *  arch/s390/kernel/base.S
3 *
4 *    Copyright IBM Corp. 2006,2007
5 *    Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
6 *		 Michael Holzheu <holzheu@de.ibm.com>
7 */
8
9#include <asm/asm-offsets.h>
10#include <asm/ptrace.h>
11
12#ifdef CONFIG_64BIT
13
14	.globl	s390_base_mcck_handler
15s390_base_mcck_handler:
16	basr	%r13,0
170:	lg	%r15,__LC_PANIC_STACK	# load panic stack
18	aghi	%r15,-STACK_FRAME_OVERHEAD
19	larl	%r1,s390_base_mcck_handler_fn
20	lg	%r1,0(%r1)
21	ltgr	%r1,%r1
22	jz	1f
23	basr	%r14,%r1
241:	la	%r1,4095
25	lmg	%r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1)
26	lpswe	__LC_MCK_OLD_PSW
27
28	.section .bss
29	.globl	s390_base_mcck_handler_fn
30s390_base_mcck_handler_fn:
31	.quad	0
32	.previous
33
34	.globl	s390_base_ext_handler
35s390_base_ext_handler:
36	stmg	%r0,%r15,__LC_SAVE_AREA
37	basr	%r13,0
380:	aghi	%r15,-STACK_FRAME_OVERHEAD
39	larl	%r1,s390_base_ext_handler_fn
40	lg	%r1,0(%r1)
41	ltgr	%r1,%r1
42	jz	1f
43	basr	%r14,%r1
441:	lmg	%r0,%r15,__LC_SAVE_AREA
45	ni	__LC_EXT_OLD_PSW+1,0xfd	# clear wait state bit
46	lpswe	__LC_EXT_OLD_PSW
47
48	.section .bss
49	.globl s390_base_ext_handler_fn
50s390_base_ext_handler_fn:
51	.quad	0
52	.previous
53
54	.globl	s390_base_pgm_handler
55s390_base_pgm_handler:
56	stmg	%r0,%r15,__LC_SAVE_AREA
57	basr	%r13,0
580:	aghi	%r15,-STACK_FRAME_OVERHEAD
59	larl	%r1,s390_base_pgm_handler_fn
60	lg	%r1,0(%r1)
61	ltgr	%r1,%r1
62	jz	1f
63	basr	%r14,%r1
64	lmg	%r0,%r15,__LC_SAVE_AREA
65	lpswe	__LC_PGM_OLD_PSW
661:	lpswe	disabled_wait_psw-0b(%r13)
67
68	.align	8
69disabled_wait_psw:
70	.quad	0x0002000180000000,0x0000000000000000 + s390_base_pgm_handler
71
72	.section .bss
73	.globl s390_base_pgm_handler_fn
74s390_base_pgm_handler_fn:
75	.quad	0
76	.previous
77
78#else /* CONFIG_64BIT */
79
80	.globl	s390_base_mcck_handler
81s390_base_mcck_handler:
82	basr	%r13,0
830:	l	%r15,__LC_PANIC_STACK	# load panic stack
84	ahi	%r15,-STACK_FRAME_OVERHEAD
85	l	%r1,2f-0b(%r13)
86	l	%r1,0(%r1)
87	ltr	%r1,%r1
88	jz	1f
89	basr	%r14,%r1
901:	lm	%r0,%r15,__LC_GPREGS_SAVE_AREA
91	lpsw	__LC_MCK_OLD_PSW
92
932:	.long	s390_base_mcck_handler_fn
94
95	.section .bss
96	.globl	s390_base_mcck_handler_fn
97s390_base_mcck_handler_fn:
98	.long	0
99	.previous
100
101	.globl	s390_base_ext_handler
102s390_base_ext_handler:
103	stm	%r0,%r15,__LC_SAVE_AREA
104	basr	%r13,0
1050:	ahi	%r15,-STACK_FRAME_OVERHEAD
106	l	%r1,2f-0b(%r13)
107	l	%r1,0(%r1)
108	ltr	%r1,%r1
109	jz	1f
110	basr	%r14,%r1
1111:	lm	%r0,%r15,__LC_SAVE_AREA
112	ni	__LC_EXT_OLD_PSW+1,0xfd	# clear wait state bit
113	lpsw	__LC_EXT_OLD_PSW
114
1152:	.long	s390_base_ext_handler_fn
116
117	.section .bss
118	.globl	s390_base_ext_handler_fn
119s390_base_ext_handler_fn:
120	.long	0
121	.previous
122
123	.globl	s390_base_pgm_handler
124s390_base_pgm_handler:
125	stm	%r0,%r15,__LC_SAVE_AREA
126	basr	%r13,0
1270:	ahi	%r15,-STACK_FRAME_OVERHEAD
128	l	%r1,2f-0b(%r13)
129	l	%r1,0(%r1)
130	ltr	%r1,%r1
131	jz	1f
132	basr	%r14,%r1
133	lm	%r0,%r15,__LC_SAVE_AREA
134	lpsw	__LC_PGM_OLD_PSW
135
1361:	lpsw	disabled_wait_psw-0b(%r13)
137
1382:	.long	s390_base_pgm_handler_fn
139
140disabled_wait_psw:
141	.align	8
142	.long	0x000a0000,0x00000000 + s390_base_pgm_handler
143
144	.section .bss
145	.globl	s390_base_pgm_handler_fn
146s390_base_pgm_handler_fn:
147	.long	0
148	.previous
149
150#endif /* CONFIG_64BIT */
151