raid: Add aarch64 NEON implementation

Change-Id: I6ad471d3b22a87bfa7e216713e04afa990a90edb
Signed-off-by: Yibo Cai <yibo.cai@arm.com>
This commit is contained in:
Yibo Cai
2019-01-17 10:15:38 +08:00
committed by Greg Tucker
parent 7a44098a98
commit 19fb012e81
8 changed files with 1111 additions and 1 deletions

47
include/multibinary_arm.h Normal file
View File

@@ -0,0 +1,47 @@
/* Copyright (c) 2018, Arm Limited. */
/* TODO: support SVE */
.macro mbin_dispatch name:req, func_neon:req, func_sve
.section .data
.balign 8
\name\()_dispatched:
.quad \name\()_dispatch_init
.text
.global \name
\name\():
adrp x9, \name\()_dispatched
ldr x10, [x9, :lo12:\name\()_dispatched]
br x10
\name\()_dispatch_init:
add x9, x9, :lo12:\name\()_dispatched
adrp x10, \func_neon
add x10, x10, :lo12:\func_neon
str x10, [x9]
br x10
.endm
#if 0
Macro expanded: mbin_dispatch xor_gen, xor_gen_neon
.section .data
.balign 8
xor_gen_dispatched:
.quad xor_gen_dispatch_init
.text
.global xor_gen
xor_gen:
adrp x9, xor_gen_dispatched
ldr x10, [x9, :lo12:xor_gen_dispatched]
br x10
xor_gen_dispatch_init:
add x9, x9, :lo12:xor_gen_dispatched
adrp x10, xor_gen_neon
add x10, x10, :lo12:xor_gen_neon
str x10, [x9]
br x10
#endif