1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #include <linux/export.h> 3 #include <linux/linkage.h> 4 5 .text 6 .align 32 7 ENTRY(__arch_hweight8) 8 sethi %hi(__sw_hweight8), %g1 9 jmpl %g1 + %lo(__sw_hweight8), %g0 10 nop 11 ENDPROC(__arch_hweight8) 12 EXPORT_SYMBOL(__arch_hweight8) 13 .section .popc_3insn_patch, "ax" 14 .word __arch_hweight8 15 sllx %o0, 64-8, %g1 16 retl 17 popc %g1, %o0 18 .previous 19 20 ENTRY(__arch_hweight16) 21 sethi %hi(__sw_hweight16), %g1 22 jmpl %g1 + %lo(__sw_hweight16), %g0 23 nop 24 ENDPROC(__arch_hweight16) 25 EXPORT_SYMBOL(__arch_hweight16) 26 .section .popc_3insn_patch, "ax" 27 .word __arch_hweight16 28 sllx %o0, 64-16, %g1 29 retl 30 popc %g1, %o0 31 .previous 32 33 ENTRY(__arch_hweight32) 34 sethi %hi(__sw_hweight32), %g1 35 jmpl %g1 + %lo(__sw_hweight32), %g0 36 nop 37 ENDPROC(__arch_hweight32) 38 EXPORT_SYMBOL(__arch_hweight32) 39 .section .popc_3insn_patch, "ax" 40 .word __arch_hweight32 41 sllx %o0, 64-32, %g1 42 retl 43 popc %g1, %o0 44 .previous 45 46 ENTRY(__arch_hweight64) 47 sethi %hi(__sw_hweight64), %g1 48 jmpl %g1 + %lo(__sw_hweight64), %g0 49 nop 50 ENDPROC(__arch_hweight64) 51 EXPORT_SYMBOL(__arch_hweight64) 52 .section .popc_3insn_patch, "ax" 53 .word __arch_hweight64 54 retl 55 popc %o0, %o0 56 nop 57 .previous
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.