crc32c_asm.S 397 B

123456789101112131415161718192021
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #include <linux/linkage.h>
  3. #include <asm/visasm.h>
  4. #include <asm/asi.h>
  5. #include "opcodes.h"
  6. ENTRY(crc32c_sparc64)
  7. /* %o0=crc32p, %o1=data_ptr, %o2=len */
  8. VISEntryHalf
  9. lda [%o0] ASI_PL, %f1
  10. 1: ldd [%o1], %f2
  11. CRC32C(0,2,0)
  12. subcc %o2, 8, %o2
  13. bne,pt %icc, 1b
  14. add %o1, 0x8, %o1
  15. sta %f1, [%o0] ASI_PL
  16. VISExitHalf
  17. 2: retl
  18. nop
  19. ENDPROC(crc32c_sparc64)