/* SPDX-License-Identifier: GPL-2.0 */ | |
#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) |