xref: /linux-3.3/arch/sparc/lib/hweight.S
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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

served by {OpenGrok

Last Index Update: Sat Jul 12 05:15:45 UTC 2025