mirror of
https://github.com/Stichting-MINIX-Research-Foundation/netbsd.git
synced 2025-08-14 08:31:28 -04:00
1635 lines
43 KiB
ArmAsm
1635 lines
43 KiB
ArmAsm
.section ".text",#alloc,#execinstr
|
|
|
|
.align 64
|
|
vis_const:
|
|
.long 0x5a827999,0x5a827999 ! K_00_19
|
|
.long 0x6ed9eba1,0x6ed9eba1 ! K_20_39
|
|
.long 0x8f1bbcdc,0x8f1bbcdc ! K_40_59
|
|
.long 0xca62c1d6,0xca62c1d6 ! K_60_79
|
|
.long 0x00000100,0x00000100
|
|
.align 64
|
|
.type vis_const,#object
|
|
.size vis_const,(.-vis_const)
|
|
|
|
.globl sha1_block_data_order
|
|
sha1_block_data_order:
|
|
save %sp,-112,%sp
|
|
add %fp,0-256,%g1
|
|
|
|
1: call .+8
|
|
add %o7,vis_const-1b,%i3
|
|
|
|
ldd [%i3+0],%f34
|
|
ldd [%i3+8],%f36
|
|
ldd [%i3+16],%f38
|
|
ldd [%i3+24],%f40
|
|
ldd [%i3+32],%f32
|
|
|
|
ld [%i0+0],%o0
|
|
and %g1,-256,%g1
|
|
ld [%i0+4],%o1
|
|
sub %g1,0+112,%sp
|
|
ld [%i0+8],%o2
|
|
and %i1,7,%g4
|
|
ld [%i0+12],%o3
|
|
and %i1,-8,%i1
|
|
ld [%i0+16],%o4
|
|
|
|
! X[16] is maintained in FP register bank
|
|
.word 0x81b00304 !alignaddr %g0,%g4,%g0
|
|
ldd [%i1+0],%f0
|
|
sub %i1,-64,%o5
|
|
ldd [%i1+8],%f2
|
|
and %o5,-64,%o5
|
|
ldd [%i1+16],%f4
|
|
and %o5,255,%o5
|
|
ldd [%i1+24],%f6
|
|
add %g1,%o5,%o5
|
|
ldd [%i1+32],%f8
|
|
ldd [%i1+40],%f10
|
|
ldd [%i1+48],%f12
|
|
brz,pt %g4,.Laligned
|
|
ldd [%i1+56],%f14
|
|
|
|
ldd [%i1+64],%f16
|
|
.word 0x81b00902 !faligndata %f0,%f2,%f0
|
|
.word 0x85b08904 !faligndata %f2,%f4,%f2
|
|
.word 0x89b10906 !faligndata %f4,%f6,%f4
|
|
.word 0x8db18908 !faligndata %f6,%f8,%f6
|
|
.word 0x91b2090a !faligndata %f8,%f10,%f8
|
|
.word 0x95b2890c !faligndata %f10,%f12,%f10
|
|
.word 0x99b3090e !faligndata %f12,%f14,%f12
|
|
.word 0x9db38910 !faligndata %f14,%f16,%f14
|
|
|
|
.Laligned:
|
|
mov 5,%i3
|
|
dec 1,%i2
|
|
.word 0x81b0031b !alignaddr %g0,%i3,%g0
|
|
.word 0xa1b0ca40 !fpadd32 %f34,%f0,%f16
|
|
.word 0xa5b0ca42 !fpadd32 %f34,%f2,%f18
|
|
.word 0xa9b0ca44 !fpadd32 %f34,%f4,%f20
|
|
.word 0xadb0ca46 !fpadd32 %f34,%f6,%f22
|
|
.word 0xb1b0ca48 !fpadd32 %f34,%f8,%f24
|
|
.word 0xb5b0ca4a !fpadd32 %f34,%f10,%f26
|
|
.word 0xb9b0ca4c !fpadd32 %f34,%f12,%f28
|
|
.word 0xbdb0ca4e !fpadd32 %f34,%f14,%f30
|
|
std %f16,[%o5+0]
|
|
mov %o0,%l0
|
|
std %f18,[%o5+8]
|
|
mov %o1,%l1
|
|
std %f20,[%o5+16]
|
|
mov %o2,%l2
|
|
std %f22,[%o5+24]
|
|
mov %o3,%l3
|
|
std %f24,[%o5+32]
|
|
mov %o4,%l4
|
|
std %f26,[%o5+40]
|
|
.word 0x81b34da0 !fxors %f13,%f0,%f0
|
|
std %f28,[%o5+48]
|
|
ba .Loop
|
|
std %f30,[%o5+56]
|
|
.align 32
|
|
.Loop:
|
|
sll %l0,5,%i3 !! 0
|
|
and %l2,%l1,%g5
|
|
ld [%o5+0],%o7
|
|
.word 0x83b38da1 !fxors %f14,%f1,%f1! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
.word 0xa5b08d88 !fxor %f2,%f8,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
sll %l1,30,%i5
|
|
add %i4,%l4,%l4
|
|
andn %l3,%l1,%i4
|
|
add %o7,%l4,%l4
|
|
.word 0x81b48d80 !fxor %f18,%f0,%f0 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l1,2,%l1
|
|
or %i4,%g5,%i4
|
|
or %i5,%l1,%l1
|
|
add %i4,%l4,%l4
|
|
.word 0xa5b00900 !faligndata %f0,%f0,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l4,5,%i3 !! 1
|
|
and %l1,%l0,%g5
|
|
ld [%o5+4],%o7
|
|
.word 0x81b00a40 !fpadd32 %f0,%f0,%f0 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
sll %l0,30,%i5
|
|
add %i4,%l3,%l3
|
|
.word 0xa9b0ca4e !fpadd32 %f34,%f14,%f20 !
|
|
andn %l2,%l0,%i4
|
|
add %o7,%l3,%l3
|
|
.word 0x85b3cda2 !fxors %f15,%f2,%f2 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l0,2,%l0
|
|
or %i4,%g5,%i4
|
|
.word 0x81b48d80 !fxor %f18,%f0,%f0 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l0,%l0
|
|
add %i4,%l3,%l3
|
|
sll %l3,5,%i3 !! 2
|
|
and %l0,%l4,%g5
|
|
ld [%o5+8],%o7
|
|
.word 0x87b00da3 !fxors %f0,%f3,%f3! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
.word 0xa5b10d8a !fxor %f4,%f10,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
sll %l4,30,%i5
|
|
add %i4,%l2,%l2
|
|
andn %l1,%l4,%i4
|
|
add %o7,%l2,%l2
|
|
.word 0x85b48d82 !fxor %f18,%f2,%f2 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l4,2,%l4
|
|
or %i4,%g5,%i4
|
|
or %i5,%l4,%l4
|
|
add %i4,%l2,%l2
|
|
.word 0xa5b08902 !faligndata %f2,%f2,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l2,5,%i3 !! 3
|
|
and %l4,%l3,%g5
|
|
ld [%o5+12],%o7
|
|
.word 0x85b08a42 !fpadd32 %f2,%f2,%f2 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
sll %l3,30,%i5
|
|
add %i4,%l1,%l1
|
|
.word 0xa9b0ca40 !fpadd32 %f34,%f0,%f20 !
|
|
andn %l0,%l3,%i4
|
|
add %o7,%l1,%l1
|
|
.word 0x89b04da4 !fxors %f1,%f4,%f4 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l3,2,%l3
|
|
or %i4,%g5,%i4
|
|
.word 0x85b48d82 !fxor %f18,%f2,%f2 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l3,%l3
|
|
add %i4,%l1,%l1
|
|
std %f20,[%o5+0] !
|
|
sll %l1,5,%i3 !! 4
|
|
and %l3,%l2,%g5
|
|
ld [%o5+16],%o7
|
|
.word 0x8bb08da5 !fxors %f2,%f5,%f5! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
.word 0xa5b18d8c !fxor %f6,%f12,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
sll %l2,30,%i5
|
|
add %i4,%l0,%l0
|
|
andn %l4,%l2,%i4
|
|
add %o7,%l0,%l0
|
|
.word 0x89b48d84 !fxor %f18,%f4,%f4 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l2,2,%l2
|
|
or %i4,%g5,%i4
|
|
or %i5,%l2,%l2
|
|
add %i4,%l0,%l0
|
|
.word 0xa5b10904 !faligndata %f4,%f4,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l0,5,%i3 !! 5
|
|
and %l2,%l1,%g5
|
|
ld [%o5+20],%o7
|
|
.word 0x89b10a44 !fpadd32 %f4,%f4,%f4 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
sll %l1,30,%i5
|
|
add %i4,%l4,%l4
|
|
.word 0xa9b0ca42 !fpadd32 %f34,%f2,%f20 !
|
|
andn %l3,%l1,%i4
|
|
add %o7,%l4,%l4
|
|
.word 0x8db0cda6 !fxors %f3,%f6,%f6 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l1,2,%l1
|
|
or %i4,%g5,%i4
|
|
.word 0x89b48d84 !fxor %f18,%f4,%f4 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l1,%l1
|
|
add %i4,%l4,%l4
|
|
std %f20,[%o5+8] !
|
|
sll %l4,5,%i3 !! 6
|
|
and %l1,%l0,%g5
|
|
ld [%o5+24],%o7
|
|
.word 0x8fb10da7 !fxors %f4,%f7,%f7! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
.word 0xa5b20d8e !fxor %f8,%f14,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
sll %l0,30,%i5
|
|
add %i4,%l3,%l3
|
|
andn %l2,%l0,%i4
|
|
add %o7,%l3,%l3
|
|
.word 0x8db48d86 !fxor %f18,%f6,%f6 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l0,2,%l0
|
|
or %i4,%g5,%i4
|
|
or %i5,%l0,%l0
|
|
add %i4,%l3,%l3
|
|
.word 0xa5b18906 !faligndata %f6,%f6,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l3,5,%i3 !! 7
|
|
and %l0,%l4,%g5
|
|
ld [%o5+28],%o7
|
|
.word 0x8db18a46 !fpadd32 %f6,%f6,%f6 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
sll %l4,30,%i5
|
|
add %i4,%l2,%l2
|
|
.word 0xa9b14a44 !fpadd32 %f36,%f4,%f20 !
|
|
andn %l1,%l4,%i4
|
|
add %o7,%l2,%l2
|
|
.word 0x91b14da8 !fxors %f5,%f8,%f8 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l4,2,%l4
|
|
or %i4,%g5,%i4
|
|
.word 0x8db48d86 !fxor %f18,%f6,%f6 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l4,%l4
|
|
add %i4,%l2,%l2
|
|
std %f20,[%o5+16] !
|
|
sll %l2,5,%i3 !! 8
|
|
and %l4,%l3,%g5
|
|
ld [%o5+32],%o7
|
|
.word 0x93b18da9 !fxors %f6,%f9,%f9! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
.word 0xa5b28d80 !fxor %f10,%f0,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
sll %l3,30,%i5
|
|
add %i4,%l1,%l1
|
|
andn %l0,%l3,%i4
|
|
add %o7,%l1,%l1
|
|
.word 0x91b48d88 !fxor %f18,%f8,%f8 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l3,2,%l3
|
|
or %i4,%g5,%i4
|
|
or %i5,%l3,%l3
|
|
add %i4,%l1,%l1
|
|
.word 0xa5b20908 !faligndata %f8,%f8,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l1,5,%i3 !! 9
|
|
and %l3,%l2,%g5
|
|
ld [%o5+36],%o7
|
|
.word 0x91b20a48 !fpadd32 %f8,%f8,%f8 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
sll %l2,30,%i5
|
|
add %i4,%l0,%l0
|
|
.word 0xa9b14a46 !fpadd32 %f36,%f6,%f20 !
|
|
andn %l4,%l2,%i4
|
|
add %o7,%l0,%l0
|
|
.word 0x95b1cdaa !fxors %f7,%f10,%f10 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l2,2,%l2
|
|
or %i4,%g5,%i4
|
|
.word 0x91b48d88 !fxor %f18,%f8,%f8 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l2,%l2
|
|
add %i4,%l0,%l0
|
|
std %f20,[%o5+24] !
|
|
sll %l0,5,%i3 !! 10
|
|
and %l2,%l1,%g5
|
|
ld [%o5+40],%o7
|
|
.word 0x97b20dab !fxors %f8,%f11,%f11! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
.word 0xa5b30d82 !fxor %f12,%f2,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
sll %l1,30,%i5
|
|
add %i4,%l4,%l4
|
|
andn %l3,%l1,%i4
|
|
add %o7,%l4,%l4
|
|
.word 0x95b48d8a !fxor %f18,%f10,%f10 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l1,2,%l1
|
|
or %i4,%g5,%i4
|
|
or %i5,%l1,%l1
|
|
add %i4,%l4,%l4
|
|
.word 0xa5b2890a !faligndata %f10,%f10,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l4,5,%i3 !! 11
|
|
and %l1,%l0,%g5
|
|
ld [%o5+44],%o7
|
|
.word 0x95b28a4a !fpadd32 %f10,%f10,%f10 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
sll %l0,30,%i5
|
|
add %i4,%l3,%l3
|
|
.word 0xa9b14a48 !fpadd32 %f36,%f8,%f20 !
|
|
andn %l2,%l0,%i4
|
|
add %o7,%l3,%l3
|
|
.word 0x99b24dac !fxors %f9,%f12,%f12 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l0,2,%l0
|
|
or %i4,%g5,%i4
|
|
.word 0x95b48d8a !fxor %f18,%f10,%f10 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l0,%l0
|
|
add %i4,%l3,%l3
|
|
std %f20,[%o5+32] !
|
|
sll %l3,5,%i3 !! 12
|
|
and %l0,%l4,%g5
|
|
ld [%o5+48],%o7
|
|
.word 0x9bb28dad !fxors %f10,%f13,%f13! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
.word 0xa5b38d84 !fxor %f14,%f4,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
sll %l4,30,%i5
|
|
add %i4,%l2,%l2
|
|
andn %l1,%l4,%i4
|
|
add %o7,%l2,%l2
|
|
.word 0x99b48d8c !fxor %f18,%f12,%f12 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l4,2,%l4
|
|
or %i4,%g5,%i4
|
|
or %i5,%l4,%l4
|
|
add %i4,%l2,%l2
|
|
.word 0xa5b3090c !faligndata %f12,%f12,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l2,5,%i3 !! 13
|
|
and %l4,%l3,%g5
|
|
ld [%o5+52],%o7
|
|
.word 0x99b30a4c !fpadd32 %f12,%f12,%f12 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
sll %l3,30,%i5
|
|
add %i4,%l1,%l1
|
|
.word 0xa9b14a4a !fpadd32 %f36,%f10,%f20 !
|
|
andn %l0,%l3,%i4
|
|
add %o7,%l1,%l1
|
|
.word 0x9db2cdae !fxors %f11,%f14,%f14 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l3,2,%l3
|
|
or %i4,%g5,%i4
|
|
.word 0x99b48d8c !fxor %f18,%f12,%f12 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l3,%l3
|
|
add %i4,%l1,%l1
|
|
std %f20,[%o5+40] !
|
|
sll %l1,5,%i3 !! 14
|
|
and %l3,%l2,%g5
|
|
ld [%o5+56],%o7
|
|
.word 0x9fb30daf !fxors %f12,%f15,%f15! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
.word 0xa5b00d86 !fxor %f0,%f6,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
sll %l2,30,%i5
|
|
add %i4,%l0,%l0
|
|
andn %l4,%l2,%i4
|
|
add %o7,%l0,%l0
|
|
.word 0x9db48d8e !fxor %f18,%f14,%f14 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l2,2,%l2
|
|
or %i4,%g5,%i4
|
|
or %i5,%l2,%l2
|
|
add %i4,%l0,%l0
|
|
.word 0xa5b3890e !faligndata %f14,%f14,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l0,5,%i3 !! 15
|
|
and %l2,%l1,%g5
|
|
ld [%o5+60],%o7
|
|
.word 0x9db38a4e !fpadd32 %f14,%f14,%f14 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
sll %l1,30,%i5
|
|
add %i4,%l4,%l4
|
|
.word 0xa9b14a4c !fpadd32 %f36,%f12,%f20 !
|
|
andn %l3,%l1,%i4
|
|
add %o7,%l4,%l4
|
|
.word 0x81b34da0 !fxors %f13,%f0,%f0 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l1,2,%l1
|
|
or %i4,%g5,%i4
|
|
.word 0x9db48d8e !fxor %f18,%f14,%f14 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l1,%l1
|
|
add %i4,%l4,%l4
|
|
std %f20,[%o5+48] !
|
|
sll %l4,5,%i3 !! 16
|
|
and %l1,%l0,%g5
|
|
ld [%o5+0],%o7
|
|
.word 0x83b38da1 !fxors %f14,%f1,%f1! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
.word 0xa5b08d88 !fxor %f2,%f8,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
sll %l0,30,%i5
|
|
add %i4,%l3,%l3
|
|
andn %l2,%l0,%i4
|
|
add %o7,%l3,%l3
|
|
.word 0x81b48d80 !fxor %f18,%f0,%f0 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l0,2,%l0
|
|
or %i4,%g5,%i4
|
|
or %i5,%l0,%l0
|
|
add %i4,%l3,%l3
|
|
.word 0xa5b00900 !faligndata %f0,%f0,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l3,5,%i3 !! 17
|
|
and %l0,%l4,%g5
|
|
ld [%o5+4],%o7
|
|
.word 0x81b00a40 !fpadd32 %f0,%f0,%f0 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
sll %l4,30,%i5
|
|
add %i4,%l2,%l2
|
|
.word 0xa9b14a4e !fpadd32 %f36,%f14,%f20 !
|
|
andn %l1,%l4,%i4
|
|
add %o7,%l2,%l2
|
|
.word 0x85b3cda2 !fxors %f15,%f2,%f2 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l4,2,%l4
|
|
or %i4,%g5,%i4
|
|
.word 0x81b48d80 !fxor %f18,%f0,%f0 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l4,%l4
|
|
add %i4,%l2,%l2
|
|
std %f20,[%o5+56] !
|
|
sll %l2,5,%i3 !! 18
|
|
and %l4,%l3,%g5
|
|
ld [%o5+8],%o7
|
|
.word 0x87b00da3 !fxors %f0,%f3,%f3! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
.word 0xa5b10d8a !fxor %f4,%f10,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
sll %l3,30,%i5
|
|
add %i4,%l1,%l1
|
|
andn %l0,%l3,%i4
|
|
add %o7,%l1,%l1
|
|
.word 0x85b48d82 !fxor %f18,%f2,%f2 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l3,2,%l3
|
|
or %i4,%g5,%i4
|
|
or %i5,%l3,%l3
|
|
add %i4,%l1,%l1
|
|
.word 0xa5b08902 !faligndata %f2,%f2,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l1,5,%i3 !! 19
|
|
and %l3,%l2,%g5
|
|
ld [%o5+12],%o7
|
|
.word 0x85b08a42 !fpadd32 %f2,%f2,%f2 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
sll %l2,30,%i5
|
|
add %i4,%l0,%l0
|
|
.word 0xa9b14a40 !fpadd32 %f36,%f0,%f20 !
|
|
andn %l4,%l2,%i4
|
|
add %o7,%l0,%l0
|
|
.word 0x89b04da4 !fxors %f1,%f4,%f4 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l2,2,%l2
|
|
or %i4,%g5,%i4
|
|
.word 0x85b48d82 !fxor %f18,%f2,%f2 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l2,%l2
|
|
add %i4,%l0,%l0
|
|
std %f20,[%o5+0] !
|
|
sll %l0,5,%i3 !! 20
|
|
ld [%o5+16],%o7
|
|
.word 0x8bb08da5 !fxors %f2,%f5,%f5! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
.word 0xa5b18d8c !fxor %f6,%f12,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
xor %l2,%l1,%i3
|
|
add %i4,%l4,%l4
|
|
sll %l1,30,%i5
|
|
xor %l3,%i3,%i4
|
|
.word 0x89b48d84 !fxor %f18,%f4,%f4 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l1,2,%l1
|
|
add %i4,%l4,%l4
|
|
or %i5,%l1,%l1
|
|
add %o7,%l4,%l4
|
|
.word 0xa5b10904 !faligndata %f4,%f4,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l4,5,%i3 !! 21
|
|
ld [%o5+20],%o7
|
|
.word 0x89b10a44 !fpadd32 %f4,%f4,%f4 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
xor %l1,%l0,%i3
|
|
add %i4,%l3,%l3
|
|
.word 0xa9b14a42 !fpadd32 %f36,%f2,%f20 !
|
|
sll %l0,30,%i5
|
|
xor %l2,%i3,%i4
|
|
.word 0x8db0cda6 !fxors %f3,%f6,%f6 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l0,2,%l0
|
|
add %i4,%l3,%l3
|
|
.word 0x89b48d84 !fxor %f18,%f4,%f4 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l0,%l0
|
|
add %o7,%l3,%l3
|
|
std %f20,[%o5+8] !
|
|
sll %l3,5,%i3 !! 22
|
|
ld [%o5+24],%o7
|
|
.word 0x8fb10da7 !fxors %f4,%f7,%f7! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
.word 0xa5b20d8e !fxor %f8,%f14,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
xor %l0,%l4,%i3
|
|
add %i4,%l2,%l2
|
|
sll %l4,30,%i5
|
|
xor %l1,%i3,%i4
|
|
.word 0x8db48d86 !fxor %f18,%f6,%f6 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l4,2,%l4
|
|
add %i4,%l2,%l2
|
|
or %i5,%l4,%l4
|
|
add %o7,%l2,%l2
|
|
.word 0xa5b18906 !faligndata %f6,%f6,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l2,5,%i3 !! 23
|
|
ld [%o5+28],%o7
|
|
.word 0x8db18a46 !fpadd32 %f6,%f6,%f6 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
xor %l4,%l3,%i3
|
|
add %i4,%l1,%l1
|
|
.word 0xa9b14a44 !fpadd32 %f36,%f4,%f20 !
|
|
sll %l3,30,%i5
|
|
xor %l0,%i3,%i4
|
|
.word 0x91b14da8 !fxors %f5,%f8,%f8 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l3,2,%l3
|
|
add %i4,%l1,%l1
|
|
.word 0x8db48d86 !fxor %f18,%f6,%f6 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l3,%l3
|
|
add %o7,%l1,%l1
|
|
std %f20,[%o5+16] !
|
|
sll %l1,5,%i3 !! 24
|
|
ld [%o5+32],%o7
|
|
.word 0x93b18da9 !fxors %f6,%f9,%f9! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
.word 0xa5b28d80 !fxor %f10,%f0,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
xor %l3,%l2,%i3
|
|
add %i4,%l0,%l0
|
|
sll %l2,30,%i5
|
|
xor %l4,%i3,%i4
|
|
.word 0x91b48d88 !fxor %f18,%f8,%f8 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l2,2,%l2
|
|
add %i4,%l0,%l0
|
|
or %i5,%l2,%l2
|
|
add %o7,%l0,%l0
|
|
.word 0xa5b20908 !faligndata %f8,%f8,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l0,5,%i3 !! 25
|
|
ld [%o5+36],%o7
|
|
.word 0x91b20a48 !fpadd32 %f8,%f8,%f8 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
xor %l2,%l1,%i3
|
|
add %i4,%l4,%l4
|
|
.word 0xa9b14a46 !fpadd32 %f36,%f6,%f20 !
|
|
sll %l1,30,%i5
|
|
xor %l3,%i3,%i4
|
|
.word 0x95b1cdaa !fxors %f7,%f10,%f10 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l1,2,%l1
|
|
add %i4,%l4,%l4
|
|
.word 0x91b48d88 !fxor %f18,%f8,%f8 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l1,%l1
|
|
add %o7,%l4,%l4
|
|
std %f20,[%o5+24] !
|
|
sll %l4,5,%i3 !! 26
|
|
ld [%o5+40],%o7
|
|
.word 0x97b20dab !fxors %f8,%f11,%f11! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
.word 0xa5b30d82 !fxor %f12,%f2,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
xor %l1,%l0,%i3
|
|
add %i4,%l3,%l3
|
|
sll %l0,30,%i5
|
|
xor %l2,%i3,%i4
|
|
.word 0x95b48d8a !fxor %f18,%f10,%f10 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l0,2,%l0
|
|
add %i4,%l3,%l3
|
|
or %i5,%l0,%l0
|
|
add %o7,%l3,%l3
|
|
.word 0xa5b2890a !faligndata %f10,%f10,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l3,5,%i3 !! 27
|
|
ld [%o5+44],%o7
|
|
.word 0x95b28a4a !fpadd32 %f10,%f10,%f10 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
xor %l0,%l4,%i3
|
|
add %i4,%l2,%l2
|
|
.word 0xa9b1ca48 !fpadd32 %f38,%f8,%f20 !
|
|
sll %l4,30,%i5
|
|
xor %l1,%i3,%i4
|
|
.word 0x99b24dac !fxors %f9,%f12,%f12 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l4,2,%l4
|
|
add %i4,%l2,%l2
|
|
.word 0x95b48d8a !fxor %f18,%f10,%f10 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l4,%l4
|
|
add %o7,%l2,%l2
|
|
std %f20,[%o5+32] !
|
|
sll %l2,5,%i3 !! 28
|
|
ld [%o5+48],%o7
|
|
.word 0x9bb28dad !fxors %f10,%f13,%f13! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
.word 0xa5b38d84 !fxor %f14,%f4,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
xor %l4,%l3,%i3
|
|
add %i4,%l1,%l1
|
|
sll %l3,30,%i5
|
|
xor %l0,%i3,%i4
|
|
.word 0x99b48d8c !fxor %f18,%f12,%f12 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l3,2,%l3
|
|
add %i4,%l1,%l1
|
|
or %i5,%l3,%l3
|
|
add %o7,%l1,%l1
|
|
.word 0xa5b3090c !faligndata %f12,%f12,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l1,5,%i3 !! 29
|
|
ld [%o5+52],%o7
|
|
.word 0x99b30a4c !fpadd32 %f12,%f12,%f12 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
xor %l3,%l2,%i3
|
|
add %i4,%l0,%l0
|
|
.word 0xa9b1ca4a !fpadd32 %f38,%f10,%f20 !
|
|
sll %l2,30,%i5
|
|
xor %l4,%i3,%i4
|
|
.word 0x9db2cdae !fxors %f11,%f14,%f14 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l2,2,%l2
|
|
add %i4,%l0,%l0
|
|
.word 0x99b48d8c !fxor %f18,%f12,%f12 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l2,%l2
|
|
add %o7,%l0,%l0
|
|
std %f20,[%o5+40] !
|
|
sll %l0,5,%i3 !! 30
|
|
ld [%o5+56],%o7
|
|
.word 0x9fb30daf !fxors %f12,%f15,%f15! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
.word 0xa5b00d86 !fxor %f0,%f6,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
xor %l2,%l1,%i3
|
|
add %i4,%l4,%l4
|
|
sll %l1,30,%i5
|
|
xor %l3,%i3,%i4
|
|
.word 0x9db48d8e !fxor %f18,%f14,%f14 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l1,2,%l1
|
|
add %i4,%l4,%l4
|
|
or %i5,%l1,%l1
|
|
add %o7,%l4,%l4
|
|
.word 0xa5b3890e !faligndata %f14,%f14,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l4,5,%i3 !! 31
|
|
ld [%o5+60],%o7
|
|
.word 0x9db38a4e !fpadd32 %f14,%f14,%f14 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
xor %l1,%l0,%i3
|
|
add %i4,%l3,%l3
|
|
.word 0xa9b1ca4c !fpadd32 %f38,%f12,%f20 !
|
|
sll %l0,30,%i5
|
|
xor %l2,%i3,%i4
|
|
.word 0x81b34da0 !fxors %f13,%f0,%f0 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l0,2,%l0
|
|
add %i4,%l3,%l3
|
|
.word 0x9db48d8e !fxor %f18,%f14,%f14 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l0,%l0
|
|
add %o7,%l3,%l3
|
|
std %f20,[%o5+48] !
|
|
sll %l3,5,%i3 !! 32
|
|
ld [%o5+0],%o7
|
|
.word 0x83b38da1 !fxors %f14,%f1,%f1! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
.word 0xa5b08d88 !fxor %f2,%f8,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
xor %l0,%l4,%i3
|
|
add %i4,%l2,%l2
|
|
sll %l4,30,%i5
|
|
xor %l1,%i3,%i4
|
|
.word 0x81b48d80 !fxor %f18,%f0,%f0 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l4,2,%l4
|
|
add %i4,%l2,%l2
|
|
or %i5,%l4,%l4
|
|
add %o7,%l2,%l2
|
|
.word 0xa5b00900 !faligndata %f0,%f0,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l2,5,%i3 !! 33
|
|
ld [%o5+4],%o7
|
|
.word 0x81b00a40 !fpadd32 %f0,%f0,%f0 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
xor %l4,%l3,%i3
|
|
add %i4,%l1,%l1
|
|
.word 0xa9b1ca4e !fpadd32 %f38,%f14,%f20 !
|
|
sll %l3,30,%i5
|
|
xor %l0,%i3,%i4
|
|
.word 0x85b3cda2 !fxors %f15,%f2,%f2 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l3,2,%l3
|
|
add %i4,%l1,%l1
|
|
.word 0x81b48d80 !fxor %f18,%f0,%f0 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l3,%l3
|
|
add %o7,%l1,%l1
|
|
std %f20,[%o5+56] !
|
|
sll %l1,5,%i3 !! 34
|
|
ld [%o5+8],%o7
|
|
.word 0x87b00da3 !fxors %f0,%f3,%f3! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
.word 0xa5b10d8a !fxor %f4,%f10,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
xor %l3,%l2,%i3
|
|
add %i4,%l0,%l0
|
|
sll %l2,30,%i5
|
|
xor %l4,%i3,%i4
|
|
.word 0x85b48d82 !fxor %f18,%f2,%f2 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l2,2,%l2
|
|
add %i4,%l0,%l0
|
|
or %i5,%l2,%l2
|
|
add %o7,%l0,%l0
|
|
.word 0xa5b08902 !faligndata %f2,%f2,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l0,5,%i3 !! 35
|
|
ld [%o5+12],%o7
|
|
.word 0x85b08a42 !fpadd32 %f2,%f2,%f2 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
xor %l2,%l1,%i3
|
|
add %i4,%l4,%l4
|
|
.word 0xa9b1ca40 !fpadd32 %f38,%f0,%f20 !
|
|
sll %l1,30,%i5
|
|
xor %l3,%i3,%i4
|
|
.word 0x89b04da4 !fxors %f1,%f4,%f4 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l1,2,%l1
|
|
add %i4,%l4,%l4
|
|
.word 0x85b48d82 !fxor %f18,%f2,%f2 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l1,%l1
|
|
add %o7,%l4,%l4
|
|
std %f20,[%o5+0] !
|
|
sll %l4,5,%i3 !! 36
|
|
ld [%o5+16],%o7
|
|
.word 0x8bb08da5 !fxors %f2,%f5,%f5! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
.word 0xa5b18d8c !fxor %f6,%f12,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
xor %l1,%l0,%i3
|
|
add %i4,%l3,%l3
|
|
sll %l0,30,%i5
|
|
xor %l2,%i3,%i4
|
|
.word 0x89b48d84 !fxor %f18,%f4,%f4 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l0,2,%l0
|
|
add %i4,%l3,%l3
|
|
or %i5,%l0,%l0
|
|
add %o7,%l3,%l3
|
|
.word 0xa5b10904 !faligndata %f4,%f4,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l3,5,%i3 !! 37
|
|
ld [%o5+20],%o7
|
|
.word 0x89b10a44 !fpadd32 %f4,%f4,%f4 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
xor %l0,%l4,%i3
|
|
add %i4,%l2,%l2
|
|
.word 0xa9b1ca42 !fpadd32 %f38,%f2,%f20 !
|
|
sll %l4,30,%i5
|
|
xor %l1,%i3,%i4
|
|
.word 0x8db0cda6 !fxors %f3,%f6,%f6 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l4,2,%l4
|
|
add %i4,%l2,%l2
|
|
.word 0x89b48d84 !fxor %f18,%f4,%f4 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l4,%l4
|
|
add %o7,%l2,%l2
|
|
std %f20,[%o5+8] !
|
|
sll %l2,5,%i3 !! 38
|
|
ld [%o5+24],%o7
|
|
.word 0x8fb10da7 !fxors %f4,%f7,%f7! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
.word 0xa5b20d8e !fxor %f8,%f14,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
xor %l4,%l3,%i3
|
|
add %i4,%l1,%l1
|
|
sll %l3,30,%i5
|
|
xor %l0,%i3,%i4
|
|
.word 0x8db48d86 !fxor %f18,%f6,%f6 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l3,2,%l3
|
|
add %i4,%l1,%l1
|
|
or %i5,%l3,%l3
|
|
add %o7,%l1,%l1
|
|
.word 0xa5b18906 !faligndata %f6,%f6,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l1,5,%i3 !! 39
|
|
ld [%o5+28],%o7
|
|
.word 0x8db18a46 !fpadd32 %f6,%f6,%f6 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
xor %l3,%l2,%i3
|
|
add %i4,%l0,%l0
|
|
.word 0xa9b1ca44 !fpadd32 %f38,%f4,%f20 !
|
|
sll %l2,30,%i5
|
|
xor %l4,%i3,%i4
|
|
.word 0x91b14da8 !fxors %f5,%f8,%f8 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l2,2,%l2
|
|
add %i4,%l0,%l0
|
|
.word 0x8db48d86 !fxor %f18,%f6,%f6 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l2,%l2
|
|
add %o7,%l0,%l0
|
|
std %f20,[%o5+16] !
|
|
sll %l0,5,%i3 !! 40
|
|
ld [%o5+32],%o7
|
|
.word 0x93b18da9 !fxors %f6,%f9,%f9! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
.word 0xa5b28d80 !fxor %f10,%f0,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
and %l2,%l1,%i3
|
|
add %i4,%l4,%l4
|
|
sll %l1,30,%i5
|
|
or %l2,%l1,%i4
|
|
.word 0x91b48d88 !fxor %f18,%f8,%f8 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l1,2,%l1
|
|
and %l3,%i4,%i4
|
|
add %o7,%l4,%l4
|
|
or %i4,%i3,%i4
|
|
.word 0xa5b20908 !faligndata %f8,%f8,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
or %i5,%l1,%l1
|
|
add %i4,%l4,%l4
|
|
.word 0x91b20a48 !fpadd32 %f8,%f8,%f8 ! 4/ 8/ 6:X[0,1]<<=1
|
|
sll %l4,5,%i3 !! 41
|
|
ld [%o5+36],%o7
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
and %l1,%l0,%i3
|
|
add %i4,%l3,%l3
|
|
.word 0xa9b1ca46 !fpadd32 %f38,%f6,%f20 !
|
|
sll %l0,30,%i5
|
|
or %l1,%l0,%i4
|
|
.word 0x95b1cdaa !fxors %f7,%f10,%f10 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l0,2,%l0
|
|
and %l2,%i4,%i4
|
|
.word 0x91b48d88 !fxor %f18,%f8,%f8 ! 8/14/10:X[0,1]|=Tmp
|
|
add %o7,%l3,%l3
|
|
or %i4,%i3,%i4
|
|
or %i5,%l0,%l0
|
|
add %i4,%l3,%l3
|
|
std %f20,[%o5+24] !
|
|
sll %l3,5,%i3 !! 42
|
|
ld [%o5+40],%o7
|
|
.word 0x97b20dab !fxors %f8,%f11,%f11! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
.word 0xa5b30d82 !fxor %f12,%f2,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
and %l0,%l4,%i3
|
|
add %i4,%l2,%l2
|
|
sll %l4,30,%i5
|
|
or %l0,%l4,%i4
|
|
.word 0x95b48d8a !fxor %f18,%f10,%f10 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l4,2,%l4
|
|
and %l1,%i4,%i4
|
|
add %o7,%l2,%l2
|
|
or %i4,%i3,%i4
|
|
.word 0xa5b2890a !faligndata %f10,%f10,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
or %i5,%l4,%l4
|
|
add %i4,%l2,%l2
|
|
.word 0x95b28a4a !fpadd32 %f10,%f10,%f10 ! 4/ 8/ 6:X[0,1]<<=1
|
|
sll %l2,5,%i3 !! 43
|
|
ld [%o5+44],%o7
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
and %l4,%l3,%i3
|
|
add %i4,%l1,%l1
|
|
.word 0xa9b1ca48 !fpadd32 %f38,%f8,%f20 !
|
|
sll %l3,30,%i5
|
|
or %l4,%l3,%i4
|
|
.word 0x99b24dac !fxors %f9,%f12,%f12 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l3,2,%l3
|
|
and %l0,%i4,%i4
|
|
.word 0x95b48d8a !fxor %f18,%f10,%f10 ! 8/14/10:X[0,1]|=Tmp
|
|
add %o7,%l1,%l1
|
|
or %i4,%i3,%i4
|
|
or %i5,%l3,%l3
|
|
add %i4,%l1,%l1
|
|
std %f20,[%o5+32] !
|
|
sll %l1,5,%i3 !! 44
|
|
ld [%o5+48],%o7
|
|
.word 0x9bb28dad !fxors %f10,%f13,%f13! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
.word 0xa5b38d84 !fxor %f14,%f4,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
and %l3,%l2,%i3
|
|
add %i4,%l0,%l0
|
|
sll %l2,30,%i5
|
|
or %l3,%l2,%i4
|
|
.word 0x99b48d8c !fxor %f18,%f12,%f12 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l2,2,%l2
|
|
and %l4,%i4,%i4
|
|
add %o7,%l0,%l0
|
|
or %i4,%i3,%i4
|
|
.word 0xa5b3090c !faligndata %f12,%f12,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
or %i5,%l2,%l2
|
|
add %i4,%l0,%l0
|
|
.word 0x99b30a4c !fpadd32 %f12,%f12,%f12 ! 4/ 8/ 6:X[0,1]<<=1
|
|
sll %l0,5,%i3 !! 45
|
|
ld [%o5+52],%o7
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
and %l2,%l1,%i3
|
|
add %i4,%l4,%l4
|
|
.word 0xa9b1ca4a !fpadd32 %f38,%f10,%f20 !
|
|
sll %l1,30,%i5
|
|
or %l2,%l1,%i4
|
|
.word 0x9db2cdae !fxors %f11,%f14,%f14 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l1,2,%l1
|
|
and %l3,%i4,%i4
|
|
.word 0x99b48d8c !fxor %f18,%f12,%f12 ! 8/14/10:X[0,1]|=Tmp
|
|
add %o7,%l4,%l4
|
|
or %i4,%i3,%i4
|
|
or %i5,%l1,%l1
|
|
add %i4,%l4,%l4
|
|
std %f20,[%o5+40] !
|
|
sll %l4,5,%i3 !! 46
|
|
ld [%o5+56],%o7
|
|
.word 0x9fb30daf !fxors %f12,%f15,%f15! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
.word 0xa5b00d86 !fxor %f0,%f6,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
and %l1,%l0,%i3
|
|
add %i4,%l3,%l3
|
|
sll %l0,30,%i5
|
|
or %l1,%l0,%i4
|
|
.word 0x9db48d8e !fxor %f18,%f14,%f14 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l0,2,%l0
|
|
and %l2,%i4,%i4
|
|
add %o7,%l3,%l3
|
|
or %i4,%i3,%i4
|
|
.word 0xa5b3890e !faligndata %f14,%f14,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
or %i5,%l0,%l0
|
|
add %i4,%l3,%l3
|
|
.word 0x9db38a4e !fpadd32 %f14,%f14,%f14 ! 4/ 8/ 6:X[0,1]<<=1
|
|
sll %l3,5,%i3 !! 47
|
|
ld [%o5+60],%o7
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
and %l0,%l4,%i3
|
|
add %i4,%l2,%l2
|
|
.word 0xa9b24a4c !fpadd32 %f40,%f12,%f20 !
|
|
sll %l4,30,%i5
|
|
or %l0,%l4,%i4
|
|
.word 0x81b34da0 !fxors %f13,%f0,%f0 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l4,2,%l4
|
|
and %l1,%i4,%i4
|
|
.word 0x9db48d8e !fxor %f18,%f14,%f14 ! 8/14/10:X[0,1]|=Tmp
|
|
add %o7,%l2,%l2
|
|
or %i4,%i3,%i4
|
|
or %i5,%l4,%l4
|
|
add %i4,%l2,%l2
|
|
std %f20,[%o5+48] !
|
|
sll %l2,5,%i3 !! 48
|
|
ld [%o5+0],%o7
|
|
.word 0x83b38da1 !fxors %f14,%f1,%f1! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
.word 0xa5b08d88 !fxor %f2,%f8,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
and %l4,%l3,%i3
|
|
add %i4,%l1,%l1
|
|
sll %l3,30,%i5
|
|
or %l4,%l3,%i4
|
|
.word 0x81b48d80 !fxor %f18,%f0,%f0 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l3,2,%l3
|
|
and %l0,%i4,%i4
|
|
add %o7,%l1,%l1
|
|
or %i4,%i3,%i4
|
|
.word 0xa5b00900 !faligndata %f0,%f0,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
or %i5,%l3,%l3
|
|
add %i4,%l1,%l1
|
|
.word 0x81b00a40 !fpadd32 %f0,%f0,%f0 ! 4/ 8/ 6:X[0,1]<<=1
|
|
sll %l1,5,%i3 !! 49
|
|
ld [%o5+4],%o7
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
and %l3,%l2,%i3
|
|
add %i4,%l0,%l0
|
|
.word 0xa9b24a4e !fpadd32 %f40,%f14,%f20 !
|
|
sll %l2,30,%i5
|
|
or %l3,%l2,%i4
|
|
.word 0x85b3cda2 !fxors %f15,%f2,%f2 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l2,2,%l2
|
|
and %l4,%i4,%i4
|
|
.word 0x81b48d80 !fxor %f18,%f0,%f0 ! 8/14/10:X[0,1]|=Tmp
|
|
add %o7,%l0,%l0
|
|
or %i4,%i3,%i4
|
|
or %i5,%l2,%l2
|
|
add %i4,%l0,%l0
|
|
std %f20,[%o5+56] !
|
|
sll %l0,5,%i3 !! 50
|
|
ld [%o5+8],%o7
|
|
.word 0x87b00da3 !fxors %f0,%f3,%f3! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
.word 0xa5b10d8a !fxor %f4,%f10,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
and %l2,%l1,%i3
|
|
add %i4,%l4,%l4
|
|
sll %l1,30,%i5
|
|
or %l2,%l1,%i4
|
|
.word 0x85b48d82 !fxor %f18,%f2,%f2 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l1,2,%l1
|
|
and %l3,%i4,%i4
|
|
add %o7,%l4,%l4
|
|
or %i4,%i3,%i4
|
|
.word 0xa5b08902 !faligndata %f2,%f2,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
or %i5,%l1,%l1
|
|
add %i4,%l4,%l4
|
|
.word 0x85b08a42 !fpadd32 %f2,%f2,%f2 ! 4/ 8/ 6:X[0,1]<<=1
|
|
sll %l4,5,%i3 !! 51
|
|
ld [%o5+12],%o7
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
and %l1,%l0,%i3
|
|
add %i4,%l3,%l3
|
|
.word 0xa9b24a40 !fpadd32 %f40,%f0,%f20 !
|
|
sll %l0,30,%i5
|
|
or %l1,%l0,%i4
|
|
.word 0x89b04da4 !fxors %f1,%f4,%f4 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l0,2,%l0
|
|
and %l2,%i4,%i4
|
|
.word 0x85b48d82 !fxor %f18,%f2,%f2 ! 8/14/10:X[0,1]|=Tmp
|
|
add %o7,%l3,%l3
|
|
or %i4,%i3,%i4
|
|
or %i5,%l0,%l0
|
|
add %i4,%l3,%l3
|
|
std %f20,[%o5+0] !
|
|
sll %l3,5,%i3 !! 52
|
|
ld [%o5+16],%o7
|
|
.word 0x8bb08da5 !fxors %f2,%f5,%f5! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
.word 0xa5b18d8c !fxor %f6,%f12,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
and %l0,%l4,%i3
|
|
add %i4,%l2,%l2
|
|
sll %l4,30,%i5
|
|
or %l0,%l4,%i4
|
|
.word 0x89b48d84 !fxor %f18,%f4,%f4 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l4,2,%l4
|
|
and %l1,%i4,%i4
|
|
add %o7,%l2,%l2
|
|
or %i4,%i3,%i4
|
|
.word 0xa5b10904 !faligndata %f4,%f4,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
or %i5,%l4,%l4
|
|
add %i4,%l2,%l2
|
|
.word 0x89b10a44 !fpadd32 %f4,%f4,%f4 ! 4/ 8/ 6:X[0,1]<<=1
|
|
sll %l2,5,%i3 !! 53
|
|
ld [%o5+20],%o7
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
and %l4,%l3,%i3
|
|
add %i4,%l1,%l1
|
|
.word 0xa9b24a42 !fpadd32 %f40,%f2,%f20 !
|
|
sll %l3,30,%i5
|
|
or %l4,%l3,%i4
|
|
.word 0x8db0cda6 !fxors %f3,%f6,%f6 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l3,2,%l3
|
|
and %l0,%i4,%i4
|
|
.word 0x89b48d84 !fxor %f18,%f4,%f4 ! 8/14/10:X[0,1]|=Tmp
|
|
add %o7,%l1,%l1
|
|
or %i4,%i3,%i4
|
|
or %i5,%l3,%l3
|
|
add %i4,%l1,%l1
|
|
std %f20,[%o5+8] !
|
|
sll %l1,5,%i3 !! 54
|
|
ld [%o5+24],%o7
|
|
.word 0x8fb10da7 !fxors %f4,%f7,%f7! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
.word 0xa5b20d8e !fxor %f8,%f14,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
and %l3,%l2,%i3
|
|
add %i4,%l0,%l0
|
|
sll %l2,30,%i5
|
|
or %l3,%l2,%i4
|
|
.word 0x8db48d86 !fxor %f18,%f6,%f6 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l2,2,%l2
|
|
and %l4,%i4,%i4
|
|
add %o7,%l0,%l0
|
|
or %i4,%i3,%i4
|
|
.word 0xa5b18906 !faligndata %f6,%f6,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
or %i5,%l2,%l2
|
|
add %i4,%l0,%l0
|
|
.word 0x8db18a46 !fpadd32 %f6,%f6,%f6 ! 4/ 8/ 6:X[0,1]<<=1
|
|
sll %l0,5,%i3 !! 55
|
|
ld [%o5+28],%o7
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
and %l2,%l1,%i3
|
|
add %i4,%l4,%l4
|
|
.word 0xa9b24a44 !fpadd32 %f40,%f4,%f20 !
|
|
sll %l1,30,%i5
|
|
or %l2,%l1,%i4
|
|
.word 0x91b14da8 !fxors %f5,%f8,%f8 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l1,2,%l1
|
|
and %l3,%i4,%i4
|
|
.word 0x8db48d86 !fxor %f18,%f6,%f6 ! 8/14/10:X[0,1]|=Tmp
|
|
add %o7,%l4,%l4
|
|
or %i4,%i3,%i4
|
|
or %i5,%l1,%l1
|
|
add %i4,%l4,%l4
|
|
std %f20,[%o5+16] !
|
|
sll %l4,5,%i3 !! 56
|
|
ld [%o5+32],%o7
|
|
.word 0x93b18da9 !fxors %f6,%f9,%f9! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
.word 0xa5b28d80 !fxor %f10,%f0,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
and %l1,%l0,%i3
|
|
add %i4,%l3,%l3
|
|
sll %l0,30,%i5
|
|
or %l1,%l0,%i4
|
|
.word 0x91b48d88 !fxor %f18,%f8,%f8 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l0,2,%l0
|
|
and %l2,%i4,%i4
|
|
add %o7,%l3,%l3
|
|
or %i4,%i3,%i4
|
|
.word 0xa5b20908 !faligndata %f8,%f8,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
or %i5,%l0,%l0
|
|
add %i4,%l3,%l3
|
|
.word 0x91b20a48 !fpadd32 %f8,%f8,%f8 ! 4/ 8/ 6:X[0,1]<<=1
|
|
sll %l3,5,%i3 !! 57
|
|
ld [%o5+36],%o7
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
and %l0,%l4,%i3
|
|
add %i4,%l2,%l2
|
|
.word 0xa9b24a46 !fpadd32 %f40,%f6,%f20 !
|
|
sll %l4,30,%i5
|
|
or %l0,%l4,%i4
|
|
.word 0x95b1cdaa !fxors %f7,%f10,%f10 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l4,2,%l4
|
|
and %l1,%i4,%i4
|
|
.word 0x91b48d88 !fxor %f18,%f8,%f8 ! 8/14/10:X[0,1]|=Tmp
|
|
add %o7,%l2,%l2
|
|
or %i4,%i3,%i4
|
|
or %i5,%l4,%l4
|
|
add %i4,%l2,%l2
|
|
std %f20,[%o5+24] !
|
|
sll %l2,5,%i3 !! 58
|
|
ld [%o5+40],%o7
|
|
.word 0x97b20dab !fxors %f8,%f11,%f11! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
.word 0xa5b30d82 !fxor %f12,%f2,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
and %l4,%l3,%i3
|
|
add %i4,%l1,%l1
|
|
sll %l3,30,%i5
|
|
or %l4,%l3,%i4
|
|
.word 0x95b48d8a !fxor %f18,%f10,%f10 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l3,2,%l3
|
|
and %l0,%i4,%i4
|
|
add %o7,%l1,%l1
|
|
or %i4,%i3,%i4
|
|
.word 0xa5b2890a !faligndata %f10,%f10,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
or %i5,%l3,%l3
|
|
add %i4,%l1,%l1
|
|
.word 0x95b28a4a !fpadd32 %f10,%f10,%f10 ! 4/ 8/ 6:X[0,1]<<=1
|
|
sll %l1,5,%i3 !! 59
|
|
ld [%o5+44],%o7
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
and %l3,%l2,%i3
|
|
add %i4,%l0,%l0
|
|
.word 0xa9b24a48 !fpadd32 %f40,%f8,%f20 !
|
|
sll %l2,30,%i5
|
|
or %l3,%l2,%i4
|
|
.word 0x99b24dac !fxors %f9,%f12,%f12 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l2,2,%l2
|
|
and %l4,%i4,%i4
|
|
.word 0x95b48d8a !fxor %f18,%f10,%f10 ! 8/14/10:X[0,1]|=Tmp
|
|
add %o7,%l0,%l0
|
|
or %i4,%i3,%i4
|
|
or %i5,%l2,%l2
|
|
add %i4,%l0,%l0
|
|
std %f20,[%o5+32] !
|
|
sll %l0,5,%i3 !! 60
|
|
ld [%o5+48],%o7
|
|
.word 0x9bb28dad !fxors %f10,%f13,%f13! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
.word 0xa5b38d84 !fxor %f14,%f4,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
xor %l2,%l1,%i3
|
|
add %i4,%l4,%l4
|
|
sll %l1,30,%i5
|
|
xor %l3,%i3,%i4
|
|
.word 0x99b48d8c !fxor %f18,%f12,%f12 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l1,2,%l1
|
|
add %i4,%l4,%l4
|
|
or %i5,%l1,%l1
|
|
add %o7,%l4,%l4
|
|
.word 0xa5b3090c !faligndata %f12,%f12,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l4,5,%i3 !! 61
|
|
ld [%o5+52],%o7
|
|
.word 0x99b30a4c !fpadd32 %f12,%f12,%f12 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
xor %l1,%l0,%i3
|
|
add %i4,%l3,%l3
|
|
.word 0xa9b24a4a !fpadd32 %f40,%f10,%f20 !
|
|
sll %l0,30,%i5
|
|
xor %l2,%i3,%i4
|
|
.word 0x9db2cdae !fxors %f11,%f14,%f14 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l0,2,%l0
|
|
add %i4,%l3,%l3
|
|
.word 0x99b48d8c !fxor %f18,%f12,%f12 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l0,%l0
|
|
add %o7,%l3,%l3
|
|
std %f20,[%o5+40] !
|
|
sll %l3,5,%i3 !! 62
|
|
ld [%o5+56],%o7
|
|
.word 0x9fb30daf !fxors %f12,%f15,%f15! 0/ 0/ 0:X[1]^=X[14]
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
.word 0xa5b00d86 !fxor %f0,%f6,%f18! 1/ 1/ 1:Tmp=X[2,3]^X[8,9]
|
|
xor %l0,%l4,%i3
|
|
add %i4,%l2,%l2
|
|
sll %l4,30,%i5
|
|
xor %l1,%i3,%i4
|
|
.word 0x9db48d8e !fxor %f18,%f14,%f14 ! 2/ 4/ 3:X[0,1]^=X[2,3]^X[8,9]
|
|
srl %l4,2,%l4
|
|
add %i4,%l2,%l2
|
|
or %i5,%l4,%l4
|
|
add %o7,%l2,%l2
|
|
.word 0xa5b3890e !faligndata %f14,%f14,%f18 ! 3/ 7/ 5:Tmp=X[0,1]>>>24
|
|
sll %l2,5,%i3 !! 63
|
|
ld [%o5+60],%o7
|
|
.word 0x9db38a4e !fpadd32 %f14,%f14,%f14 ! 4/ 8/ 6:X[0,1]<<=1
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
.word 0xa5b486e1 !fmul8ulx16 %f18,%f32,%f18 ! 5/10/ 7:Tmp>>=7, Tmp&=1
|
|
xor %l4,%l3,%i3
|
|
add %i4,%l1,%l1
|
|
.word 0xa9b24a4c !fpadd32 %f40,%f12,%f20 !
|
|
sll %l3,30,%i5
|
|
xor %l0,%i3,%i4
|
|
.word 0x81b34da0 !fxors %f13,%f0,%f0 !-1/-1/-1:X[0]^=X[13]
|
|
srl %l3,2,%l3
|
|
add %i4,%l1,%l1
|
|
.word 0x9db48d8e !fxor %f18,%f14,%f14 ! 8/14/10:X[0,1]|=Tmp
|
|
or %i5,%l3,%l3
|
|
add %o7,%l1,%l1
|
|
std %f20,[%o5+48] !
|
|
sll %l1,5,%i3 !! 64
|
|
ld [%o5+0],%o7
|
|
.word 0xa9b24a4e !fpadd32 %f40,%f14,%f20
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
xor %l3,%l2,%i3
|
|
add %i4,%l0,%l0
|
|
sll %l2,30,%i5
|
|
xor %l4,%i3,%i4
|
|
std %f20,[%o5+56]
|
|
srl %l2,2,%l2
|
|
add %i4,%l0,%l0
|
|
or %i5,%l2,%l2
|
|
add %o7,%l0,%l0
|
|
sll %l0,5,%i3 !! 65
|
|
ld [%o5+4],%o7
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
xor %l2,%l1,%i3
|
|
add %i4,%l4,%l4
|
|
sll %l1,30,%i5
|
|
xor %l3,%i3,%i4
|
|
srl %l1,2,%l1
|
|
add %i4,%l4,%l4
|
|
or %i5,%l1,%l1
|
|
add %o7,%l4,%l4
|
|
sll %l4,5,%i3 !! 66
|
|
ld [%o5+8],%o7
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
xor %l1,%l0,%i3
|
|
add %i4,%l3,%l3
|
|
sll %l0,30,%i5
|
|
xor %l2,%i3,%i4
|
|
srl %l0,2,%l0
|
|
add %i4,%l3,%l3
|
|
or %i5,%l0,%l0
|
|
add %o7,%l3,%l3
|
|
sll %l3,5,%i3 !! 67
|
|
ld [%o5+12],%o7
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
xor %l0,%l4,%i3
|
|
add %i4,%l2,%l2
|
|
sll %l4,30,%i5
|
|
xor %l1,%i3,%i4
|
|
srl %l4,2,%l4
|
|
add %i4,%l2,%l2
|
|
or %i5,%l4,%l4
|
|
add %o7,%l2,%l2
|
|
sll %l2,5,%i3 !! 68
|
|
ld [%o5+16],%o7
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
xor %l4,%l3,%i3
|
|
add %i4,%l1,%l1
|
|
sll %l3,30,%i5
|
|
xor %l0,%i3,%i4
|
|
srl %l3,2,%l3
|
|
add %i4,%l1,%l1
|
|
or %i5,%l3,%l3
|
|
add %o7,%l1,%l1
|
|
sll %l1,5,%i3 !! 69
|
|
ld [%o5+20],%o7
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
xor %l3,%l2,%i3
|
|
add %i4,%l0,%l0
|
|
sll %l2,30,%i5
|
|
xor %l4,%i3,%i4
|
|
srl %l2,2,%l2
|
|
add %i4,%l0,%l0
|
|
or %i5,%l2,%l2
|
|
add %o7,%l0,%l0
|
|
tst %i2
|
|
bz,pn %icc,.Ltail
|
|
nop
|
|
sll %l0,5,%i3 !! 70
|
|
ld [%o5+24],%o7
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
ldd [%i1+64],%f0
|
|
xor %l2,%l1,%i3
|
|
add %i4,%l4,%l4
|
|
sll %l1,30,%i5
|
|
xor %l3,%i3,%i4
|
|
srl %l1,2,%l1
|
|
add %i4,%l4,%l4
|
|
or %i5,%l1,%l1
|
|
add %o7,%l4,%l4
|
|
|
|
and %i1,-64,%g5
|
|
inc 64,%i1
|
|
and %g5,255,%g5
|
|
.word 0x81b00304 !alignaddr %g0,%g4,%g0
|
|
add %g1,%g5,%g5
|
|
ldd [%i1+8],%f2
|
|
sll %l4,5,%i3 !! 71
|
|
ld [%o5+28],%o7
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
xor %l1,%l0,%i3
|
|
add %i4,%l3,%l3
|
|
sll %l0,30,%i5
|
|
xor %l2,%i3,%i4
|
|
srl %l0,2,%l0
|
|
add %i4,%l3,%l3
|
|
or %i5,%l0,%l0
|
|
add %o7,%l3,%l3
|
|
ldd [%i1+16],%f4
|
|
.word 0x81b00902 !faligndata %f0,%f2,%f0
|
|
sll %l3,5,%i3 !! 72
|
|
ld [%o5+32],%o7
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
xor %l0,%l4,%i3
|
|
add %i4,%l2,%l2
|
|
.word 0xa9b0ca40 !fpadd32 %f34,%f0,%f20
|
|
sll %l4,30,%i5
|
|
xor %l1,%i3,%i4
|
|
srl %l4,2,%l4
|
|
add %i4,%l2,%l2
|
|
or %i5,%l4,%l4
|
|
add %o7,%l2,%l2
|
|
ldd [%i1+24],%f6
|
|
std %f20,[%g5+0]
|
|
.word 0x85b08904 !faligndata %f2,%f4,%f2
|
|
sll %l2,5,%i3 !! 73
|
|
ld [%o5+36],%o7
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
xor %l4,%l3,%i3
|
|
add %i4,%l1,%l1
|
|
.word 0xa9b0ca42 !fpadd32 %f34,%f2,%f20
|
|
sll %l3,30,%i5
|
|
xor %l0,%i3,%i4
|
|
srl %l3,2,%l3
|
|
add %i4,%l1,%l1
|
|
or %i5,%l3,%l3
|
|
add %o7,%l1,%l1
|
|
ldd [%i1+32],%f8
|
|
std %f20,[%g5+8]
|
|
.word 0x89b10906 !faligndata %f4,%f6,%f4
|
|
sll %l1,5,%i3 !! 74
|
|
ld [%o5+40],%o7
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
xor %l3,%l2,%i3
|
|
add %i4,%l0,%l0
|
|
.word 0xa9b0ca44 !fpadd32 %f34,%f4,%f20
|
|
sll %l2,30,%i5
|
|
xor %l4,%i3,%i4
|
|
srl %l2,2,%l2
|
|
add %i4,%l0,%l0
|
|
or %i5,%l2,%l2
|
|
add %o7,%l0,%l0
|
|
ldd [%i1+40],%f10
|
|
std %f20,[%g5+16]
|
|
.word 0x8db18908 !faligndata %f6,%f8,%f6
|
|
sll %l0,5,%i3 !! 75
|
|
ld [%o5+44],%o7
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
xor %l2,%l1,%i3
|
|
add %i4,%l4,%l4
|
|
.word 0xa9b0ca46 !fpadd32 %f34,%f6,%f20
|
|
sll %l1,30,%i5
|
|
xor %l3,%i3,%i4
|
|
srl %l1,2,%l1
|
|
add %i4,%l4,%l4
|
|
or %i5,%l1,%l1
|
|
add %o7,%l4,%l4
|
|
ldd [%i1+48],%f12
|
|
std %f20,[%g5+24]
|
|
.word 0x91b2090a !faligndata %f8,%f10,%f8
|
|
sll %l4,5,%i3 !! 76
|
|
ld [%o5+48],%o7
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
xor %l1,%l0,%i3
|
|
add %i4,%l3,%l3
|
|
.word 0xa9b0ca48 !fpadd32 %f34,%f8,%f20
|
|
sll %l0,30,%i5
|
|
xor %l2,%i3,%i4
|
|
srl %l0,2,%l0
|
|
add %i4,%l3,%l3
|
|
or %i5,%l0,%l0
|
|
add %o7,%l3,%l3
|
|
ldd [%i1+56],%f14
|
|
std %f20,[%g5+32]
|
|
.word 0x95b2890c !faligndata %f10,%f12,%f10
|
|
sll %l3,5,%i3 !! 77
|
|
ld [%o5+52],%o7
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
xor %l0,%l4,%i3
|
|
add %i4,%l2,%l2
|
|
.word 0xa9b0ca4a !fpadd32 %f34,%f10,%f20
|
|
sll %l4,30,%i5
|
|
xor %l1,%i3,%i4
|
|
srl %l4,2,%l4
|
|
add %i4,%l2,%l2
|
|
or %i5,%l4,%l4
|
|
add %o7,%l2,%l2
|
|
add %g4,63,%i3
|
|
and %i3,-8,%i3
|
|
ldd [%i1+%i3],%f16
|
|
std %f20,[%g5+40]
|
|
.word 0x99b3090e !faligndata %f12,%f14,%f12
|
|
sll %l2,5,%i3 !! 78
|
|
ld [%o5+56],%o7
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
xor %l4,%l3,%i3
|
|
add %i4,%l1,%l1
|
|
.word 0xa9b0ca4c !fpadd32 %f34,%f12,%f20
|
|
sll %l3,30,%i5
|
|
xor %l0,%i3,%i4
|
|
srl %l3,2,%l3
|
|
add %i4,%l1,%l1
|
|
or %i5,%l3,%l3
|
|
add %o7,%l1,%l1
|
|
std %f20,[%g5+48]
|
|
.word 0x9db38910 !faligndata %f14,%f16,%f14
|
|
sll %l1,5,%i3 !! 79
|
|
ld [%o5+60],%o7
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
xor %l3,%l2,%i3
|
|
add %i4,%l0,%l0
|
|
.word 0xa9b0ca4e !fpadd32 %f34,%f14,%f20
|
|
sll %l2,30,%i5
|
|
xor %l4,%i3,%i4
|
|
srl %l2,2,%l2
|
|
add %i4,%l0,%l0
|
|
or %i5,%l2,%l2
|
|
add %o7,%l0,%l0
|
|
std %f20,[%g5+56]
|
|
add %l0,%o0,%o0
|
|
add %l1,%o1,%o1
|
|
add %l2,%o2,%o2
|
|
add %l3,%o3,%o3
|
|
add %l4,%o4,%o4
|
|
mov 5,%i3
|
|
.word 0x81b34da0 !fxors %f13,%f0,%f0
|
|
mov %o0,%l0
|
|
mov %o1,%l1
|
|
mov %o2,%l2
|
|
mov %o3,%l3
|
|
mov %o4,%l4
|
|
.word 0x81b0031b !alignaddr %g0,%i3,%g0
|
|
dec 1,%i2
|
|
ba .Loop
|
|
mov %g5,%o5
|
|
|
|
.align 32
|
|
.Ltail:
|
|
sll %l0,5,%i3 !! 70
|
|
ld [%o5+24],%o7
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
xor %l2,%l1,%i3
|
|
add %i4,%l4,%l4
|
|
sll %l1,30,%i5
|
|
xor %l3,%i3,%i4
|
|
srl %l1,2,%l1
|
|
add %i4,%l4,%l4
|
|
or %i5,%l1,%l1
|
|
add %o7,%l4,%l4
|
|
sll %l4,5,%i3 !! 71
|
|
ld [%o5+28],%o7
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
xor %l1,%l0,%i3
|
|
add %i4,%l3,%l3
|
|
sll %l0,30,%i5
|
|
xor %l2,%i3,%i4
|
|
srl %l0,2,%l0
|
|
add %i4,%l3,%l3
|
|
or %i5,%l0,%l0
|
|
add %o7,%l3,%l3
|
|
sll %l3,5,%i3 !! 72
|
|
ld [%o5+32],%o7
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
xor %l0,%l4,%i3
|
|
add %i4,%l2,%l2
|
|
sll %l4,30,%i5
|
|
xor %l1,%i3,%i4
|
|
srl %l4,2,%l4
|
|
add %i4,%l2,%l2
|
|
or %i5,%l4,%l4
|
|
add %o7,%l2,%l2
|
|
sll %l2,5,%i3 !! 73
|
|
ld [%o5+36],%o7
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
xor %l4,%l3,%i3
|
|
add %i4,%l1,%l1
|
|
sll %l3,30,%i5
|
|
xor %l0,%i3,%i4
|
|
srl %l3,2,%l3
|
|
add %i4,%l1,%l1
|
|
or %i5,%l3,%l3
|
|
add %o7,%l1,%l1
|
|
sll %l1,5,%i3 !! 74
|
|
ld [%o5+40],%o7
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
xor %l3,%l2,%i3
|
|
add %i4,%l0,%l0
|
|
sll %l2,30,%i5
|
|
xor %l4,%i3,%i4
|
|
srl %l2,2,%l2
|
|
add %i4,%l0,%l0
|
|
or %i5,%l2,%l2
|
|
add %o7,%l0,%l0
|
|
sll %l0,5,%i3 !! 75
|
|
ld [%o5+44],%o7
|
|
srl %l0,27,%i4
|
|
add %i3,%l4,%l4
|
|
xor %l2,%l1,%i3
|
|
add %i4,%l4,%l4
|
|
sll %l1,30,%i5
|
|
xor %l3,%i3,%i4
|
|
srl %l1,2,%l1
|
|
add %i4,%l4,%l4
|
|
or %i5,%l1,%l1
|
|
add %o7,%l4,%l4
|
|
sll %l4,5,%i3 !! 76
|
|
ld [%o5+48],%o7
|
|
srl %l4,27,%i4
|
|
add %i3,%l3,%l3
|
|
xor %l1,%l0,%i3
|
|
add %i4,%l3,%l3
|
|
sll %l0,30,%i5
|
|
xor %l2,%i3,%i4
|
|
srl %l0,2,%l0
|
|
add %i4,%l3,%l3
|
|
or %i5,%l0,%l0
|
|
add %o7,%l3,%l3
|
|
sll %l3,5,%i3 !! 77
|
|
ld [%o5+52],%o7
|
|
srl %l3,27,%i4
|
|
add %i3,%l2,%l2
|
|
xor %l0,%l4,%i3
|
|
add %i4,%l2,%l2
|
|
sll %l4,30,%i5
|
|
xor %l1,%i3,%i4
|
|
srl %l4,2,%l4
|
|
add %i4,%l2,%l2
|
|
or %i5,%l4,%l4
|
|
add %o7,%l2,%l2
|
|
sll %l2,5,%i3 !! 78
|
|
ld [%o5+56],%o7
|
|
srl %l2,27,%i4
|
|
add %i3,%l1,%l1
|
|
xor %l4,%l3,%i3
|
|
add %i4,%l1,%l1
|
|
sll %l3,30,%i5
|
|
xor %l0,%i3,%i4
|
|
srl %l3,2,%l3
|
|
add %i4,%l1,%l1
|
|
or %i5,%l3,%l3
|
|
add %o7,%l1,%l1
|
|
sll %l1,5,%i3 !! 79
|
|
ld [%o5+60],%o7
|
|
srl %l1,27,%i4
|
|
add %i3,%l0,%l0
|
|
xor %l3,%l2,%i3
|
|
add %i4,%l0,%l0
|
|
sll %l2,30,%i5
|
|
xor %l4,%i3,%i4
|
|
srl %l2,2,%l2
|
|
add %i4,%l0,%l0
|
|
or %i5,%l2,%l2
|
|
add %o7,%l0,%l0
|
|
add %l0,%o0,%o0
|
|
add %l1,%o1,%o1
|
|
add %l2,%o2,%o2
|
|
add %l3,%o3,%o3
|
|
add %l4,%o4,%o4
|
|
|
|
st %o0,[%i0+0]
|
|
st %o1,[%i0+4]
|
|
st %o2,[%i0+8]
|
|
st %o3,[%i0+12]
|
|
st %o4,[%i0+16]
|
|
|
|
ret
|
|
restore
|
|
.type sha1_block_data_order,#function
|
|
.size sha1_block_data_order,(.-sha1_block_data_order)
|
|
.asciz "SHA1 block transform for SPARCv9a, CRYPTOGAMS by <appro@openssl.org>"
|
|
.align 4
|