mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.2 KiB
57 lines
1.2 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#include <linux/linkage.h> |
|
#include <asm/export.h> |
|
|
|
.text |
|
.align 32 |
|
ENTRY(__arch_hweight8) |
|
sethi %hi(__sw_hweight8), %g1 |
|
jmpl %g1 + %lo(__sw_hweight8), %g0 |
|
nop |
|
ENDPROC(__arch_hweight8) |
|
EXPORT_SYMBOL(__arch_hweight8) |
|
.section .popc_3insn_patch, "ax" |
|
.word __arch_hweight8 |
|
sllx %o0, 64-8, %g1 |
|
retl |
|
popc %g1, %o0 |
|
.previous |
|
|
|
ENTRY(__arch_hweight16) |
|
sethi %hi(__sw_hweight16), %g1 |
|
jmpl %g1 + %lo(__sw_hweight16), %g0 |
|
nop |
|
ENDPROC(__arch_hweight16) |
|
EXPORT_SYMBOL(__arch_hweight16) |
|
.section .popc_3insn_patch, "ax" |
|
.word __arch_hweight16 |
|
sllx %o0, 64-16, %g1 |
|
retl |
|
popc %g1, %o0 |
|
.previous |
|
|
|
ENTRY(__arch_hweight32) |
|
sethi %hi(__sw_hweight32), %g1 |
|
jmpl %g1 + %lo(__sw_hweight32), %g0 |
|
nop |
|
ENDPROC(__arch_hweight32) |
|
EXPORT_SYMBOL(__arch_hweight32) |
|
.section .popc_3insn_patch, "ax" |
|
.word __arch_hweight32 |
|
sllx %o0, 64-32, %g1 |
|
retl |
|
popc %g1, %o0 |
|
.previous |
|
|
|
ENTRY(__arch_hweight64) |
|
sethi %hi(__sw_hweight64), %g1 |
|
jmpl %g1 + %lo(__sw_hweight64), %g0 |
|
nop |
|
ENDPROC(__arch_hweight64) |
|
EXPORT_SYMBOL(__arch_hweight64) |
|
.section .popc_3insn_patch, "ax" |
|
.word __arch_hweight64 |
|
retl |
|
popc %o0, %o0 |
|
nop |
|
.previous
|
|
|