powerpc/mm: Remove unused register usage in SW TLB miss handling

Long ago we had some code that actually used the CTR in the SW TLB
miss handlers (603/e300).  Since we don't use it no reason to waste
cycles saving it off and restoring it (we actually didn't restore it
in the fast path case).

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Kumar Gala 2009-03-19 03:55:39 +00:00 коммит произвёл Benjamin Herrenschmidt
Родитель 4ae0ff606e
Коммит 00fcb14703
1 изменённых файлов: 3 добавлений и 8 удалений

Просмотреть файл

@ -475,12 +475,11 @@ SystemCall:
. = 0x1000 . = 0x1000
InstructionTLBMiss: InstructionTLBMiss:
/* /*
* r0: stored ctr * r0: scratch
* r1: linux style pte ( later becomes ppc hardware pte ) * r1: linux style pte ( later becomes ppc hardware pte )
* r2: ptr to linux-style pte * r2: ptr to linux-style pte
* r3: scratch * r3: scratch
*/ */
mfctr r0
/* Get PTE (linux-style) and check access */ /* Get PTE (linux-style) and check access */
mfspr r3,SPRN_IMISS mfspr r3,SPRN_IMISS
lis r1,PAGE_OFFSET@h /* check if kernel address */ lis r1,PAGE_OFFSET@h /* check if kernel address */
@ -531,7 +530,6 @@ InstructionAddressInvalid:
addis r1,r1,0x2000 addis r1,r1,0x2000
mtspr SPRN_DSISR,r1 /* (shouldn't be needed) */ mtspr SPRN_DSISR,r1 /* (shouldn't be needed) */
mtctr r0 /* Restore CTR */
andi. r2,r3,0xFFFF /* Clear upper bits of SRR1 */ andi. r2,r3,0xFFFF /* Clear upper bits of SRR1 */
or r2,r2,r1 or r2,r2,r1
mtspr SPRN_SRR1,r2 mtspr SPRN_SRR1,r2
@ -552,12 +550,11 @@ InstructionAddressInvalid:
. = 0x1100 . = 0x1100
DataLoadTLBMiss: DataLoadTLBMiss:
/* /*
* r0: stored ctr * r0: scratch
* r1: linux style pte ( later becomes ppc hardware pte ) * r1: linux style pte ( later becomes ppc hardware pte )
* r2: ptr to linux-style pte * r2: ptr to linux-style pte
* r3: scratch * r3: scratch
*/ */
mfctr r0
/* Get PTE (linux-style) and check access */ /* Get PTE (linux-style) and check access */
mfspr r3,SPRN_DMISS mfspr r3,SPRN_DMISS
lis r1,PAGE_OFFSET@h /* check if kernel address */ lis r1,PAGE_OFFSET@h /* check if kernel address */
@ -607,7 +604,6 @@ DataAddressInvalid:
rlwinm r1,r3,9,6,6 /* Get load/store bit */ rlwinm r1,r3,9,6,6 /* Get load/store bit */
addis r1,r1,0x2000 addis r1,r1,0x2000
mtspr SPRN_DSISR,r1 mtspr SPRN_DSISR,r1
mtctr r0 /* Restore CTR */
andi. r2,r3,0xFFFF /* Clear upper bits of SRR1 */ andi. r2,r3,0xFFFF /* Clear upper bits of SRR1 */
mtspr SPRN_SRR1,r2 mtspr SPRN_SRR1,r2
mfspr r1,SPRN_DMISS /* Get failing address */ mfspr r1,SPRN_DMISS /* Get failing address */
@ -627,12 +623,11 @@ DataAddressInvalid:
. = 0x1200 . = 0x1200
DataStoreTLBMiss: DataStoreTLBMiss:
/* /*
* r0: stored ctr * r0: scratch
* r1: linux style pte ( later becomes ppc hardware pte ) * r1: linux style pte ( later becomes ppc hardware pte )
* r2: ptr to linux-style pte * r2: ptr to linux-style pte
* r3: scratch * r3: scratch
*/ */
mfctr r0
/* Get PTE (linux-style) and check access */ /* Get PTE (linux-style) and check access */
mfspr r3,SPRN_DMISS mfspr r3,SPRN_DMISS
lis r1,PAGE_OFFSET@h /* check if kernel address */ lis r1,PAGE_OFFSET@h /* check if kernel address */