The branch main has been updated by andrew:

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

commit 63c858a04d56529eddbddf85ad04fc8e99e73762
Author:     Andrew Turner <and...@freebsd.org>
AuthorDate: 2021-01-11 15:43:39 +0000
Commit:     Andrew Turner <and...@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 */
 
_______________________________________________
dev-commits-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all
To unsubscribe, send any mail to "dev-commits-src-all-unsubscr...@freebsd.org"

Reply via email to