diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-11-09 14:59:33 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-11-10 09:58:37 +0100 |
commit | 38a1449fd47be848cc40593abd40262e9ad2030d (patch) | |
tree | e559758984306acb4b4f0e0f88e9a133213557f0 /c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h | |
parent | score: Move _CPU_Get_current_per_CPU_control() (diff) | |
download | rtems-38a1449fd47be848cc40593abd40262e9ad2030d.tar.bz2 |
powerpc: Add _CPU_Get_current_per_CPU_control()
Add _CPU_Get_current_per_CPU_control() on SMP configurations. Use SPRG0
for the current per-CPU control. This reduces the code size by three
instructions and is slightly faster.
Update #2805.
Diffstat (limited to 'c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h')
-rw-r--r-- | c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h b/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h index ce4068fdd3..22cf46bea3 100644 --- a/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h +++ b/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h @@ -936,13 +936,20 @@ void ShowBATS(void); mtmsr \level .endm -.macro GET_SELF_CPU_CONTROL reg #if defined(RTEMS_SMP) +.macro SET_SELF_CPU_CONTROL reg /* Use Book E Processor ID Register (PIR) */ mfspr \reg, 286 slwi \reg, \reg, PER_CPU_CONTROL_SIZE_LOG2 addis \reg, \reg, _Per_CPU_Information@ha addi \reg, \reg, _Per_CPU_Information@l + mtspr PPC_PER_CPU_CONTROL_REGISTER, \reg +.endm +#endif + +.macro GET_SELF_CPU_CONTROL reg +#if defined(RTEMS_SMP) + mfspr \reg, PPC_PER_CPU_CONTROL_REGISTER #else lis \reg, _Per_CPU_Information@h ori \reg, \reg, _Per_CPU_Information@l |