Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src-draft/trunk]: src/sys/arch/aarch64 Draft aarch64 zero_fpregs.



details:   https://anonhg.NetBSD.org/src-all/rev/8c1e74788957
branches:  trunk
changeset: 934606:8c1e74788957
user:      Taylor R Campbell <riastradh%NetBSD.org@localhost>
date:      Sun Jun 14 15:58:39 2020 +0000

description:
Draft aarch64 zero_fpregs.

Just a series of sad donkeys, with no memory references.

diffstat:

 sys/arch/aarch64/aarch64/cpuswitch.S |  40 ++++++++++++++++++++++++++++++++++++
 sys/arch/aarch64/include/machdep.h   |   1 +
 2 files changed, 41 insertions(+), 0 deletions(-)

diffs (58 lines):

diff -r 1c320bff3ccc -r 8c1e74788957 sys/arch/aarch64/aarch64/cpuswitch.S
--- a/sys/arch/aarch64/aarch64/cpuswitch.S      Thu Jun 04 03:23:00 2020 +0000
+++ b/sys/arch/aarch64/aarch64/cpuswitch.S      Sun Jun 14 15:58:39 2020 +0000
@@ -538,3 +538,43 @@
        str     w9, [x0, #FPREG_FPSR]
        ret
 END(save_fpregs)
+
+ENTRY_NP(zero_fpregs)
+       eor     v0.16b, v0.16b, v0.16b
+       eor     v1.16b, v1.16b, v1.16b
+       eor     v2.16b, v2.16b, v2.16b
+       eor     v3.16b, v3.16b, v3.16b
+       eor     v4.16b, v4.16b, v4.16b
+       eor     v5.16b, v5.16b, v5.16b
+       eor     v6.16b, v6.16b, v6.16b
+       eor     v7.16b, v7.16b, v7.16b
+       eor     v8.16b, v8.16b, v8.16b
+       eor     v9.16b, v9.16b, v9.16b
+       eor     v10.16b, v10.16b, v10.16b
+       eor     v11.16b, v11.16b, v11.16b
+       eor     v12.16b, v12.16b, v12.16b
+       eor     v13.16b, v13.16b, v13.16b
+       eor     v14.16b, v14.16b, v14.16b
+       eor     v15.16b, v15.16b, v15.16b
+       eor     v16.16b, v16.16b, v16.16b
+       eor     v17.16b, v17.16b, v17.16b
+       eor     v18.16b, v18.16b, v18.16b
+       eor     v19.16b, v19.16b, v19.16b
+       eor     v20.16b, v20.16b, v20.16b
+       eor     v21.16b, v21.16b, v21.16b
+       eor     v22.16b, v22.16b, v22.16b
+       eor     v23.16b, v23.16b, v23.16b
+       eor     v24.16b, v24.16b, v24.16b
+       eor     v25.16b, v25.16b, v25.16b
+       eor     v26.16b, v26.16b, v26.16b
+       eor     v27.16b, v27.16b, v27.16b
+       eor     v28.16b, v28.16b, v28.16b
+       eor     v29.16b, v29.16b, v29.16b
+       eor     v30.16b, v30.16b, v30.16b
+       eor     v31.16b, v31.16b, v31.16b
+       eor     x8, x8, x8
+       eor     x9, x9, x9
+       msr     fpcr, x8
+       msr     fpsr, x9
+       ret
+END(zero_fpregs)
diff -r 1c320bff3ccc -r 8c1e74788957 sys/arch/aarch64/include/machdep.h
--- a/sys/arch/aarch64/include/machdep.h        Thu Jun 04 03:23:00 2020 +0000
+++ b/sys/arch/aarch64/include/machdep.h        Sun Jun 14 15:58:39 2020 +0000
@@ -144,6 +144,7 @@
 struct fpreg;
 void load_fpregs(const struct fpreg *);
 void save_fpregs(struct fpreg *);
+void zero_fpregs(void);
 void fpu_kern_enter(void);
 void fpu_kern_leave(void);
 



Home | Main Index | Thread Index | Old Index