* because the distance from here to there depends on where
* the kernel ends up being put.
*/
- mfctr r11
LOAD_HANDLER(r10, slb_miss_realmode)
mtctr r10
bctr
* because the distance from here to there depends on where
* the kernel ends up being put.
*/
- mfctr r11
LOAD_HANDLER(r10, slb_miss_realmode)
mtctr r10
bctr
#ifndef CONFIG_RELOCATABLE
b slb_miss_realmode
#else
- mfctr r11
LOAD_HANDLER(r10, slb_miss_realmode)
mtctr r10
bctr
#ifndef CONFIG_RELOCATABLE
b slb_miss_realmode
#else
- mfctr r11
LOAD_HANDLER(r10, slb_miss_realmode)
mtctr r10
bctr
* procedure.
*/
mflr r10
-#ifdef CONFIG_RELOCATABLE
- mtctr r11
-#endif
-
stw r9,PACA_EXSLB+EX_CCR(r13) /* save CR in exc. frame */
std r10,PACA_EXSLB+EX_LR(r13) /* save LR */
mtcrf 0x01,r9 /* slb_allocate uses cr0 and cr7 */
.machine pop
+ RESTORE_CTR(r9, PACA_EXSLB)
RESTORE_PPR_PACA(PACA_EXSLB, r9)
ld r3,PACA_EXSLB+EX_R3(r13)
ld r9,PACA_EXSLB+EX_R9(r13)