2005-08-20 02:55:33 +04:00
/ * una_ a s m . S : K e r n e l u n a l i g n e d t r a p a s s e m b l e r h e l p e r s .
*
* Copyright ( C ) 1 9 9 6 ,2 0 0 5 D a v i d S . M i l l e r ( d a v e m @davemloft.net)
* Copyright ( C ) 1 9 9 6 ,1 9 9 7 J a k u b J e l i n e k ( j j @sunsite.mff.cuni.cz)
* /
.text
.globl __do_int_store
__do_int_store :
rd % a s i , % o 4
wr % o 3 , 0 , % a s i
2005-09-20 06:56:06 +04:00
mov % o 2 , % g 3
2005-08-20 02:55:33 +04:00
cmp % o 1 , 2
be,p n % i c c , 2 f
cmp % o 1 , 4
be,p t % i c c , 1 f
srlx % g 3 , 2 4 , % g 2
srlx % g 3 , 5 6 , % g 1
srlx % g 3 , 4 8 , % g 7
4 : stba % g 1 , [ % o 0 ] % a s i
srlx % g 3 , 4 0 , % g 1
5 : stba % g 7 , [ % o 0 + 1 ] % a s i
srlx % g 3 , 3 2 , % g 7
6 : stba % g 1 , [ % o 0 + 2 ] % a s i
7 : stba % g 7 , [ % o 0 + 3 ] % a s i
srlx % g 3 , 1 6 , % g 1
8 : stba % g 2 , [ % o 0 + 4 ] % a s i
srlx % g 3 , 8 , % g 7
9 : stba % g 1 , [ % o 0 + 5 ] % a s i
10 : stba % g 7 , [ % o 0 + 6 ] % a s i
ba,p t % x c c , 0 f
11 : stba % g 3 , [ % o 0 + 7 ] % a s i
1 : srl % g 3 , 1 6 , % g 7
12 : stba % g 2 , [ % o 0 ] % a s i
srl % g 3 , 8 , % g 2
13 : stba % g 7 , [ % o 0 + 1 ] % a s i
14 : stba % g 2 , [ % o 0 + 2 ] % a s i
ba,p t % x c c , 0 f
15 : stba % g 3 , [ % o 0 + 3 ] % a s i
2 : srl % g 3 , 8 , % g 2
16 : stba % g 2 , [ % o 0 ] % a s i
17 : stba % g 3 , [ % o 0 + 1 ] % a s i
0 :
wr % o 4 , 0 x0 , % a s i
retl
2005-09-29 07:41:45 +04:00
mov 0 , % o 0
2005-08-20 02:55:33 +04:00
.size _ _ do_ i n t _ s t o r e , . - _ _ d o _ i n t _ s t o r e
2006-03-05 10:23:56 +03:00
.section _ _ ex_ t a b l e ," a "
2005-09-29 07:41:45 +04:00
.word 4 b, _ _ r e t l _ e f a u l t
.word 5 b, _ _ r e t l _ e f a u l t
.word 6 b, _ _ r e t l _ e f a u l t
.word 7 b, _ _ r e t l _ e f a u l t
.word 8 b, _ _ r e t l _ e f a u l t
.word 9 b, _ _ r e t l _ e f a u l t
.word 1 0 b, _ _ r e t l _ e f a u l t
.word 1 1 b, _ _ r e t l _ e f a u l t
.word 1 2 b, _ _ r e t l _ e f a u l t
.word 1 3 b, _ _ r e t l _ e f a u l t
.word 1 4 b, _ _ r e t l _ e f a u l t
.word 1 5 b, _ _ r e t l _ e f a u l t
.word 1 6 b, _ _ r e t l _ e f a u l t
.word 1 7 b, _ _ r e t l _ e f a u l t
2005-08-20 02:55:33 +04:00
.previous
.globl do_int_load
do_int_load :
rd % a s i , % o 5
wr % o 4 , 0 , % a s i
cmp % o 1 , 8
bge,p n % i c c , 9 f
cmp % o 1 , 4
be,p t % i c c , 6 f
4 : lduba [ % o 2 ] % a s i , % g 2
5 : lduba [ % o 2 + 1 ] % a s i , % g 3
sll % g 2 , 8 , % g 2
brz,p t % o 3 , 3 f
add % g 2 , % g 3 , % g 2
sllx % g 2 , 4 8 , % g 2
srax % g 2 , 4 8 , % g 2
3 : ba,p t % x c c , 0 f
stx % g 2 , [ % o 0 ]
6 : lduba [ % o 2 + 1 ] % a s i , % g 3
sll % g 2 , 2 4 , % g 2
7 : lduba [ % o 2 + 2 ] % a s i , % g 7
sll % g 3 , 1 6 , % g 3
8 : lduba [ % o 2 + 3 ] % a s i , % g 1
sll % g 7 , 8 , % g 7
or % g 2 , % g 3 , % g 2
or % g 7 , % g 1 , % g 7
or % g 2 , % g 7 , % g 2
brnz,a ,p t % o 3 , 3 f
sra % g 2 , 0 , % g 2
3 : ba,p t % x c c , 0 f
stx % g 2 , [ % o 0 ]
9 : lduba [ % o 2 ] % a s i , % g 2
10 : lduba [ % o 2 + 1 ] % a s i , % g 3
sllx % g 2 , 5 6 , % g 2
11 : lduba [ % o 2 + 2 ] % a s i , % g 7
sllx % g 3 , 4 8 , % g 3
12 : lduba [ % o 2 + 3 ] % a s i , % g 1
sllx % g 7 , 4 0 , % g 7
sllx % g 1 , 3 2 , % g 1
or % g 2 , % g 3 , % g 2
or % g 7 , % g 1 , % g 7
13 : lduba [ % o 2 + 4 ] % a s i , % g 3
or % g 2 , % g 7 , % g 7
14 : lduba [ % o 2 + 5 ] % a s i , % g 1
sllx % g 3 , 2 4 , % g 3
15 : lduba [ % o 2 + 6 ] % a s i , % g 2
sllx % g 1 , 1 6 , % g 1
or % g 7 , % g 3 , % g 7
16 : lduba [ % o 2 + 7 ] % a s i , % g 3
sllx % g 2 , 8 , % g 2
or % g 7 , % g 1 , % g 7
or % g 2 , % g 3 , % g 2
or % g 7 , % g 2 , % g 7
cmp % o 1 , 8
be,a ,p t % i c c , 0 f
stx % g 7 , [ % o 0 ]
srlx % g 7 , 3 2 , % g 2
sra % g 7 , 0 , % g 7
stx % g 2 , [ % o 0 ]
stx % g 7 , [ % o 0 + 8 ]
0 :
wr % o 5 , 0 x0 , % a s i
retl
2005-09-29 07:41:45 +04:00
mov 0 , % o 0
2005-08-20 02:55:33 +04:00
.size _ _ do_ i n t _ l o a d , . - _ _ d o _ i n t _ l o a d
2006-03-05 10:23:56 +03:00
.section _ _ ex_ t a b l e ," a "
2005-09-29 07:41:45 +04:00
.word 4 b, _ _ r e t l _ e f a u l t
.word 5 b, _ _ r e t l _ e f a u l t
.word 6 b, _ _ r e t l _ e f a u l t
.word 7 b, _ _ r e t l _ e f a u l t
.word 8 b, _ _ r e t l _ e f a u l t
.word 9 b, _ _ r e t l _ e f a u l t
.word 1 0 b, _ _ r e t l _ e f a u l t
.word 1 1 b, _ _ r e t l _ e f a u l t
.word 1 2 b, _ _ r e t l _ e f a u l t
.word 1 3 b, _ _ r e t l _ e f a u l t
.word 1 4 b, _ _ r e t l _ e f a u l t
.word 1 5 b, _ _ r e t l _ e f a u l t
.word 1 6 b, _ _ r e t l _ e f a u l t
2005-08-20 02:55:33 +04:00
.previous