Linux 4.8-rc8
[linux/fpc-iii.git] / arch / sparc / crypto / crc32c_asm.S
blob2b1976e765b53212e5aa16ab37078e3f709e12e1
1 #include <linux/linkage.h>
2 #include <asm/visasm.h>
3 #include <asm/asi.h>
5 #include "opcodes.h"
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)