Root/arch/sparc/lib/hweight.S

Source at commit 0de2b2b3be81048189a32f7a3d3ba0ba9ec817b6 created 11 years 11 months ago.
By Maarten ter Huurne, MIPS: JZ4740: Fixed value for round robin constant.
1#include <linux/linkage.h>
2
3    .text
4    .align 32
5ENTRY(__arch_hweight8)
6    ba,pt %xcc, __sw_hweight8
7     nop
8    nop
9ENDPROC(__arch_hweight8)
10    .section .popc_3insn_patch, "ax"
11    .word __arch_hweight8
12    sllx %o0, 64-8, %g1
13    retl
14     popc %g1, %o0
15    .previous
16
17ENTRY(__arch_hweight16)
18    ba,pt %xcc, __sw_hweight16
19     nop
20    nop
21ENDPROC(__arch_hweight16)
22    .section .popc_3insn_patch, "ax"
23    .word __arch_hweight16
24    sllx %o0, 64-16, %g1
25    retl
26     popc %g1, %o0
27    .previous
28
29ENTRY(__arch_hweight32)
30    ba,pt %xcc, __sw_hweight32
31     nop
32    nop
33ENDPROC(__arch_hweight32)
34    .section .popc_3insn_patch, "ax"
35    .word __arch_hweight32
36    sllx %o0, 64-32, %g1
37    retl
38     popc %g1, %o0
39    .previous
40
41ENTRY(__arch_hweight64)
42    ba,pt %xcc, __sw_hweight64
43     nop
44    nop
45ENDPROC(__arch_hweight64)
46    .section .popc_3insn_patch, "ax"
47    .word __arch_hweight64
48    retl
49     popc %o0, %o0
50    nop
51    .previous
52

Archive Download this file



interactive