#ifndef __ASSEMBLER__ # define __ASSEMBLER__ 1 #endif #include "crypto/sparc_arch.h" #ifdef __arch64__ .register %g2,#scratch .register %g3,#scratch #endif .section ".text",#alloc,#execinstr #ifdef __PIC__ SPARC_PIC_THUNK(%g1) #endif .align 32 .globl sha1_block_data_order sha1_block_data_order: SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5) ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1] andcc %g1, CFR_SHA1, %g0 be .Lsoftware nop ld [%o0 + 0x00], %f0 ! load context ld [%o0 + 0x04], %f1 ld [%o0 + 0x08], %f2 andcc %o1, 0x7, %g0 ld [%o0 + 0x0c], %f3 bne,pn %icc, .Lhwunaligned ld [%o0 + 0x10], %f4 .Lhw_loop: ldd [%o1 + 0x00], %f8 ldd [%o1 + 0x08], %f10 ldd [%o1 + 0x10], %f12 ldd [%o1 + 0x18], %f14 ldd [%o1 + 0x20], %f16 ldd [%o1 + 0x28], %f18 ldd [%o1 + 0x30], %f20 subcc %o2, 1, %o2 ! done yet? ldd [%o1 + 0x38], %f22 add %o1, 0x40, %o1 prefetch [%o1 + 63], 20 .word 0x81b02820 ! SHA1 bne,pt SIZE_T_CC, .Lhw_loop nop .Lhwfinish: st %f0, [%o0 + 0x00] ! store context st %f1, [%o0 + 0x04] st %f2, [%o0 + 0x08] st %f3, [%o0 + 0x0c] retl st %f4, [%o0 + 0x10] .align 8 .Lhwunaligned: .word 0x93b24300 !alignaddr %o1,%g0,%o1 ldd [%o1 + 0x00], %f10 .Lhwunaligned_loop: ldd [%o1 + 0x08], %f12 ldd [%o1 + 0x10], %f14 ldd [%o1 + 0x18], %f16 ldd [%o1 + 0x20], %f18 ldd [%o1 + 0x28], %f20 ldd [%o1 + 0x30], %f22 ldd [%o1 + 0x38], %f24 subcc %o2, 1, %o2 ! done yet? ldd [%o1 + 0x40], %f26 add %o1, 0x40, %o1 prefetch [%o1 + 63], 20 .word 0x91b2890c !faligndata %f10,%f12,%f8 .word 0x95b3090e !faligndata %f12,%f14,%f10 .word 0x99b38910 !faligndata %f14,%f16,%f12 .word 0x9db40912 !faligndata %f16,%f18,%f14 .word 0xa1b48914 !faligndata %f18,%f20,%f16 .word 0xa5b50916 !faligndata %f20,%f22,%f18 .word 0xa9b58918 !faligndata %f22,%f24,%f20 .word 0xadb6091a !faligndata %f24,%f26,%f22 .word 0x81b02820 ! SHA1 bne,pt SIZE_T_CC, .Lhwunaligned_loop .word 0x95b68f9a !for %f26,%f26,%f10 ! %f10=%f26 ba .Lhwfinish nop .align 16 .Lsoftware: save %sp,-STACK_FRAME,%sp sllx %i2,6,%i2 add %i1,%i2,%i2 or %g0,1,%g2 sllx %g2,32,%g2 or %g2,1,%g2 ld [%i0+0],%l0 ld [%i0+4],%l1 ld [%i0+8],%l2 ld [%i0+12],%l3 ld [%i0+16],%l4 andn %i1,7,%i3 sethi %hi(0x5a827999),%l5 or %l5,%lo(0x5a827999),%l5 sethi %hi(0x6ed9eba1),%l6 or %l6,%lo(0x6ed9eba1),%l6 sethi %hi(0x8f1bbcdc),%l7 or %l7,%lo(0x8f1bbcdc),%l7 sethi %hi(0xca62c1d6),%g5 or %g5,%lo(0xca62c1d6),%g5 .Lloop: ldx [%i3+0],%o0 ldx [%i3+16],%o2 ldx [%i3+32],%o4 ldx [%i3+48],%g1 and %i1,7,%i4 ldx [%i3+8],%o1 sll %i4,3,%i4 ldx [%i3+24],%o3 subcc %g0,%i4,%i5 ! should be 64-%i4, but -%i4 works too ldx [%i3+40],%o5 bz,pt %icc,.Laligned ldx [%i3+56],%o7 sllx %o0,%i4,%o0 ldx [%i3+64],%g3 srlx %o1,%i5,%g4 sllx %o1,%i4,%o1 or %g4,%o0,%o0 srlx %o2,%i5,%g4 sllx %o2,%i4,%o2 or %g4,%o1,%o1 srlx %o3,%i5,%g4 sllx %o3,%i4,%o3 or %g4,%o2,%o2 srlx %o4,%i5,%g4 sllx %o4,%i4,%o4 or %g4,%o3,%o3 srlx %o5,%i5,%g4 sllx %o5,%i4,%o5 or %g4,%o4,%o4 srlx %g1,%i5,%g4 sllx %g1,%i4,%g1 or %g4,%o5,%o5 srlx %o7,%i5,%g4 sllx %o7,%i4,%o7 or %g4,%g1,%g1 srlx %g3,%i5,%g3 or %g3,%o7,%o7 .Laligned: srlx %o0,32,%g4 sll %l0,5,%i3 !! 0 add %l5,%l4,%l4 srl %l0,27,%i4 add %i3,%l4,%l4 and %l2,%l1,%i3 add %i4,%l4,%l4 sll %l1,30,%i5 andn %l3,%l1,%i4 srl %l1,2,%l1 or %i4,%i3,%i4 or %i5,%l1,%l1 add %g4,%l4,%l4 add %i4,%l4,%l4 sll %l4,5,%i3 !! 1 add %l5,%l3,%l3 srl %l4,27,%i4 add %i3,%l3,%l3 and %l1,%l0,%i3 add %i4,%l3,%l3 sll %l0,30,%i5 andn %l2,%l0,%i4 srl %l0,2,%l0 or %i4,%i3,%i4 or %i5,%l0,%l0 add %o0,%l3,%l3 srlx %o1,32,%g4 add %i4,%l3,%l3 sll %l3,5,%i3 !! 2 add %l5,%l2,%l2 srl %l3,27,%i4 add %i3,%l2,%l2 and %l0,%l4,%i3 add %i4,%l2,%l2 sll %l4,30,%i5 andn %l1,%l4,%i4 srl %l4,2,%l4 or %i4,%i3,%i4 or %i5,%l4,%l4 add %g4,%l2,%l2 add %i4,%l2,%l2 sll %l2,5,%i3 !! 3 add %l5,%l1,%l1 srl %l2,27,%i4 add %i3,%l1,%l1 and %l4,%l3,%i3 add %i4,%l1,%l1 sll %l3,30,%i5 andn %l0,%l3,%i4 srl %l3,2,%l3 or %i4,%i3,%i4 or %i5,%l3,%l3 add %o1,%l1,%l1 srlx %o2,32,%g4 add %i4,%l1,%l1 sll %l1,5,%i3 !! 4 add %l5,%l0,%l0 srl %l1,27,%i4 add %i3,%l0,%l0 and %l3,%l2,%i3 add %i4,%l0,%l0 sll %l2,30,%i5 andn %l4,%l2,%i4 srl %l2,2,%l2 or %i4,%i3,%i4 or %i5,%l2,%l2 add %g4,%l0,%l0 add %i4,%l0,%l0 sll %l0,5,%i3 !! 5 add %l5,%l4,%l4 srl %l0,27,%i4 add %i3,%l4,%l4 and %l2,%l1,%i3 add %i4,%l4,%l4 sll %l1,30,%i5 andn %l3,%l1,%i4 srl %l1,2,%l1 or %i4,%i3,%i4 or %i5,%l1,%l1 add %o2,%l4,%l4 srlx %o3,32,%g4 add %i4,%l4,%l4 sll %l4,5,%i3 !! 6 add %l5,%l3,%l3 srl %l4,27,%i4 add %i3,%l3,%l3 and %l1,%l0,%i3 add %i4,%l3,%l3 sll %l0,30,%i5 andn %l2,%l0,%i4 srl %l0,2,%l0 or %i4,%i3,%i4 or %i5,%l0,%l0 add %g4,%l3,%l3 add %i4,%l3,%l3 sll %l3,5,%i3 !! 7 add %l5,%l2,%l2 srl %l3,27,%i4 add %i3,%l2,%l2 and %l0,%l4,%i3 add %i4,%l2,%l2 sll %l4,30,%i5 andn %l1,%l4,%i4 srl %l4,2,%l4 or %i4,%i3,%i4 or %i5,%l4,%l4 add %o3,%l2,%l2 srlx %o4,32,%g4 add %i4,%l2,%l2 sll %l2,5,%i3 !! 8 add %l5,%l1,%l1 srl %l2,27,%i4 add %i3,%l1,%l1 and %l4,%l3,%i3 add %i4,%l1,%l1 sll %l3,30,%i5 andn %l0,%l3,%i4 srl %l3,2,%l3 or %i4,%i3,%i4 or %i5,%l3,%l3 add %g4,%l1,%l1 add %i4,%l1,%l1 sll %l1,5,%i3 !! 9 add %l5,%l0,%l0 srl %l1,27,%i4 add %i3,%l0,%l0 and %l3,%l2,%i3 add %i4,%l0,%l0 sll %l2,30,%i5 andn %l4,%l2,%i4 srl %l2,2,%l2 or %i4,%i3,%i4 or %i5,%l2,%l2 add %o4,%l0,%l0 srlx %o5,32,%g4 add %i4,%l0,%l0 sll %l0,5,%i3 !! 10 add %l5,%l4,%l4 srl %l0,27,%i4 add %i3,%l4,%l4 and %l2,%l1,%i3 add %i4,%l4,%l4 sll %l1,30,%i5 andn %l3,%l1,%i4 srl %l1,2,%l1 or %i4,%i3,%i4 or %i5,%l1,%l1 add %g4,%l4,%l4 add %i4,%l4,%l4 sll %l4,5,%i3 !! 11 add %l5,%l3,%l3 srl %l4,27,%i4 add %i3,%l3,%l3 and %l1,%l0,%i3 add %i4,%l3,%l3 sll %l0,30,%i5 andn %l2,%l0,%i4 srl %l0,2,%l0 or %i4,%i3,%i4 or %i5,%l0,%l0 add %o5,%l3,%l3 srlx %g1,32,%g4 add %i4,%l3,%l3 sll %l3,5,%i3 !! 12 add %l5,%l2,%l2 srl %l3,27,%i4 add %i3,%l2,%l2 and %l0,%l4,%i3 add %i4,%l2,%l2 sll %l4,30,%i5 andn %l1,%l4,%i4 srl %l4,2,%l4 or %i4,%i3,%i4 or %i5,%l4,%l4 add %g4,%l2,%l2 add %i4,%l2,%l2 sll %l2,5,%i3 !! 13 add %l5,%l1,%l1 srl %l2,27,%i4 add %i3,%l1,%l1 and %l4,%l3,%i3 add %i4,%l1,%l1 sll %l3,30,%i5 andn %l0,%l3,%i4 srl %l3,2,%l3 or %i4,%i3,%i4 or %i5,%l3,%l3 add %g1,%l1,%l1 srlx %o7,32,%g4 add %i4,%l1,%l1 sll %l1,5,%i3 !! 14 add %l5,%l0,%l0 srl %l1,27,%i4 add %i3,%l0,%l0 and %l3,%l2,%i3 add %i4,%l0,%l0 sll %l2,30,%i5 andn %l4,%l2,%i4 srl %l2,2,%l2 or %i4,%i3,%i4 or %i5,%l2,%l2 add %g4,%l0,%l0 add %i4,%l0,%l0 sll %l0,5,%i3 !! 15 add %l5,%l4,%l4 srl %l0,27,%i4 add %i3,%l4,%l4 and %l2,%l1,%i3 add %i4,%l4,%l4 sll %l1,30,%i5 andn %l3,%l1,%i4 srl %l1,2,%l1 or %i4,%i3,%i4 or %i5,%l1,%l1 add %o7,%l4,%l4 add %i4,%l4,%l4 sllx %g1,32,%g4 ! Xupdate(16) xor %o1,%o0,%o0 srlx %o7,32,%i4 xor %o4,%o0,%o0 sll %l4,5,%i3 !! 16 or %i4,%g4,%g4 add %l5,%l3,%l3 !! xor %g4,%o0,%o0 srlx %o0,31,%g4 add %o0,%o0,%o0 and %g4,%g2,%g4 andn %o0,%g2,%o0 srl %l4,27,%i4 !! or %g4,%o0,%o0 srlx %o0,32,%g4 add %i3,%l3,%l3 !! and %l1,%l0,%i3 add %i4,%l3,%l3 sll %l0,30,%i5 add %g4,%l3,%l3 andn %l2,%l0,%i4 srl %l0,2,%l0 or %i4,%i3,%i4 or %i5,%l0,%l0 add %i4,%l3,%l3 sll %l3,5,%i3 !! 17 add %l5,%l2,%l2 srl %l3,27,%i4 add %i3,%l2,%l2 !! and %l0,%l4,%i3 add %i4,%l2,%l2 sll %l4,30,%i5 add %o0,%l2,%l2 andn %l1,%l4,%i4 srl %l4,2,%l4 or %i4,%i3,%i4 or %i5,%l4,%l4 add %i4,%l2,%l2 sllx %o7,32,%g4 ! Xupdate(18) xor %o2,%o1,%o1 srlx %o0,32,%i4 xor %o5,%o1,%o1 sll %l2,5,%i3 !! 18 or %i4,%g4,%g4 add %l5,%l1,%l1 !! xor %g4,%o1,%o1 srlx %o1,31,%g4 add %o1,%o1,%o1 and %g4,%g2,%g4 andn %o1,%g2,%o1 srl %l2,27,%i4 !! or %g4,%o1,%o1 srlx %o1,32,%g4 add %i3,%l1,%l1 !! and %l4,%l3,%i3 add %i4,%l1,%l1 sll %l3,30,%i5 add %g4,%l1,%l1 andn %l0,%l3,%i4 srl %l3,2,%l3 or %i4,%i3,%i4 or %i5,%l3,%l3 add %i4,%l1,%l1 sll %l1,5,%i3 !! 19 add %l5,%l0,%l0 srl %l1,27,%i4 add %i3,%l0,%l0 !! and %l3,%l2,%i3 add %i4,%l0,%l0 sll %l2,30,%i5 add %o1,%l0,%l0 andn %l4,%l2,%i4 srl %l2,2,%l2 or %i4,%i3,%i4 or %i5,%l2,%l2 add %i4,%l0,%l0 sllx %o0,32,%g4 ! Xupdate(20) xor %o3,%o2,%o2 srlx %o1,32,%i4 xor %g1,%o2,%o2 sll %l0,5,%i3 !! 20 or %i4,%g4,%g4 add %l6,%l4,%l4 !! xor %g4,%o2,%o2 srlx %o2,31,%g4 add %o2,%o2,%o2 and %g4,%g2,%g4 andn %o2,%g2,%o2 srl %l0,27,%i4 !! or %g4,%o2,%o2 srlx %o2,32,%g4 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 %g4,%l4,%l4 sll %l4,5,%i3 !! 21 add %l6,%l3,%l3 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 %o2,%l3,%l3 sllx %o1,32,%g4 ! Xupdate(22) xor %o4,%o3,%o3 srlx %o2,32,%i4 xor %o7,%o3,%o3 sll %l3,5,%i3 !! 22 or %i4,%g4,%g4 add %l6,%l2,%l2 !! xor %g4,%o3,%o3 srlx %o3,31,%g4 add %o3,%o3,%o3 and %g4,%g2,%g4 andn %o3,%g2,%o3 srl %l3,27,%i4 !! or %g4,%o3,%o3 srlx %o3,32,%g4 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 %g4,%l2,%l2 sll %l2,5,%i3 !! 23 add %l6,%l1,%l1 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 %o3,%l1,%l1 sllx %o2,32,%g4 ! Xupdate(24) xor %o5,%o4,%o4 srlx %o3,32,%i4 xor %o0,%o4,%o4 sll %l1,5,%i3 !! 24 or %i4,%g4,%g4 add %l6,%l0,%l0 !! xor %g4,%o4,%o4 srlx %o4,31,%g4 add %o4,%o4,%o4 and %g4,%g2,%g4 andn %o4,%g2,%o4 srl %l1,27,%i4 !! or %g4,%o4,%o4 srlx %o4,32,%g4 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 %g4,%l0,%l0 sll %l0,5,%i3 !! 25 add %l6,%l4,%l4 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 %o4,%l4,%l4 sllx %o3,32,%g4 ! Xupdate(26) xor %g1,%o5,%o5 srlx %o4,32,%i4 xor %o1,%o5,%o5 sll %l4,5,%i3 !! 26 or %i4,%g4,%g4 add %l6,%l3,%l3 !! xor %g4,%o5,%o5 srlx %o5,31,%g4 add %o5,%o5,%o5 and %g4,%g2,%g4 andn %o5,%g2,%o5 srl %l4,27,%i4 !! or %g4,%o5,%o5 srlx %o5,32,%g4 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 %g4,%l3,%l3 sll %l3,5,%i3 !! 27 add %l6,%l2,%l2 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 %o5,%l2,%l2 sllx %o4,32,%g4 ! Xupdate(28) xor %o7,%g1,%g1 srlx %o5,32,%i4 xor %o2,%g1,%g1 sll %l2,5,%i3 !! 28 or %i4,%g4,%g4 add %l6,%l1,%l1 !! xor %g4,%g1,%g1 srlx %g1,31,%g4 add %g1,%g1,%g1 and %g4,%g2,%g4 andn %g1,%g2,%g1 srl %l2,27,%i4 !! or %g4,%g1,%g1 srlx %g1,32,%g4 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 %g4,%l1,%l1 sll %l1,5,%i3 !! 29 add %l6,%l0,%l0 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 %g1,%l0,%l0 sllx %o5,32,%g4 ! Xupdate(30) xor %o0,%o7,%o7 srlx %g1,32,%i4 xor %o3,%o7,%o7 sll %l0,5,%i3 !! 30 or %i4,%g4,%g4 add %l6,%l4,%l4 !! xor %g4,%o7,%o7 srlx %o7,31,%g4 add %o7,%o7,%o7 and %g4,%g2,%g4 andn %o7,%g2,%o7 srl %l0,27,%i4 !! or %g4,%o7,%o7 srlx %o7,32,%g4 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 %g4,%l4,%l4 sll %l4,5,%i3 !! 31 add %l6,%l3,%l3 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 sllx %g1,32,%g4 ! Xupdate(32) xor %o1,%o0,%o0 srlx %o7,32,%i4 xor %o4,%o0,%o0 sll %l3,5,%i3 !! 32 or %i4,%g4,%g4 add %l6,%l2,%l2 !! xor %g4,%o0,%o0 srlx %o0,31,%g4 add %o0,%o0,%o0 and %g4,%g2,%g4 andn %o0,%g2,%o0 srl %l3,27,%i4 !! or %g4,%o0,%o0 srlx %o0,32,%g4 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 %g4,%l2,%l2 sll %l2,5,%i3 !! 33 add %l6,%l1,%l1 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 %o0,%l1,%l1 sllx %o7,32,%g4 ! Xupdate(34) xor %o2,%o1,%o1 srlx %o0,32,%i4 xor %o5,%o1,%o1 sll %l1,5,%i3 !! 34 or %i4,%g4,%g4 add %l6,%l0,%l0 !! xor %g4,%o1,%o1 srlx %o1,31,%g4 add %o1,%o1,%o1 and %g4,%g2,%g4 andn %o1,%g2,%o1 srl %l1,27,%i4 !! or %g4,%o1,%o1 srlx %o1,32,%g4 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 %g4,%l0,%l0 sll %l0,5,%i3 !! 35 add %l6,%l4,%l4 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 %o1,%l4,%l4 sllx %o0,32,%g4 ! Xupdate(36) xor %o3,%o2,%o2 srlx %o1,32,%i4 xor %g1,%o2,%o2 sll %l4,5,%i3 !! 36 or %i4,%g4,%g4 add %l6,%l3,%l3 !! xor %g4,%o2,%o2 srlx %o2,31,%g4 add %o2,%o2,%o2 and %g4,%g2,%g4 andn %o2,%g2,%o2 srl %l4,27,%i4 !! or %g4,%o2,%o2 srlx %o2,32,%g4 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 %g4,%l3,%l3 sll %l3,5,%i3 !! 37 add %l6,%l2,%l2 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 %o2,%l2,%l2 sllx %o1,32,%g4 ! Xupdate(38) xor %o4,%o3,%o3 srlx %o2,32,%i4 xor %o7,%o3,%o3 sll %l2,5,%i3 !! 38 or %i4,%g4,%g4 add %l6,%l1,%l1 !! xor %g4,%o3,%o3 srlx %o3,31,%g4 add %o3,%o3,%o3 and %g4,%g2,%g4 andn %o3,%g2,%o3 srl %l2,27,%i4 !! or %g4,%o3,%o3 srlx %o3,32,%g4 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 %g4,%l1,%l1 sll %l1,5,%i3 !! 39 add %l6,%l0,%l0 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 %o3,%l0,%l0 sllx %o2,32,%g4 ! Xupdate(40) xor %o5,%o4,%o4 srlx %o3,32,%i4 xor %o0,%o4,%o4 sll %l0,5,%i3 !! 40 or %i4,%g4,%g4 add %l7,%l4,%l4 !! xor %g4,%o4,%o4 srlx %o4,31,%g4 add %o4,%o4,%o4 and %g4,%g2,%g4 andn %o4,%g2,%o4 srl %l0,27,%i4 !! or %g4,%o4,%o4 srlx %o4,32,%g4 add %i3,%l4,%l4 !! and %l2,%l1,%i3 add %i4,%l4,%l4 sll %l1,30,%i5 or %l2,%l1,%i4 srl %l1,2,%l1 and %l3,%i4,%i4 add %g4,%l4,%l4 or %i4,%i3,%i4 or %i5,%l1,%l1 add %i4,%l4,%l4 sll %l4,5,%i3 !! 41 add %l7,%l3,%l3 srl %l4,27,%i4 add %i3,%l3,%l3 !! and %l1,%l0,%i3 add %i4,%l3,%l3 sll %l0,30,%i5 or %l1,%l0,%i4 srl %l0,2,%l0 and %l2,%i4,%i4 add %o4,%l3,%l3 or %i4,%i3,%i4 or %i5,%l0,%l0 add %i4,%l3,%l3 sllx %o3,32,%g4 ! Xupdate(42) xor %g1,%o5,%o5 srlx %o4,32,%i4 xor %o1,%o5,%o5 sll %l3,5,%i3 !! 42 or %i4,%g4,%g4 add %l7,%l2,%l2 !! xor %g4,%o5,%o5 srlx %o5,31,%g4 add %o5,%o5,%o5 and %g4,%g2,%g4 andn %o5,%g2,%o5 srl %l3,27,%i4 !! or %g4,%o5,%o5 srlx %o5,32,%g4 add %i3,%l2,%l2 !! and %l0,%l4,%i3 add %i4,%l2,%l2 sll %l4,30,%i5 or %l0,%l4,%i4 srl %l4,2,%l4 and %l1,%i4,%i4 add %g4,%l2,%l2 or %i4,%i3,%i4 or %i5,%l4,%l4 add %i4,%l2,%l2 sll %l2,5,%i3 !! 43 add %l7,%l1,%l1 srl %l2,27,%i4 add %i3,%l1,%l1 !! and %l4,%l3,%i3 add %i4,%l1,%l1 sll %l3,30,%i5 or %l4,%l3,%i4 srl %l3,2,%l3 and %l0,%i4,%i4 add %o5,%l1,%l1 or %i4,%i3,%i4 or %i5,%l3,%l3 add %i4,%l1,%l1 sllx %o4,32,%g4 ! Xupdate(44) xor %o7,%g1,%g1 srlx %o5,32,%i4 xor %o2,%g1,%g1 sll %l1,5,%i3 !! 44 or %i4,%g4,%g4 add %l7,%l0,%l0 !! xor %g4,%g1,%g1 srlx %g1,31,%g4 add %g1,%g1,%g1 and %g4,%g2,%g4 andn %g1,%g2,%g1 srl %l1,27,%i4 !! or %g4,%g1,%g1 srlx %g1,32,%g4 add %i3,%l0,%l0 !! and %l3,%l2,%i3 add %i4,%l0,%l0 sll %l2,30,%i5 or %l3,%l2,%i4 srl %l2,2,%l2 and %l4,%i4,%i4 add %g4,%l0,%l0 or %i4,%i3,%i4 or %i5,%l2,%l2 add %i4,%l0,%l0 sll %l0,5,%i3 !! 45 add %l7,%l4,%l4 srl %l0,27,%i4 add %i3,%l4,%l4 !! and %l2,%l1,%i3 add %i4,%l4,%l4 sll %l1,30,%i5 or %l2,%l1,%i4 srl %l1,2,%l1 and %l3,%i4,%i4 add %g1,%l4,%l4 or %i4,%i3,%i4 or %i5,%l1,%l1 add %i4,%l4,%l4 sllx %o5,32,%g4 ! Xupdate(46) xor %o0,%o7,%o7 srlx %g1,32,%i4 xor %o3,%o7,%o7 sll %l4,5,%i3 !! 46 or %i4,%g4,%g4 add %l7,%l3,%l3 !! xor %g4,%o7,%o7 srlx %o7,31,%g4 add %o7,%o7,%o7 and %g4,%g2,%g4 andn %o7,%g2,%o7 srl %l4,27,%i4 !! or %g4,%o7,%o7 srlx %o7,32,%g4 add %i3,%l3,%l3 !! and %l1,%l0,%i3 add %i4,%l3,%l3 sll %l0,30,%i5 or %l1,%l0,%i4 srl %l0,2,%l0 and %l2,%i4,%i4 add %g4,%l3,%l3 or %i4,%i3,%i4 or %i5,%l0,%l0 add %i4,%l3,%l3 sll %l3,5,%i3 !! 47 add %l7,%l2,%l2 srl %l3,27,%i4 add %i3,%l2,%l2 !! and %l0,%l4,%i3 add %i4,%l2,%l2 sll %l4,30,%i5 or %l0,%l4,%i4 srl %l4,2,%l4 and %l1,%i4,%i4 add %o7,%l2,%l2 or %i4,%i3,%i4 or %i5,%l4,%l4 add %i4,%l2,%l2 sllx %g1,32,%g4 ! Xupdate(48) xor %o1,%o0,%o0 srlx %o7,32,%i4 xor %o4,%o0,%o0 sll %l2,5,%i3 !! 48 or %i4,%g4,%g4 add %l7,%l1,%l1 !! xor %g4,%o0,%o0 srlx %o0,31,%g4 add %o0,%o0,%o0 and %g4,%g2,%g4 andn %o0,%g2,%o0 srl %l2,27,%i4 !! or %g4,%o0,%o0 srlx %o0,32,%g4 add %i3,%l1,%l1 !! and %l4,%l3,%i3 add %i4,%l1,%l1 sll %l3,30,%i5 or %l4,%l3,%i4 srl %l3,2,%l3 and %l0,%i4,%i4 add %g4,%l1,%l1 or %i4,%i3,%i4 or %i5,%l3,%l3 add %i4,%l1,%l1 sll %l1,5,%i3 !! 49 add %l7,%l0,%l0 srl %l1,27,%i4 add %i3,%l0,%l0 !! and %l3,%l2,%i3 add %i4,%l0,%l0 sll %l2,30,%i5 or %l3,%l2,%i4 srl %l2,2,%l2 and %l4,%i4,%i4 add %o0,%l0,%l0 or %i4,%i3,%i4 or %i5,%l2,%l2 add %i4,%l0,%l0 sllx %o7,32,%g4 ! Xupdate(50) xor %o2,%o1,%o1 srlx %o0,32,%i4 xor %o5,%o1,%o1 sll %l0,5,%i3 !! 50 or %i4,%g4,%g4 add %l7,%l4,%l4 !! xor %g4,%o1,%o1 srlx %o1,31,%g4 add %o1,%o1,%o1 and %g4,%g2,%g4 andn %o1,%g2,%o1 srl %l0,27,%i4 !! or %g4,%o1,%o1 srlx %o1,32,%g4 add %i3,%l4,%l4 !! and %l2,%l1,%i3 add %i4,%l4,%l4 sll %l1,30,%i5 or %l2,%l1,%i4 srl %l1,2,%l1 and %l3,%i4,%i4 add %g4,%l4,%l4 or %i4,%i3,%i4 or %i5,%l1,%l1 add %i4,%l4,%l4 sll %l4,5,%i3 !! 51 add %l7,%l3,%l3 srl %l4,27,%i4 add %i3,%l3,%l3 !! and %l1,%l0,%i3 add %i4,%l3,%l3 sll %l0,30,%i5 or %l1,%l0,%i4 srl %l0,2,%l0 and %l2,%i4,%i4 add %o1,%l3,%l3 or %i4,%i3,%i4 or %i5,%l0,%l0 add %i4,%l3,%l3 sllx %o0,32,%g4 ! Xupdate(52) xor %o3,%o2,%o2 srlx %o1,32,%i4 xor %g1,%o2,%o2 sll %l3,5,%i3 !! 52 or %i4,%g4,%g4 add %l7,%l2,%l2 !! xor %g4,%o2,%o2 srlx %o2,31,%g4 add %o2,%o2,%o2 and %g4,%g2,%g4 andn %o2,%g2,%o2 srl %l3,27,%i4 !! or %g4,%o2,%o2 srlx %o2,32,%g4 add %i3,%l2,%l2 !! and %l0,%l4,%i3 add %i4,%l2,%l2 sll %l4,30,%i5 or %l0,%l4,%i4 srl %l4,2,%l4 and %l1,%i4,%i4 add %g4,%l2,%l2 or %i4,%i3,%i4 or %i5,%l4,%l4 add %i4,%l2,%l2 sll %l2,5,%i3 !! 53 add %l7,%l1,%l1 srl %l2,27,%i4 add %i3,%l1,%l1 !! and %l4,%l3,%i3 add %i4,%l1,%l1 sll %l3,30,%i5 or %l4,%l3,%i4 srl %l3,2,%l3 and %l0,%i4,%i4 add %o2,%l1,%l1 or %i4,%i3,%i4 or %i5,%l3,%l3 add %i4,%l1,%l1 sllx %o1,32,%g4 ! Xupdate(54) xor %o4,%o3,%o3 srlx %o2,32,%i4 xor %o7,%o3,%o3 sll %l1,5,%i3 !! 54 or %i4,%g4,%g4 add %l7,%l0,%l0 !! xor %g4,%o3,%o3 srlx %o3,31,%g4 add %o3,%o3,%o3 and %g4,%g2,%g4 andn %o3,%g2,%o3 srl %l1,27,%i4 !! or %g4,%o3,%o3 srlx %o3,32,%g4 add %i3,%l0,%l0 !! and %l3,%l2,%i3 add %i4,%l0,%l0 sll %l2,30,%i5 or %l3,%l2,%i4 srl %l2,2,%l2 and %l4,%i4,%i4 add %g4,%l0,%l0 or %i4,%i3,%i4 or %i5,%l2,%l2 add %i4,%l0,%l0 sll %l0,5,%i3 !! 55 add %l7,%l4,%l4 srl %l0,27,%i4 add %i3,%l4,%l4 !! and %l2,%l1,%i3 add %i4,%l4,%l4 sll %l1,30,%i5 or %l2,%l1,%i4 srl %l1,2,%l1 and %l3,%i4,%i4 add %o3,%l4,%l4 or %i4,%i3,%i4 or %i5,%l1,%l1 add %i4,%l4,%l4 sllx %o2,32,%g4 ! Xupdate(56) xor %o5,%o4,%o4 srlx %o3,32,%i4 xor %o0,%o4,%o4 sll %l4,5,%i3 !! 56 or %i4,%g4,%g4 add %l7,%l3,%l3 !! xor %g4,%o4,%o4 srlx %o4,31,%g4 add %o4,%o4,%o4 and %g4,%g2,%g4 andn %o4,%g2,%o4 srl %l4,27,%i4 !! or %g4,%o4,%o4 srlx %o4,32,%g4 add %i3,%l3,%l3 !! and %l1,%l0,%i3 add %i4,%l3,%l3 sll %l0,30,%i5 or %l1,%l0,%i4 srl %l0,2,%l0 and %l2,%i4,%i4 add %g4,%l3,%l3 or %i4,%i3,%i4 or %i5,%l0,%l0 add %i4,%l3,%l3 sll %l3,5,%i3 !! 57 add %l7,%l2,%l2 srl %l3,27,%i4 add %i3,%l2,%l2 !! and %l0,%l4,%i3 add %i4,%l2,%l2 sll %l4,30,%i5 or %l0,%l4,%i4 srl %l4,2,%l4 and %l1,%i4,%i4 add %o4,%l2,%l2 or %i4,%i3,%i4 or %i5,%l4,%l4 add %i4,%l2,%l2 sllx %o3,32,%g4 ! Xupdate(58) xor %g1,%o5,%o5 srlx %o4,32,%i4 xor %o1,%o5,%o5 sll %l2,5,%i3 !! 58 or %i4,%g4,%g4 add %l7,%l1,%l1 !! xor %g4,%o5,%o5 srlx %o5,31,%g4 add %o5,%o5,%o5 and %g4,%g2,%g4 andn %o5,%g2,%o5 srl %l2,27,%i4 !! or %g4,%o5,%o5 srlx %o5,32,%g4 add %i3,%l1,%l1 !! and %l4,%l3,%i3 add %i4,%l1,%l1 sll %l3,30,%i5 or %l4,%l3,%i4 srl %l3,2,%l3 and %l0,%i4,%i4 add %g4,%l1,%l1 or %i4,%i3,%i4 or %i5,%l3,%l3 add %i4,%l1,%l1 sll %l1,5,%i3 !! 59 add %l7,%l0,%l0 srl %l1,27,%i4 add %i3,%l0,%l0 !! and %l3,%l2,%i3 add %i4,%l0,%l0 sll %l2,30,%i5 or %l3,%l2,%i4 srl %l2,2,%l2 and %l4,%i4,%i4 add %o5,%l0,%l0 or %i4,%i3,%i4 or %i5,%l2,%l2 add %i4,%l0,%l0 sllx %o4,32,%g4 ! Xupdate(60) xor %o7,%g1,%g1 srlx %o5,32,%i4 xor %o2,%g1,%g1 sll %l0,5,%i3 !! 60 or %i4,%g4,%g4 add %g5,%l4,%l4 !! xor %g4,%g1,%g1 srlx %g1,31,%g4 add %g1,%g1,%g1 and %g4,%g2,%g4 andn %g1,%g2,%g1 srl %l0,27,%i4 !! or %g4,%g1,%g1 srlx %g1,32,%g4 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 %g4,%l4,%l4 sll %l4,5,%i3 !! 61 add %g5,%l3,%l3 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 %g1,%l3,%l3 sllx %o5,32,%g4 ! Xupdate(62) xor %o0,%o7,%o7 srlx %g1,32,%i4 xor %o3,%o7,%o7 sll %l3,5,%i3 !! 62 or %i4,%g4,%g4 add %g5,%l2,%l2 !! xor %g4,%o7,%o7 srlx %o7,31,%g4 add %o7,%o7,%o7 and %g4,%g2,%g4 andn %o7,%g2,%o7 srl %l3,27,%i4 !! or %g4,%o7,%o7 srlx %o7,32,%g4 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 %g4,%l2,%l2 sll %l2,5,%i3 !! 63 add %g5,%l1,%l1 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 sllx %g1,32,%g4 ! Xupdate(64) xor %o1,%o0,%o0 srlx %o7,32,%i4 xor %o4,%o0,%o0 sll %l1,5,%i3 !! 64 or %i4,%g4,%g4 add %g5,%l0,%l0 !! xor %g4,%o0,%o0 srlx %o0,31,%g4 add %o0,%o0,%o0 and %g4,%g2,%g4 andn %o0,%g2,%o0 srl %l1,27,%i4 !! or %g4,%o0,%o0 srlx %o0,32,%g4 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 %g4,%l0,%l0 sll %l0,5,%i3 !! 65 add %g5,%l4,%l4 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 %o0,%l4,%l4 sllx %o7,32,%g4 ! Xupdate(66) xor %o2,%o1,%o1 srlx %o0,32,%i4 xor %o5,%o1,%o1 sll %l4,5,%i3 !! 66 or %i4,%g4,%g4 add %g5,%l3,%l3 !! xor %g4,%o1,%o1 srlx %o1,31,%g4 add %o1,%o1,%o1 and %g4,%g2,%g4 andn %o1,%g2,%o1 srl %l4,27,%i4 !! or %g4,%o1,%o1 srlx %o1,32,%g4 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 %g4,%l3,%l3 sll %l3,5,%i3 !! 67 add %g5,%l2,%l2 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 %o1,%l2,%l2 sllx %o0,32,%g4 ! Xupdate(68) xor %o3,%o2,%o2 srlx %o1,32,%i4 xor %g1,%o2,%o2 sll %l2,5,%i3 !! 68 or %i4,%g4,%g4 add %g5,%l1,%l1 !! xor %g4,%o2,%o2 srlx %o2,31,%g4 add %o2,%o2,%o2 and %g4,%g2,%g4 andn %o2,%g2,%o2 srl %l2,27,%i4 !! or %g4,%o2,%o2 srlx %o2,32,%g4 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 %g4,%l1,%l1 sll %l1,5,%i3 !! 69 add %g5,%l0,%l0 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 %o2,%l0,%l0 sllx %o1,32,%g4 ! Xupdate(70) xor %o4,%o3,%o3 srlx %o2,32,%i4 xor %o7,%o3,%o3 sll %l0,5,%i3 !! 70 or %i4,%g4,%g4 add %g5,%l4,%l4 !! xor %g4,%o3,%o3 srlx %o3,31,%g4 add %o3,%o3,%o3 and %g4,%g2,%g4 andn %o3,%g2,%o3 srl %l0,27,%i4 !! or %g4,%o3,%o3 srlx %o3,32,%g4 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 %g4,%l4,%l4 sll %l4,5,%i3 !! 71 add %g5,%l3,%l3 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 %o3,%l3,%l3 sllx %o2,32,%g4 ! Xupdate(72) xor %o5,%o4,%o4 srlx %o3,32,%i4 xor %o0,%o4,%o4 sll %l3,5,%i3 !! 72 or %i4,%g4,%g4 add %g5,%l2,%l2 !! xor %g4,%o4,%o4 srlx %o4,31,%g4 add %o4,%o4,%o4 and %g4,%g2,%g4 andn %o4,%g2,%o4 srl %l3,27,%i4 !! or %g4,%o4,%o4 srlx %o4,32,%g4 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 %g4,%l2,%l2 sll %l2,5,%i3 !! 73 add %g5,%l1,%l1 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 %o4,%l1,%l1 sllx %o3,32,%g4 ! Xupdate(74) xor %g1,%o5,%o5 srlx %o4,32,%i4 xor %o1,%o5,%o5 sll %l1,5,%i3 !! 74 or %i4,%g4,%g4 add %g5,%l0,%l0 !! xor %g4,%o5,%o5 srlx %o5,31,%g4 add %o5,%o5,%o5 and %g4,%g2,%g4 andn %o5,%g2,%o5 srl %l1,27,%i4 !! or %g4,%o5,%o5 srlx %o5,32,%g4 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 %g4,%l0,%l0 sll %l0,5,%i3 !! 75 add %g5,%l4,%l4 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 %o5,%l4,%l4 sllx %o4,32,%g4 ! Xupdate(76) xor %o7,%g1,%g1 srlx %o5,32,%i4 xor %o2,%g1,%g1 sll %l4,5,%i3 !! 76 or %i4,%g4,%g4 add %g5,%l3,%l3 !! xor %g4,%g1,%g1 srlx %g1,31,%g4 add %g1,%g1,%g1 and %g4,%g2,%g4 andn %g1,%g2,%g1 srl %l4,27,%i4 !! or %g4,%g1,%g1 srlx %g1,32,%g4 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 %g4,%l3,%l3 sll %l3,5,%i3 !! 77 add %g5,%l2,%l2 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 %g1,%l2,%l2 sllx %o5,32,%g4 ! Xupdate(78) xor %o0,%o7,%o7 srlx %g1,32,%i4 xor %o3,%o7,%o7 sll %l2,5,%i3 !! 78 or %i4,%g4,%g4 add %g5,%l1,%l1 !! xor %g4,%o7,%o7 srlx %o7,31,%g4 add %o7,%o7,%o7 and %g4,%g2,%g4 andn %o7,%g2,%o7 srl %l2,27,%i4 !! or %g4,%o7,%o7 srlx %o7,32,%g4 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 %g4,%l1,%l1 sll %l1,5,%i3 !! 79 add %g5,%l0,%l0 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 ld [%i0+0],%o0 ld [%i0+4],%o1 ld [%i0+8],%o2 ld [%i0+12],%o3 add %i1,64,%i1 ld [%i0+16],%o4 cmp %i1,%i2 add %l0,%o0,%l0 st %l0,[%i0+0] add %l1,%o1,%l1 st %l1,[%i0+4] add %l2,%o2,%l2 st %l2,[%i0+8] add %l3,%o3,%l3 st %l3,[%i0+12] add %l4,%o4,%l4 st %l4,[%i0+16] bne SIZE_T_CC,.Lloop andn %i1,7,%i3 ret restore .type sha1_block_data_order,#function .size sha1_block_data_order,(.-sha1_block_data_order) .asciz "SHA1 block transform for SPARCv9, CRYPTOGAMS by " .align 4