1b2441318SGreg Kroah-Hartman/* SPDX-License-Identifier: GPL-2.0 */ 2*4cdb71b6SMasahiro Yamada#include <linux/export.h> 3ef7c4d46SDavid S. Miller#include <linux/linkage.h> 4ef7c4d46SDavid S. Miller 5ef7c4d46SDavid S. Miller .text 6ef7c4d46SDavid S. Miller .align 32 7ef7c4d46SDavid S. MillerENTRY(__arch_hweight8) 89289ea7fSDavid S. Miller sethi %hi(__sw_hweight8), %g1 99289ea7fSDavid S. Miller jmpl %g1 + %lo(__sw_hweight8), %g0 10ef7c4d46SDavid S. Miller nop 11ef7c4d46SDavid S. MillerENDPROC(__arch_hweight8) 12d3867f04SAl ViroEXPORT_SYMBOL(__arch_hweight8) 13ef7c4d46SDavid S. Miller .section .popc_3insn_patch, "ax" 14ef7c4d46SDavid S. Miller .word __arch_hweight8 15ef7c4d46SDavid S. Miller sllx %o0, 64-8, %g1 16ef7c4d46SDavid S. Miller retl 17ef7c4d46SDavid S. Miller popc %g1, %o0 18ef7c4d46SDavid S. Miller .previous 19ef7c4d46SDavid S. Miller 20ef7c4d46SDavid S. MillerENTRY(__arch_hweight16) 219289ea7fSDavid S. Miller sethi %hi(__sw_hweight16), %g1 229289ea7fSDavid S. Miller jmpl %g1 + %lo(__sw_hweight16), %g0 23ef7c4d46SDavid S. Miller nop 24ef7c4d46SDavid S. MillerENDPROC(__arch_hweight16) 25d3867f04SAl ViroEXPORT_SYMBOL(__arch_hweight16) 26ef7c4d46SDavid S. Miller .section .popc_3insn_patch, "ax" 27ef7c4d46SDavid S. Miller .word __arch_hweight16 28ef7c4d46SDavid S. Miller sllx %o0, 64-16, %g1 29ef7c4d46SDavid S. Miller retl 30ef7c4d46SDavid S. Miller popc %g1, %o0 31ef7c4d46SDavid S. Miller .previous 32ef7c4d46SDavid S. Miller 33ef7c4d46SDavid S. MillerENTRY(__arch_hweight32) 349289ea7fSDavid S. Miller sethi %hi(__sw_hweight32), %g1 359289ea7fSDavid S. Miller jmpl %g1 + %lo(__sw_hweight32), %g0 36ef7c4d46SDavid S. Miller nop 37ef7c4d46SDavid S. MillerENDPROC(__arch_hweight32) 38d3867f04SAl ViroEXPORT_SYMBOL(__arch_hweight32) 39ef7c4d46SDavid S. Miller .section .popc_3insn_patch, "ax" 40ef7c4d46SDavid S. Miller .word __arch_hweight32 41ef7c4d46SDavid S. Miller sllx %o0, 64-32, %g1 42ef7c4d46SDavid S. Miller retl 43ef7c4d46SDavid S. Miller popc %g1, %o0 44ef7c4d46SDavid S. Miller .previous 45ef7c4d46SDavid S. Miller 46ef7c4d46SDavid S. MillerENTRY(__arch_hweight64) 4759585b4bSJan Engelhardt sethi %hi(__sw_hweight64), %g1 4859585b4bSJan Engelhardt jmpl %g1 + %lo(__sw_hweight64), %g0 49ef7c4d46SDavid S. Miller nop 50ef7c4d46SDavid S. MillerENDPROC(__arch_hweight64) 51d3867f04SAl ViroEXPORT_SYMBOL(__arch_hweight64) 52ef7c4d46SDavid S. Miller .section .popc_3insn_patch, "ax" 53ef7c4d46SDavid S. Miller .word __arch_hweight64 54ef7c4d46SDavid S. Miller retl 55ef7c4d46SDavid S. Miller popc %o0, %o0 56ef7c4d46SDavid S. Miller nop 57ef7c4d46SDavid S. Miller .previous 58