Merge branch 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg...
[sfrench/cifs-2.6.git] / arch / sparc / crypto / crc32c_asm.S
1 #include <linux/linkage.h>
2 #include <asm/visasm.h>
3 #include <asm/asi.h>
4
5 #include "opcodes.h"
6
7 ENTRY(crc32c_sparc64)
8         /* %o0=crc32p, %o1=data_ptr, %o2=len */
9         VISEntryHalf
10         lda     [%o0] ASI_PL, %f1
11 1:      ldd     [%o1], %f2
12         CRC32C(0,2,0)
13         subcc   %o2, 8, %o2
14         bne,pt  %icc, 1b
15          add    %o1, 0x8, %o1
16         sta     %f1, [%o0] ASI_PL
17         VISExitHalf
18 2:      retl
19          nop
20 ENDPROC(crc32c_sparc64)