Loading...
1/* SPDX-License-Identifier: GPL-2.0 */
2#include <linux/linkage.h>
3#include <asm/export.h>
4
5 .text
6 .align 32
7ENTRY(__arch_hweight8)
8 sethi %hi(__sw_hweight8), %g1
9 jmpl %g1 + %lo(__sw_hweight8), %g0
10 nop
11ENDPROC(__arch_hweight8)
12EXPORT_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
20ENTRY(__arch_hweight16)
21 sethi %hi(__sw_hweight16), %g1
22 jmpl %g1 + %lo(__sw_hweight16), %g0
23 nop
24ENDPROC(__arch_hweight16)
25EXPORT_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
33ENTRY(__arch_hweight32)
34 sethi %hi(__sw_hweight32), %g1
35 jmpl %g1 + %lo(__sw_hweight32), %g0
36 nop
37ENDPROC(__arch_hweight32)
38EXPORT_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
46ENTRY(__arch_hweight64)
47 sethi %hi(__sw_hweight64), %g1
48 jmpl %g1 + %lo(__sw_hweight64), %g0
49 nop
50ENDPROC(__arch_hweight64)
51EXPORT_SYMBOL(__arch_hweight64)
52 .section .popc_3insn_patch, "ax"
53 .word __arch_hweight64
54 retl
55 popc %o0, %o0
56 nop
57 .previous
1#include <linux/linkage.h>
2#include <asm/export.h>
3
4 .text
5 .align 32
6ENTRY(__arch_hweight8)
7 ba,pt %xcc, __sw_hweight8
8 nop
9 nop
10ENDPROC(__arch_hweight8)
11EXPORT_SYMBOL(__arch_hweight8)
12 .section .popc_3insn_patch, "ax"
13 .word __arch_hweight8
14 sllx %o0, 64-8, %g1
15 retl
16 popc %g1, %o0
17 .previous
18
19ENTRY(__arch_hweight16)
20 ba,pt %xcc, __sw_hweight16
21 nop
22 nop
23ENDPROC(__arch_hweight16)
24EXPORT_SYMBOL(__arch_hweight16)
25 .section .popc_3insn_patch, "ax"
26 .word __arch_hweight16
27 sllx %o0, 64-16, %g1
28 retl
29 popc %g1, %o0
30 .previous
31
32ENTRY(__arch_hweight32)
33 ba,pt %xcc, __sw_hweight32
34 nop
35 nop
36ENDPROC(__arch_hweight32)
37EXPORT_SYMBOL(__arch_hweight32)
38 .section .popc_3insn_patch, "ax"
39 .word __arch_hweight32
40 sllx %o0, 64-32, %g1
41 retl
42 popc %g1, %o0
43 .previous
44
45ENTRY(__arch_hweight64)
46 ba,pt %xcc, __sw_hweight64
47 nop
48 nop
49ENDPROC(__arch_hweight64)
50EXPORT_SYMBOL(__arch_hweight64)
51 .section .popc_3insn_patch, "ax"
52 .word __arch_hweight64
53 retl
54 popc %o0, %o0
55 nop
56 .previous