1234567891011121314151617181920 |
- #include <linux/linkage.h>
- #include <asm/visasm.h>
- #include <asm/asi.h>
- #include "opcodes.h"
- ENTRY(crc32c_sparc64)
- /* %o0=crc32p, %o1=data_ptr, %o2=len */
- VISEntryHalf
- lda [%o0] ASI_PL, %f1
- 1: ldd [%o1], %f2
- CRC32C(0,2,0)
- subcc %o2, 8, %o2
- bne,pt %icc, 1b
- add %o1, 0x8, %o1
- sta %f1, [%o0] ASI_PL
- VISExitHalf
- 2: retl
- nop
- ENDPROC(crc32c_sparc64)
|