2008-04-29 13:38:50 +04:00
# ifdef C O N F I G _ K G D B
.globl arch_kgdb_breakpoint
.type arch_ k g d b _ b r e a k p o i n t ,#f u n c t i o n
arch_kgdb_breakpoint :
ta 0 x72
retl
nop
.size arch_ k g d b _ b r e a k p o i n t ,. - a r c h _ k g d b _ b r e a k p o i n t
# endif
2008-04-28 11:47:20 +04:00
.type _ _ do_ p r i v a c t ,#f u n c t i o n
__do_privact :
mov T L B _ S F S R , % g 3
stxa % g 0 , [ % g 3 ] A S I _ D M M U ! C l e a r F a u l t V a l i d b i t
membar #S y n c
sethi % h i ( 1 0 9 f ) , % g 7
ba,p t % x c c , e t r a p
109 : or % g 7 , % l o ( 1 0 9 b ) , % g 7
call d o _ p r i v a c t
add % s p , P T R E G S _ O F F , % o 0
ba,p t % x c c , r t r a p
nop
.size _ _ do_ p r i v a c t ,. - _ _ d o _ p r i v a c t
.type do_ m n a ,#f u n c t i o n
do_mna :
rdpr % t l , % g 3
cmp % g 3 , 1
/ * Setup % g 4 / % g 5 n o w a s t h e y a r e u s e d i n t h e
* winfixup c o d e .
* /
mov T L B _ S F S R , % g 3
mov D M M U _ S F A R , % g 4
ldxa [ % g 4 ] A S I _ D M M U , % g 4
ldxa [ % g 3 ] A S I _ D M M U , % g 5
stxa % g 0 , [ % g 3 ] A S I _ D M M U ! C l e a r F a u l t V a l i d b i t
membar #S y n c
bgu,p n % i c c , w i n f i x _ m n a
rdpr % t p c , % g 3
1 : sethi % h i ( 1 0 9 f ) , % g 7
ba,p t % x c c , e t r a p
109 : or % g 7 , % l o ( 1 0 9 b ) , % g 7
mov % l 4 , % o 1
mov % l 5 , % o 2
call m e m _ a d d r e s s _ u n a l i g n e d
add % s p , P T R E G S _ O F F , % o 0
ba,p t % x c c , r t r a p
nop
.size do_ m n a ,. - d o _ m n a
.type do_ l d d f m n a ,#f u n c t i o n
do_lddfmna :
sethi % h i ( 1 0 9 f ) , % g 7
mov T L B _ S F S R , % g 4
ldxa [ % g 4 ] A S I _ D M M U , % g 5
stxa % g 0 , [ % g 4 ] A S I _ D M M U ! C l e a r F a u l t V a l i d b i t
membar #S y n c
mov D M M U _ S F A R , % g 4
ldxa [ % g 4 ] A S I _ D M M U , % g 4
ba,p t % x c c , e t r a p
109 : or % g 7 , % l o ( 1 0 9 b ) , % g 7
mov % l 4 , % o 1
mov % l 5 , % o 2
call h a n d l e _ l d d f m n a
add % s p , P T R E G S _ O F F , % o 0
ba,p t % x c c , r t r a p
nop
.size do_ l d d f m n a ,. - d o _ l d d f m n a
.type do_ s t d f m n a ,#f u n c t i o n
do_stdfmna :
sethi % h i ( 1 0 9 f ) , % g 7
mov T L B _ S F S R , % g 4
ldxa [ % g 4 ] A S I _ D M M U , % g 5
stxa % g 0 , [ % g 4 ] A S I _ D M M U ! C l e a r F a u l t V a l i d b i t
membar #S y n c
mov D M M U _ S F A R , % g 4
ldxa [ % g 4 ] A S I _ D M M U , % g 4
ba,p t % x c c , e t r a p
109 : or % g 7 , % l o ( 1 0 9 b ) , % g 7
mov % l 4 , % o 1
mov % l 5 , % o 2
call h a n d l e _ s t d f m n a
add % s p , P T R E G S _ O F F , % o 0
ba,p t % x c c , r t r a p
nop
.size do_ s t d f m n a ,. - d o _ s t d f m n a
.type breakpoint_ t r a p ,#f u n c t i o n
breakpoint_trap :
call s p a r c _ b r e a k p o i n t
add % s p , P T R E G S _ O F F , % o 0
ba,p t % x c c , r t r a p
nop
.size breakpoint_ t r a p ,. - b r e a k p o i n t _ t r a p