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