2012-08-19 17:37:56 -07:00
# include < l i n u x / l i n k a g e . h >
# include < a s m / v i s a s m . h >
2012-08-31 12:11:51 -07:00
# include " o p c o d e s . h "
2012-08-19 17:37:56 -07:00
ENTRY( s h a51 2 _ s p a r c64 _ t r a n s f o r m )
/* %o0 = digest, %o1 = data, %o2 = rounds */
VISEntry
ldd [ % o 0 + 0 x00 ] , % f0
ldd [ % o 0 + 0 x08 ] , % f2
ldd [ % o 0 + 0 x10 ] , % f4
ldd [ % o 0 + 0 x18 ] , % f6
ldd [ % o 0 + 0 x20 ] , % f8
ldd [ % o 0 + 0 x28 ] , % f10
andcc % o 1 , 0 x7 , % g 0
ldd [ % o 0 + 0 x30 ] , % f12
bne,p n % x c c , 1 0 f
ldd [ % o 0 + 0 x38 ] , % f14
1 :
ldd [ % o 1 + 0 x00 ] , % f16
ldd [ % o 1 + 0 x08 ] , % f18
ldd [ % o 1 + 0 x10 ] , % f20
ldd [ % o 1 + 0 x18 ] , % f22
ldd [ % o 1 + 0 x20 ] , % f24
ldd [ % o 1 + 0 x28 ] , % f26
ldd [ % o 1 + 0 x30 ] , % f28
ldd [ % o 1 + 0 x38 ] , % f30
ldd [ % o 1 + 0 x40 ] , % f32
ldd [ % o 1 + 0 x48 ] , % f34
ldd [ % o 1 + 0 x50 ] , % f36
ldd [ % o 1 + 0 x58 ] , % f38
ldd [ % o 1 + 0 x60 ] , % f40
ldd [ % o 1 + 0 x68 ] , % f42
ldd [ % o 1 + 0 x70 ] , % f44
ldd [ % o 1 + 0 x78 ] , % f46
2012-08-31 12:11:51 -07:00
SHA5 1 2
2012-08-19 17:37:56 -07:00
subcc % o 2 , 1 , % o 2
bne,p t % x c c , 1 b
add % o 1 , 0 x80 , % o 1
5 :
std % f0 , [ % o 0 + 0 x00 ]
std % f2 , [ % o 0 + 0 x08 ]
std % f4 , [ % o 0 + 0 x10 ]
std % f6 , [ % o 0 + 0 x18 ]
std % f8 , [ % o 0 + 0 x20 ]
std % f10 , [ % o 0 + 0 x28 ]
std % f12 , [ % o 0 + 0 x30 ]
std % f14 , [ % o 0 + 0 x38 ]
retl
VISExit
10 :
alignaddr % o 1 , % g 0 , % o 1
ldd [ % o 1 + 0 x00 ] , % f18
1 :
ldd [ % o 1 + 0 x08 ] , % f20
ldd [ % o 1 + 0 x10 ] , % f22
ldd [ % o 1 + 0 x18 ] , % f24
ldd [ % o 1 + 0 x20 ] , % f26
ldd [ % o 1 + 0 x28 ] , % f28
ldd [ % o 1 + 0 x30 ] , % f30
ldd [ % o 1 + 0 x38 ] , % f32
ldd [ % o 1 + 0 x40 ] , % f34
ldd [ % o 1 + 0 x48 ] , % f36
ldd [ % o 1 + 0 x50 ] , % f38
ldd [ % o 1 + 0 x58 ] , % f40
ldd [ % o 1 + 0 x60 ] , % f42
ldd [ % o 1 + 0 x68 ] , % f44
ldd [ % o 1 + 0 x70 ] , % f46
ldd [ % o 1 + 0 x78 ] , % f48
ldd [ % o 1 + 0 x80 ] , % f50
faligndata % f18 , % f20 , % f16
faligndata % f20 , % f22 , % f18
faligndata % f22 , % f24 , % f20
faligndata % f24 , % f26 , % f22
faligndata % f26 , % f28 , % f24
faligndata % f28 , % f30 , % f26
faligndata % f30 , % f32 , % f28
faligndata % f32 , % f34 , % f30
faligndata % f34 , % f36 , % f32
faligndata % f36 , % f38 , % f34
faligndata % f38 , % f40 , % f36
faligndata % f40 , % f42 , % f38
faligndata % f42 , % f44 , % f40
faligndata % f44 , % f46 , % f42
faligndata % f46 , % f48 , % f44
faligndata % f48 , % f50 , % f46
2012-08-31 12:11:51 -07:00
SHA5 1 2
2012-08-19 17:37:56 -07:00
subcc % o 2 , 1 , % o 2
2012-08-28 20:55:19 -07:00
fsrc2 % f50 , % f18
2012-08-19 17:37:56 -07:00
bne,p t % x c c , 1 b
add % o 1 , 0 x80 , % o 1
ba,a ,p t % x c c , 5 b
ENDPROC( s h a51 2 _ s p a r c64 _ t r a n s f o r m )