/* SPDX-License-Identifier: GPL-2.0 */
#include <linux/linkage.h>
#include <asm/export.h>

	.text
	.align	32
ENTRY(__arch_hweight8)
	sethi	%hi(__sw_hweight8), %g1
	jmpl	%g1 + %lo(__sw_hweight8), %g0
	 nop
ENDPROC(__arch_hweight8)
EXPORT_SYMBOL(__arch_hweight8)
	.section	.popc_3insn_patch, "ax"
	.word		__arch_hweight8
	sllx		%o0, 64-8, %g1
	retl
	 popc		%g1, %o0
	.previous

ENTRY(__arch_hweight16)
	sethi	%hi(__sw_hweight16), %g1
	jmpl	%g1 + %lo(__sw_hweight16), %g0
	 nop
ENDPROC(__arch_hweight16)
EXPORT_SYMBOL(__arch_hweight16)
	.section	.popc_3insn_patch, "ax"
	.word		__arch_hweight16
	sllx		%o0, 64-16, %g1
	retl
	 popc		%g1, %o0
	.previous

ENTRY(__arch_hweight32)
	sethi	%hi(__sw_hweight32), %g1
	jmpl	%g1 + %lo(__sw_hweight32), %g0
	 nop
ENDPROC(__arch_hweight32)
EXPORT_SYMBOL(__arch_hweight32)
	.section	.popc_3insn_patch, "ax"
	.word		__arch_hweight32
	sllx		%o0, 64-32, %g1
	retl
	 popc		%g1, %o0
	.previous

ENTRY(__arch_hweight64)
	sethi	%hi(__sw_hweight64), %g1
	jmpl	%g1 + %lo(__sw_hweight64), %g0
	 nop
ENDPROC(__arch_hweight64)
EXPORT_SYMBOL(__arch_hweight64)
	.section	.popc_3insn_patch, "ax"
	.word		__arch_hweight64
	retl
	 popc		%o0, %o0
	nop
	.previous
