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
This commit is contained in:
parent
594389d1de
commit
63c858a04d
@ -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 */
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user