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