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