mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-26 19:51:35 +01:00
aarch64 sve: formatting and make .L symbols where possible
This commit is contained in:
@@ -3,11 +3,12 @@
|
|||||||
#include <lkmc.h>
|
#include <lkmc.h>
|
||||||
|
|
||||||
.data
|
.data
|
||||||
x: .double 1.5, 2.5, 3.5, 4.5
|
.align 16
|
||||||
y: .double 5.0, 6.0, 7.0, 8.0
|
x: .double 1.5, 2.5, 3.5, 4.5
|
||||||
|
y: .double 5.0, 6.0, 7.0, 8.0
|
||||||
y_expect: .double 8.0, 11.0, 14.0, 17.0
|
y_expect: .double 8.0, 11.0, 14.0, 17.0
|
||||||
a: .double 2.0
|
a: .double 2.0
|
||||||
n: .word 4
|
n: .word 4
|
||||||
|
|
||||||
LKMC_PROLOGUE
|
LKMC_PROLOGUE
|
||||||
adr x0, x
|
adr x0, x
|
||||||
@@ -22,11 +23,15 @@ LKMC_EPILOGUE
|
|||||||
*
|
*
|
||||||
* Operation:
|
* Operation:
|
||||||
*
|
*
|
||||||
* Y += a * X
|
* ....
|
||||||
|
* Y += a * X + Y
|
||||||
|
* ....
|
||||||
*
|
*
|
||||||
* C signature:
|
* C signature:
|
||||||
*
|
*
|
||||||
* void daxpy(double *x, double *y, double *a, int *n)
|
* ....
|
||||||
|
* void daxpy(double *x, double *y, double a, int n)
|
||||||
|
* ....
|
||||||
*
|
*
|
||||||
* The name "daxpy" comes from LAPACK:
|
* The name "daxpy" comes from LAPACK:
|
||||||
* http://www.netlib.org/lapack/explore-html/de/da4/group__double__blas__level1_ga8f99d6a644d3396aa32db472e0cfc91c.html
|
* http://www.netlib.org/lapack/explore-html/de/da4/group__double__blas__level1_ga8f99d6a644d3396aa32db472e0cfc91c.html
|
||||||
@@ -38,12 +43,12 @@ daxpy:
|
|||||||
mov x4, 0
|
mov x4, 0
|
||||||
whilelt p0.d, x4, x3
|
whilelt p0.d, x4, x3
|
||||||
ld1rd z0.d, p0/z, [x2]
|
ld1rd z0.d, p0/z, [x2]
|
||||||
.loop:
|
.Lloop:
|
||||||
ld1d z1.d, p0/z, [x0, x4, lsl 3]
|
ld1d z1.d, p0/z, [x0, x4, lsl 3]
|
||||||
ld1d z2.d, p0/z, [x1, x4, lsl 3]
|
ld1d z2.d, p0/z, [x1, x4, lsl 3]
|
||||||
fmla z2.d, p0/m, z1.d, z0.d
|
fmla z2.d, p0/m, z1.d, z0.d
|
||||||
st1d z2.d, p0, [x1, x4, lsl 3]
|
st1d z2.d, p0, [x1, x4, lsl 3]
|
||||||
incd x4
|
incd x4
|
||||||
whilelt p0.d, x4, x3
|
whilelt p0.d, x4, x3
|
||||||
b.first .loop
|
b.first .Lloop
|
||||||
ret
|
ret
|
||||||
|
|||||||
Reference in New Issue
Block a user