git: 63c858a04d56 - main - Switch the arm64 pcpu to a global register variable

Andrew Turner andrew at FreeBSD.org
Wed Jan 13 16:42:52 UTC 2021


The branch main has been updated by andrew:

URL: https://cgit.FreeBSD.org/src/commit/?id=63c858a04d56529eddbddf85ad04fc8e99e73762

commit 63c858a04d56529eddbddf85ad04fc8e99e73762
Author:     Andrew Turner <andrew at FreeBSD.org>
AuthorDate: 2021-01-11 15:43:39 +0000
Commit:     Andrew Turner <andrew at FreeBSD.org>
CommitDate: 2021-01-13 16:36:52 +0000

    Switch the arm64 pcpu to a global register variable
    
    This removes an unneeded instruction to move the pointer from x18 to a
    temporary register.
    
    Reviewed by:    emaste
    Sponsored by:   Innovate UK
    Differential Revision:  https://reviews.freebsd.org/D26971
---
 sys/arm64/include/pcpu.h | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/sys/arm64/include/pcpu.h b/sys/arm64/include/pcpu.h
index a520cfc7df56..ce4dc46e1609 100644
--- a/sys/arm64/include/pcpu.h
+++ b/sys/arm64/include/pcpu.h
@@ -56,14 +56,9 @@ struct debug_monitor_state;
 struct pcb;
 struct pcpu;
 
-static inline struct pcpu *
-get_pcpu(void)
-{
-	struct pcpu *pcpu;
+register struct pcpu *pcpup __asm ("x18");
 
-	__asm __volatile("mov	%0, x18" : "=&r"(pcpu));
-	return (pcpu);
-}
+#define	get_pcpu()	pcpup
 
 static inline struct thread *
 get_curthread(void)
@@ -76,11 +71,11 @@ get_curthread(void)
 
 #define	curthread get_curthread()
 
-#define	PCPU_GET(member)	(get_pcpu()->pc_ ## member)
-#define	PCPU_ADD(member, value)	(get_pcpu()->pc_ ## member += (value))
+#define	PCPU_GET(member)	(pcpup->pc_ ## member)
+#define	PCPU_ADD(member, value)	(pcpup->pc_ ## member += (value))
 #define	PCPU_INC(member)	PCPU_ADD(member, 1)
-#define	PCPU_PTR(member)	(&get_pcpu()->pc_ ## member)
-#define	PCPU_SET(member,value)	(get_pcpu()->pc_ ## member = (value))
+#define	PCPU_PTR(member)	(&pcpup->pc_ ## member)
+#define	PCPU_SET(member,value)	(pcpup->pc_ ## member = (value))
 
 #endif	/* _KERNEL */
 


More information about the dev-commits-src-main mailing list