2007-02-05 23:18:37 +03:00
/ *
* arch/ s39 0 / k e r n e l / b a s e . S
*
* Copyright I B M C o r p . 2 0 0 6 ,2 0 0 7
* Author( s ) : H e i k o C a r s t e n s < h e i k o . c a r s t e n s @de.ibm.com>
* Michael H o l z h e u < h o l z h e u @de.ibm.com>
* /
2011-07-24 12:48:19 +04:00
# include < l i n u x / l i n k a g e . h >
2010-02-27 00:37:43 +03:00
# include < a s m / a s m - o f f s e t s . h >
2007-02-05 23:18:37 +03:00
# include < a s m / p t r a c e . h >
# ifdef C O N F I G _ 6 4 B I T
2011-07-24 12:48:19 +04:00
ENTRY( s39 0 _ b a s e _ m c c k _ h a n d l e r )
2007-02-05 23:18:37 +03:00
basr % r13 ,0
0 : lg % r15 ,_ _ L C _ P A N I C _ S T A C K # l o a d p a n i c s t a c k
aghi % r15 ,- S T A C K _ F R A M E _ O V E R H E A D
larl % r1 ,s39 0 _ b a s e _ m c c k _ h a n d l e r _ f n
lg % r1 ,0 ( % r1 )
ltgr % r1 ,% r1
jz 1 f
basr % r14 ,% r1
1 : la % r1 ,4 0 9 5
lmg % r0 ,% r15 ,_ _ L C _ G P R E G S _ S A V E _ A R E A - 4 0 9 5 ( % r1 )
lpswe _ _ L C _ M C K _ O L D _ P S W
.section .bss
2011-07-24 12:48:19 +04:00
.align 8
2007-02-05 23:18:37 +03:00
.globl s390_base_mcck_handler_fn
s390_base_mcck_handler_fn :
.quad 0
.previous
2011-07-24 12:48:19 +04:00
ENTRY( s39 0 _ b a s e _ e x t _ h a n d l e r )
2007-02-05 23:18:37 +03:00
stmg % r0 ,% r15 ,_ _ L C _ S A V E _ A R E A
basr % r13 ,0
0 : aghi % r15 ,- S T A C K _ F R A M E _ O V E R H E A D
larl % r1 ,s39 0 _ b a s e _ e x t _ h a n d l e r _ f n
lg % r1 ,0 ( % r1 )
ltgr % r1 ,% r1
jz 1 f
basr % r14 ,% r1
1 : lmg % r0 ,% r15 ,_ _ L C _ S A V E _ A R E A
ni _ _ L C _ E X T _ O L D _ P S W + 1 ,0 x f d # c l e a r w a i t s t a t e b i t
lpswe _ _ L C _ E X T _ O L D _ P S W
.section .bss
2011-07-24 12:48:19 +04:00
.align 8
2007-02-05 23:18:37 +03:00
.globl s390_base_ext_handler_fn
s390_base_ext_handler_fn :
.quad 0
.previous
2011-07-24 12:48:19 +04:00
ENTRY( s39 0 _ b a s e _ p g m _ h a n d l e r )
2007-02-05 23:18:37 +03:00
stmg % r0 ,% r15 ,_ _ L C _ S A V E _ A R E A
basr % r13 ,0
0 : aghi % r15 ,- S T A C K _ F R A M E _ O V E R H E A D
larl % r1 ,s39 0 _ b a s e _ p g m _ h a n d l e r _ f n
lg % r1 ,0 ( % r1 )
ltgr % r1 ,% r1
jz 1 f
basr % r14 ,% r1
lmg % r0 ,% r15 ,_ _ L C _ S A V E _ A R E A
lpswe _ _ L C _ P G M _ O L D _ P S W
1 : lpswe d i s a b l e d _ w a i t _ p s w - 0 b ( % r13 )
.align 8
disabled_wait_psw :
.quad 0 x0 0 0 2 0 0 0 1 8 0 0 0 0 0 0 0 ,0 x00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + s39 0 _ b a s e _ p g m _ h a n d l e r
.section .bss
2011-07-24 12:48:19 +04:00
.align 8
2007-02-05 23:18:37 +03:00
.globl s390_base_pgm_handler_fn
s390_base_pgm_handler_fn :
.quad 0
.previous
# else / * C O N F I G _ 6 4 B I T * /
2011-07-24 12:48:19 +04:00
ENTRY( s39 0 _ b a s e _ m c c k _ h a n d l e r )
2007-02-05 23:18:37 +03:00
basr % r13 ,0
0 : l % r15 ,_ _ L C _ P A N I C _ S T A C K # l o a d p a n i c s t a c k
ahi % r15 ,- S T A C K _ F R A M E _ O V E R H E A D
l % r1 ,2 f - 0 b ( % r13 )
l % r1 ,0 ( % r1 )
ltr % r1 ,% r1
jz 1 f
basr % r14 ,% r1
1 : lm % r0 ,% r15 ,_ _ L C _ G P R E G S _ S A V E _ A R E A
lpsw _ _ L C _ M C K _ O L D _ P S W
2 : .long s 390 _ base_ m c c k _ h a n d l e r _ f n
.section .bss
2011-07-24 12:48:19 +04:00
.align 4
2007-02-05 23:18:37 +03:00
.globl s390_base_mcck_handler_fn
s390_base_mcck_handler_fn :
.long 0
.previous
2011-07-24 12:48:19 +04:00
ENTRY( s39 0 _ b a s e _ e x t _ h a n d l e r )
2007-02-05 23:18:37 +03:00
stm % r0 ,% r15 ,_ _ L C _ S A V E _ A R E A
basr % r13 ,0
0 : ahi % r15 ,- S T A C K _ F R A M E _ O V E R H E A D
l % r1 ,2 f - 0 b ( % r13 )
l % r1 ,0 ( % r1 )
ltr % r1 ,% r1
jz 1 f
basr % r14 ,% r1
1 : lm % r0 ,% r15 ,_ _ L C _ S A V E _ A R E A
ni _ _ L C _ E X T _ O L D _ P S W + 1 ,0 x f d # c l e a r w a i t s t a t e b i t
lpsw _ _ L C _ E X T _ O L D _ P S W
2 : .long s 390 _ base_ e x t _ h a n d l e r _ f n
.section .bss
2011-07-24 12:48:19 +04:00
.align 4
2007-02-05 23:18:37 +03:00
.globl s390_base_ext_handler_fn
s390_base_ext_handler_fn :
.long 0
.previous
2011-07-24 12:48:19 +04:00
ENTRY( s39 0 _ b a s e _ p g m _ h a n d l e r )
2007-02-05 23:18:37 +03:00
stm % r0 ,% r15 ,_ _ L C _ S A V E _ A R E A
basr % r13 ,0
0 : ahi % r15 ,- S T A C K _ F R A M E _ O V E R H E A D
l % r1 ,2 f - 0 b ( % r13 )
l % r1 ,0 ( % r1 )
ltr % r1 ,% r1
jz 1 f
basr % r14 ,% r1
lm % r0 ,% r15 ,_ _ L C _ S A V E _ A R E A
lpsw _ _ L C _ P G M _ O L D _ P S W
1 : lpsw d i s a b l e d _ w a i t _ p s w - 0 b ( % r13 )
2 : .long s 390 _ base_ p g m _ h a n d l e r _ f n
disabled_wait_psw :
.align 8
.long 0 x0 0 0 a00 0 0 ,0 x00 0 0 0 0 0 0 + s39 0 _ b a s e _ p g m _ h a n d l e r
.section .bss
2011-07-24 12:48:19 +04:00
.align 4
2007-02-05 23:18:37 +03:00
.globl s390_base_pgm_handler_fn
s390_base_pgm_handler_fn :
.long 0
.previous
# endif / * C O N F I G _ 6 4 B I T * /