home *** CD-ROM | disk | FTP | other *** search
- !
- ! UFC-crypt: ultra fast crypt(3) implementation
- ! Copyright (C) 1991, 1992, Free Software Foundation, Inc.
- !
- ! This library is free software, you can redistribute it and/or
- ! modify it under the terms of the GNU Library General Public
- ! License as published by the Free Software Foundation, either
- ! version 2 of the License, or (at your option) any later version.
- !
- ! This library is distributed in the hope that it will be useful,
- ! but WITHOUT ANY WARRANTY, without even the implied warranty of
- ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- ! Library General Public License for more details.
- !
- ! You should have received a copy of the GNU Library General Public
- ! License along with this library, if not, write to the Free
- ! Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- !
- ! @(#)crypt.sparc.s 1.3 5/28/92
- !
- ! Assembly code for SPARC architecture machines:
- ! derived from gcc 2.1 assembly language output from
- ! crypt.c, rev. 2.17
- !
-
- gcc2_compiled.:
- .text
- .align 4
- .global __ufc_doit
- .proc 1
- __ufc_doit:
- !#PROLOGUE# 0
- save %sp,-112,%sp
- !#PROLOGUE# 1
- mov %i0,%o7
- mov %i1,%o0
- mov %i2,%o1
- add %i4,-1,%o4
- cmp %o4,-1
- be L3
- mov %i3,%o2
- sethi %hi(65535),%g2
- or %g2,%lo(65535),%l1
- sethi %hi(__ufc_sb1),%g2
- or %g2,%lo(__ufc_sb1),%l6
- L8:
- sethi %hi(__ufc_keytab),%l7
- or %l7,%lo(__ufc_keytab),%g1
- mov 7,%o3
- sethi %hi(__ufc_sb0),%g2
- or %g2,%lo(__ufc_sb0),%l2
- add %l2,4,%l5
- sethi %hi(__ufc_sb3),%g2
- or %g2,%lo(__ufc_sb3),%l0
- add %l0,4,%l4
- sethi %hi(__ufc_sb2),%g2
- or %g2,%lo(__ufc_sb2),%o5
- add %o5,4,%l3
- L7:
- ld [%g1],%g2
- add %g1,4,%g1
- ld [%g1],%i0
- add %g1,4,%g1
- ld [%g1],%i3
- add %g1,4,%g1
- ld [%g1],%i4
- add %g1,4,%g1
- add %o3,-1,%o3
- cmp %o3,-1
- sethi %hi(__ufc_sb1+4),%l7
- xor %o1,%g2,%i5
- and %i5,%l1,%g3
- srl %i5,16,%i5
- ld [%i5+%l2],%i1
- ld [%i5+%l5],%i2
- or %l7,%lo(__ufc_sb1+4),%l7
- xor %o2,%i0,%i5
- and %i5,%l1,%i0
- ld [%g3+%l6],%g2
- srl %i5,16,%i5
- ld [%g3+%l7],%g3
- xor %o7,%g2,%o7
- xor %o0,%g3,%o0
- xor %o7,%i1,%o7
- ld [%i0+%l0],%g2
- ld [%i0+%l4],%g3
- xor %o0,%i2,%o0
- ld [%i5+%l3],%i0
- xor %o7,%g2,%o7
- ld [%i5+%o5],%g2
- xor %o0,%g3,%o0
- xor %o7,%g2,%o7
- xor %o7,%i3,%i5
- and %i5,%l1,%g3
- srl %i5,16,%i5
- ld [%i5+%l2],%i1
- ld [%i5+%l5],%i2
- xor %o0,%i0,%o0
- xor %o0,%i4,%i5
- and %i5,%l1,%i0
- ld [%g3+%l6],%g2
- srl %i5,16,%i5
- ld [%g3+%l7],%g3
- xor %o1,%g2,%o1
- xor %o2,%g3,%o2
- xor %o1,%i1,%o1
- xor %o2,%i2,%o2
- ld [%i0+%l0],%g2
- ld [%i0+%l4],%g3
- xor %o1,%g2,%o1
- xor %o2,%g3,%o2
- ld [%i5+%o5],%g2
- ld [%i5+%l3],%g3
- xor %o1,%g2,%o1
- bne L7
- xor %o2,%g3,%o2
- mov %o7,%i5
- mov %o1,%o7
- mov %i5,%o1
- mov %o0,%i5
- mov %o2,%o0
- add %o4,-1,%o4
- cmp %o4,-1
- bne L8
- mov %i5,%o2
- L3:
- sethi %hi(_ary),%i0
- st %o7,[%i0+%lo(_ary)]
- or %i0,%lo(_ary),%i0
- st %o0,[%i0+4]
- st %o1,[%i0+8]
- st %o2,[%i0+12]
- ret
- restore
-
- .reserve _ary,16,"bss"
-