| /* 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 |