xref: /kernel/linux/linux-6.6/arch/sparc/crypto/crc32c_asm.S
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /kernel/linux/linux-6.6/arch/sparc/crypto/
162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#include <linux/linkage.h>
362306a36Sopenharmony_ci#include <asm/visasm.h>
462306a36Sopenharmony_ci#include <asm/asi.h>
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include "opcodes.h"
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciENTRY(crc32c_sparc64)
962306a36Sopenharmony_ci	/* %o0=crc32p, %o1=data_ptr, %o2=len */
1062306a36Sopenharmony_ci	VISEntryHalf
1162306a36Sopenharmony_ci	lda	[%o0] ASI_PL, %f1
1262306a36Sopenharmony_ci1:	ldd	[%o1], %f2
1362306a36Sopenharmony_ci	CRC32C(0,2,0)
1462306a36Sopenharmony_ci	subcc	%o2, 8, %o2
1562306a36Sopenharmony_ci	bne,pt	%icc, 1b
1662306a36Sopenharmony_ci	 add	%o1, 0x8, %o1
1762306a36Sopenharmony_ci	sta	%f1, [%o0] ASI_PL
1862306a36Sopenharmony_ci	VISExitHalf
1962306a36Sopenharmony_ci2:	retl
2062306a36Sopenharmony_ci	 nop
2162306a36Sopenharmony_ciENDPROC(crc32c_sparc64)
22

Indexes created Thu Nov 07 10:32:03 CST 2024