aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc/kernel/pacache.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/parisc/kernel/pacache.S')
-rw-r--r--arch/parisc/kernel/pacache.S30
1 files changed, 16 insertions, 14 deletions
diff --git a/arch/parisc/kernel/pacache.S b/arch/parisc/kernel/pacache.S
index 71ade44c4618..4a7d9c8903f4 100644
--- a/arch/parisc/kernel/pacache.S
+++ b/arch/parisc/kernel/pacache.S
@@ -26,7 +26,7 @@
26 * can be used. 26 * can be used.
27 */ 27 */
28 28
29#ifdef __LP64__ 29#ifdef CONFIG_64BIT
30#define ADDIB addib,* 30#define ADDIB addib,*
31#define CMPB cmpb,* 31#define CMPB cmpb,*
32#define ANDCM andcm,* 32#define ANDCM andcm,*
@@ -40,6 +40,8 @@
40 .level 2.0 40 .level 2.0
41#endif 41#endif
42 42
43#include <linux/config.h>
44
43#include <asm/psw.h> 45#include <asm/psw.h>
44#include <asm/assembly.h> 46#include <asm/assembly.h>
45#include <asm/pgtable.h> 47#include <asm/pgtable.h>
@@ -294,7 +296,7 @@ copy_user_page_asm:
294 .callinfo NO_CALLS 296 .callinfo NO_CALLS
295 .entry 297 .entry
296 298
297#ifdef __LP64__ 299#ifdef CONFIG_64BIT
298 /* PA8x00 CPUs can consume 2 loads or 1 store per cycle. 300 /* PA8x00 CPUs can consume 2 loads or 1 store per cycle.
299 * Unroll the loop by hand and arrange insn appropriately. 301 * Unroll the loop by hand and arrange insn appropriately.
300 * GCC probably can do this just as well. 302 * GCC probably can do this just as well.
@@ -454,7 +456,7 @@ copy_user_page_asm:
454 sub %r25, %r1, %r23 /* move physical addr into non shadowed reg */ 456 sub %r25, %r1, %r23 /* move physical addr into non shadowed reg */
455 457
456 ldil L%(TMPALIAS_MAP_START), %r28 458 ldil L%(TMPALIAS_MAP_START), %r28
457#ifdef __LP64__ 459#ifdef CONFIG_64BIT
458 extrd,u %r26,56,32, %r26 /* convert phys addr to tlb insert format */ 460 extrd,u %r26,56,32, %r26 /* convert phys addr to tlb insert format */
459 extrd,u %r23,56,32, %r23 /* convert phys addr to tlb insert format */ 461 extrd,u %r23,56,32, %r23 /* convert phys addr to tlb insert format */
460 depd %r24,63,22, %r28 /* Form aliased virtual address 'to' */ 462 depd %r24,63,22, %r28 /* Form aliased virtual address 'to' */
@@ -541,7 +543,7 @@ __clear_user_page_asm:
541 tophys_r1 %r26 543 tophys_r1 %r26
542 544
543 ldil L%(TMPALIAS_MAP_START), %r28 545 ldil L%(TMPALIAS_MAP_START), %r28
544#ifdef __LP64__ 546#ifdef CONFIG_64BIT
545#if (TMPALIAS_MAP_START >= 0x80000000) 547#if (TMPALIAS_MAP_START >= 0x80000000)
546 depdi 0, 31,32, %r28 /* clear any sign extension */ 548 depdi 0, 31,32, %r28 /* clear any sign extension */
547#endif 549#endif
@@ -558,7 +560,7 @@ __clear_user_page_asm:
558 560
559 pdtlb 0(%r28) 561 pdtlb 0(%r28)
560 562
561#ifdef __LP64__ 563#ifdef CONFIG_64BIT
562 ldi 32, %r1 /* PAGE_SIZE/128 == 32 */ 564 ldi 32, %r1 /* PAGE_SIZE/128 == 32 */
563 565
564 /* PREFETCH (Write) has not (yet) been proven to help here */ 566 /* PREFETCH (Write) has not (yet) been proven to help here */
@@ -583,7 +585,7 @@ __clear_user_page_asm:
583 ADDIB> -1, %r1, 1b 585 ADDIB> -1, %r1, 1b
584 ldo 128(%r28), %r28 586 ldo 128(%r28), %r28
585 587
586#else /* ! __LP64 */ 588#else /* ! CONFIG_64BIT */
587 589
588 ldi 64, %r1 /* PAGE_SIZE/64 == 64 */ 590 ldi 64, %r1 /* PAGE_SIZE/64 == 64 */
589 591
@@ -606,7 +608,7 @@ __clear_user_page_asm:
606 stw %r0, 60(%r28) 608 stw %r0, 60(%r28)
607 ADDIB> -1, %r1, 1b 609 ADDIB> -1, %r1, 1b
608 ldo 64(%r28), %r28 610 ldo 64(%r28), %r28
609#endif /* __LP64 */ 611#endif /* CONFIG_64BIT */
610 612
611 bv %r0(%r2) 613 bv %r0(%r2)
612 nop 614 nop
@@ -624,7 +626,7 @@ flush_kernel_dcache_page:
624 ldil L%dcache_stride, %r1 626 ldil L%dcache_stride, %r1
625 ldw R%dcache_stride(%r1), %r23 627 ldw R%dcache_stride(%r1), %r23
626 628
627#ifdef __LP64__ 629#ifdef CONFIG_64BIT
628 depdi,z 1, 63-PAGE_SHIFT,1, %r25 630 depdi,z 1, 63-PAGE_SHIFT,1, %r25
629#else 631#else
630 depwi,z 1, 31-PAGE_SHIFT,1, %r25 632 depwi,z 1, 31-PAGE_SHIFT,1, %r25
@@ -668,7 +670,7 @@ flush_user_dcache_page:
668 ldil L%dcache_stride, %r1 670 ldil L%dcache_stride, %r1
669 ldw R%dcache_stride(%r1), %r23 671 ldw R%dcache_stride(%r1), %r23
670 672
671#ifdef __LP64__ 673#ifdef CONFIG_64BIT
672 depdi,z 1,63-PAGE_SHIFT,1, %r25 674 depdi,z 1,63-PAGE_SHIFT,1, %r25
673#else 675#else
674 depwi,z 1,31-PAGE_SHIFT,1, %r25 676 depwi,z 1,31-PAGE_SHIFT,1, %r25
@@ -712,7 +714,7 @@ flush_user_icache_page:
712 ldil L%dcache_stride, %r1 714 ldil L%dcache_stride, %r1
713 ldw R%dcache_stride(%r1), %r23 715 ldw R%dcache_stride(%r1), %r23
714 716
715#ifdef __LP64__ 717#ifdef CONFIG_64BIT
716 depdi,z 1, 63-PAGE_SHIFT,1, %r25 718 depdi,z 1, 63-PAGE_SHIFT,1, %r25
717#else 719#else
718 depwi,z 1, 31-PAGE_SHIFT,1, %r25 720 depwi,z 1, 31-PAGE_SHIFT,1, %r25
@@ -757,7 +759,7 @@ purge_kernel_dcache_page:
757 ldil L%dcache_stride, %r1 759 ldil L%dcache_stride, %r1
758 ldw R%dcache_stride(%r1), %r23 760 ldw R%dcache_stride(%r1), %r23
759 761
760#ifdef __LP64__ 762#ifdef CONFIG_64BIT
761 depdi,z 1, 63-PAGE_SHIFT,1, %r25 763 depdi,z 1, 63-PAGE_SHIFT,1, %r25
762#else 764#else
763 depwi,z 1, 31-PAGE_SHIFT,1, %r25 765 depwi,z 1, 31-PAGE_SHIFT,1, %r25
@@ -805,7 +807,7 @@ flush_alias_page:
805 tophys_r1 %r26 807 tophys_r1 %r26
806 808
807 ldil L%(TMPALIAS_MAP_START), %r28 809 ldil L%(TMPALIAS_MAP_START), %r28
808#ifdef __LP64__ 810#ifdef CONFIG_64BIT
809 extrd,u %r26, 56,32, %r26 /* convert phys addr to tlb insert format */ 811 extrd,u %r26, 56,32, %r26 /* convert phys addr to tlb insert format */
810 depd %r25, 63,22, %r28 /* Form aliased virtual address 'to' */ 812 depd %r25, 63,22, %r28 /* Form aliased virtual address 'to' */
811 depdi 0, 63,12, %r28 /* Clear any offset bits */ 813 depdi 0, 63,12, %r28 /* Clear any offset bits */
@@ -822,7 +824,7 @@ flush_alias_page:
822 ldil L%dcache_stride, %r1 824 ldil L%dcache_stride, %r1
823 ldw R%dcache_stride(%r1), %r23 825 ldw R%dcache_stride(%r1), %r23
824 826
825#ifdef __LP64__ 827#ifdef CONFIG_64BIT
826 depdi,z 1, 63-PAGE_SHIFT,1, %r29 828 depdi,z 1, 63-PAGE_SHIFT,1, %r29
827#else 829#else
828 depwi,z 1, 31-PAGE_SHIFT,1, %r29 830 depwi,z 1, 31-PAGE_SHIFT,1, %r29
@@ -933,7 +935,7 @@ flush_kernel_icache_page:
933 ldil L%icache_stride, %r1 935 ldil L%icache_stride, %r1
934 ldw R%icache_stride(%r1), %r23 936 ldw R%icache_stride(%r1), %r23
935 937
936#ifdef __LP64__ 938#ifdef CONFIG_64BIT
937 depdi,z 1, 63-PAGE_SHIFT,1, %r25 939 depdi,z 1, 63-PAGE_SHIFT,1, %r25
938#else 940#else
939 depwi,z 1, 31-PAGE_SHIFT,1, %r25 941 depwi,z 1, 31-PAGE_SHIFT,1, %r25