powerpc/64: optimise LOAD_REG_IMMEDIATE_SYM()
Optimise LOAD_REG_IMMEDIATE_SYM() using a temporary register to parallelise operations. It reduces the path from 5 to 3 instructions. Suggested-by: Segher Boessenkool <segher@kernel.crashing.org> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/bad41ed02531bb0382420cbab50a0d7153b71767.1566311636.git.christophe.leroy@c-s.fr
This commit is contained in:

committed by
Michael Ellerman

parent
ba18025fb0
commit
d7fb5b18a5
@@ -750,12 +750,14 @@ END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
|
||||
ld r15,PACATOC(r13)
|
||||
ld r14,interrupt_base_book3e@got(r15)
|
||||
ld r15,__end_interrupts@got(r15)
|
||||
#else
|
||||
LOAD_REG_IMMEDIATE_SYM(r14,interrupt_base_book3e)
|
||||
LOAD_REG_IMMEDIATE_SYM(r15,__end_interrupts)
|
||||
#endif
|
||||
cmpld cr0,r10,r14
|
||||
cmpld cr1,r10,r15
|
||||
#else
|
||||
LOAD_REG_IMMEDIATE_SYM(r14, r15, interrupt_base_book3e)
|
||||
cmpld cr0, r10, r14
|
||||
LOAD_REG_IMMEDIATE_SYM(r14, r15, __end_interrupts)
|
||||
cmpld cr1, r10, r14
|
||||
#endif
|
||||
blt+ cr0,1f
|
||||
bge+ cr1,1f
|
||||
|
||||
@@ -820,12 +822,14 @@ kernel_dbg_exc:
|
||||
ld r15,PACATOC(r13)
|
||||
ld r14,interrupt_base_book3e@got(r15)
|
||||
ld r15,__end_interrupts@got(r15)
|
||||
#else
|
||||
LOAD_REG_IMMEDIATE_SYM(r14,interrupt_base_book3e)
|
||||
LOAD_REG_IMMEDIATE_SYM(r15,__end_interrupts)
|
||||
#endif
|
||||
cmpld cr0,r10,r14
|
||||
cmpld cr1,r10,r15
|
||||
#else
|
||||
LOAD_REG_IMMEDIATE_SYM(r14, r15, interrupt_base_book3e)
|
||||
cmpld cr0, r10, r14
|
||||
LOAD_REG_IMMEDIATE_SYM(r14, r15,__end_interrupts)
|
||||
cmpld cr1, r10, r14
|
||||
#endif
|
||||
blt+ cr0,1f
|
||||
bge+ cr1,1f
|
||||
|
||||
@@ -1449,7 +1453,7 @@ a2_tlbinit_code_start:
|
||||
a2_tlbinit_after_linear_map:
|
||||
|
||||
/* Now we branch the new virtual address mapped by this entry */
|
||||
LOAD_REG_IMMEDIATE_SYM(r3,1f)
|
||||
LOAD_REG_IMMEDIATE_SYM(r3, r5, 1f)
|
||||
mtctr r3
|
||||
bctr
|
||||
|
||||
|
Reference in New Issue
Block a user