aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/hash_low_32.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/mm/hash_low_32.S')
-rw-r--r--arch/powerpc/mm/hash_low_32.S34
1 files changed, 0 insertions, 34 deletions
diff --git a/arch/powerpc/mm/hash_low_32.S b/arch/powerpc/mm/hash_low_32.S
index ea469eefa146..94255beeecd3 100644
--- a/arch/powerpc/mm/hash_low_32.S
+++ b/arch/powerpc/mm/hash_low_32.S
@@ -74,12 +74,6 @@ _GLOBAL(hash_page_sync)
74 */ 74 */
75 .text 75 .text
76_GLOBAL(hash_page) 76_GLOBAL(hash_page)
77#ifdef CONFIG_PPC64BRIDGE
78 mfmsr r0
79 clrldi r0,r0,1 /* make sure it's in 32-bit mode */
80 MTMSRD(r0)
81 isync
82#endif
83 tophys(r7,0) /* gets -KERNELBASE into r7 */ 77 tophys(r7,0) /* gets -KERNELBASE into r7 */
84#ifdef CONFIG_SMP 78#ifdef CONFIG_SMP
85 addis r8,r7,mmu_hash_lock@h 79 addis r8,r7,mmu_hash_lock@h
@@ -285,7 +279,6 @@ Hash_base = 0xc0180000
285Hash_bits = 12 /* e.g. 256kB hash table */ 279Hash_bits = 12 /* e.g. 256kB hash table */
286Hash_msk = (((1 << Hash_bits) - 1) * 64) 280Hash_msk = (((1 << Hash_bits) - 1) * 64)
287 281
288#ifndef CONFIG_PPC64BRIDGE
289/* defines for the PTE format for 32-bit PPCs */ 282/* defines for the PTE format for 32-bit PPCs */
290#define PTE_SIZE 8 283#define PTE_SIZE 8
291#define PTEG_SIZE 64 284#define PTEG_SIZE 64
@@ -299,21 +292,6 @@ Hash_msk = (((1 << Hash_bits) - 1) * 64)
299#define SET_V(r) oris r,r,PTE_V@h 292#define SET_V(r) oris r,r,PTE_V@h
300#define CLR_V(r,t) rlwinm r,r,0,1,31 293#define CLR_V(r,t) rlwinm r,r,0,1,31
301 294
302#else
303/* defines for the PTE format for 64-bit PPCs */
304#define PTE_SIZE 16
305#define PTEG_SIZE 128
306#define LG_PTEG_SIZE 7
307#define LDPTEu ldu
308#define STPTE std
309#define CMPPTE cmpd
310#define PTE_H 2
311#define PTE_V 1
312#define TST_V(r) andi. r,r,PTE_V
313#define SET_V(r) ori r,r,PTE_V
314#define CLR_V(r,t) li t,PTE_V; andc r,r,t
315#endif /* CONFIG_PPC64BRIDGE */
316
317#define HASH_LEFT 31-(LG_PTEG_SIZE+Hash_bits-1) 295#define HASH_LEFT 31-(LG_PTEG_SIZE+Hash_bits-1)
318#define HASH_RIGHT 31-LG_PTEG_SIZE 296#define HASH_RIGHT 31-LG_PTEG_SIZE
319 297
@@ -331,14 +309,8 @@ BEGIN_FTR_SECTION
331END_FTR_SECTION_IFSET(CPU_FTR_NEED_COHERENT) 309END_FTR_SECTION_IFSET(CPU_FTR_NEED_COHERENT)
332 310
333 /* Construct the high word of the PPC-style PTE (r5) */ 311 /* Construct the high word of the PPC-style PTE (r5) */
334#ifndef CONFIG_PPC64BRIDGE
335 rlwinm r5,r3,7,1,24 /* put VSID in 0x7fffff80 bits */ 312 rlwinm r5,r3,7,1,24 /* put VSID in 0x7fffff80 bits */
336 rlwimi r5,r4,10,26,31 /* put in API (abbrev page index) */ 313 rlwimi r5,r4,10,26,31 /* put in API (abbrev page index) */
337#else /* CONFIG_PPC64BRIDGE */
338 clrlwi r3,r3,8 /* reduce vsid to 24 bits */
339 sldi r5,r3,12 /* shift vsid into position */
340 rlwimi r5,r4,16,20,24 /* put in API (abbrev page index) */
341#endif /* CONFIG_PPC64BRIDGE */
342 SET_V(r5) /* set V (valid) bit */ 314 SET_V(r5) /* set V (valid) bit */
343 315
344 /* Get the address of the primary PTE group in the hash table (r3) */ 316 /* Get the address of the primary PTE group in the hash table (r3) */
@@ -516,14 +488,8 @@ _GLOBAL(flush_hash_pages)
516 add r3,r3,r0 /* note code below trims to 24 bits */ 488 add r3,r3,r0 /* note code below trims to 24 bits */
517 489
518 /* Construct the high word of the PPC-style PTE (r11) */ 490 /* Construct the high word of the PPC-style PTE (r11) */
519#ifndef CONFIG_PPC64BRIDGE
520 rlwinm r11,r3,7,1,24 /* put VSID in 0x7fffff80 bits */ 491 rlwinm r11,r3,7,1,24 /* put VSID in 0x7fffff80 bits */
521 rlwimi r11,r4,10,26,31 /* put in API (abbrev page index) */ 492 rlwimi r11,r4,10,26,31 /* put in API (abbrev page index) */
522#else /* CONFIG_PPC64BRIDGE */
523 clrlwi r3,r3,8 /* reduce vsid to 24 bits */
524 sldi r11,r3,12 /* shift vsid into position */
525 rlwimi r11,r4,16,20,24 /* put in API (abbrev page index) */
526#endif /* CONFIG_PPC64BRIDGE */
527 SET_V(r11) /* set V (valid) bit */ 493 SET_V(r11) /* set V (valid) bit */
528 494
529#ifdef CONFIG_SMP 495#ifdef CONFIG_SMP