52 lines
		
	
	
	
		
			846 B
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
	
		
			846 B
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| 
								 | 
							
								#include <linux/linkage.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.text
							 | 
						||
| 
								 | 
							
									.align	32
							 | 
						||
| 
								 | 
							
								ENTRY(__arch_hweight8)
							 | 
						||
| 
								 | 
							
									ba,pt	%xcc, __sw_hweight8
							 | 
						||
| 
								 | 
							
									 nop
							 | 
						||
| 
								 | 
							
									nop
							 | 
						||
| 
								 | 
							
								ENDPROC(__arch_hweight8)
							 | 
						||
| 
								 | 
							
									.section	.popc_3insn_patch, "ax"
							 | 
						||
| 
								 | 
							
									.word		__arch_hweight8
							 | 
						||
| 
								 | 
							
									sllx		%o0, 64-8, %g1
							 | 
						||
| 
								 | 
							
									retl
							 | 
						||
| 
								 | 
							
									 popc		%g1, %o0
							 | 
						||
| 
								 | 
							
									.previous
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ENTRY(__arch_hweight16)
							 | 
						||
| 
								 | 
							
									ba,pt	%xcc, __sw_hweight16
							 | 
						||
| 
								 | 
							
									 nop
							 | 
						||
| 
								 | 
							
									nop
							 | 
						||
| 
								 | 
							
								ENDPROC(__arch_hweight16)
							 | 
						||
| 
								 | 
							
									.section	.popc_3insn_patch, "ax"
							 | 
						||
| 
								 | 
							
									.word		__arch_hweight16
							 | 
						||
| 
								 | 
							
									sllx		%o0, 64-16, %g1
							 | 
						||
| 
								 | 
							
									retl
							 | 
						||
| 
								 | 
							
									 popc		%g1, %o0
							 | 
						||
| 
								 | 
							
									.previous
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ENTRY(__arch_hweight32)
							 | 
						||
| 
								 | 
							
									ba,pt	%xcc, __sw_hweight32
							 | 
						||
| 
								 | 
							
									 nop
							 | 
						||
| 
								 | 
							
									nop
							 | 
						||
| 
								 | 
							
								ENDPROC(__arch_hweight32)
							 | 
						||
| 
								 | 
							
									.section	.popc_3insn_patch, "ax"
							 | 
						||
| 
								 | 
							
									.word		__arch_hweight32
							 | 
						||
| 
								 | 
							
									sllx		%o0, 64-32, %g1
							 | 
						||
| 
								 | 
							
									retl
							 | 
						||
| 
								 | 
							
									 popc		%g1, %o0
							 | 
						||
| 
								 | 
							
									.previous
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ENTRY(__arch_hweight64)
							 | 
						||
| 
								 | 
							
									ba,pt	%xcc, __sw_hweight64
							 | 
						||
| 
								 | 
							
									 nop
							 | 
						||
| 
								 | 
							
									nop
							 | 
						||
| 
								 | 
							
								ENDPROC(__arch_hweight64)
							 | 
						||
| 
								 | 
							
									.section	.popc_3insn_patch, "ax"
							 | 
						||
| 
								 | 
							
									.word		__arch_hweight64
							 | 
						||
| 
								 | 
							
									retl
							 | 
						||
| 
								 | 
							
									 popc		%o0, %o0
							 | 
						||
| 
								 | 
							
									nop
							 | 
						||
| 
								 | 
							
									.previous
							 |