diff options
Diffstat (limited to 'arch/parisc/kernel/pacache.S')
| -rw-r--r-- | arch/parisc/kernel/pacache.S | 38 | 
1 files changed, 20 insertions, 18 deletions
diff --git a/arch/parisc/kernel/pacache.S b/arch/parisc/kernel/pacache.S index 93ff3d90edd..5d7218ad885 100644 --- a/arch/parisc/kernel/pacache.S +++ b/arch/parisc/kernel/pacache.S @@ -692,7 +692,7 @@ ENTRY(flush_icache_page_asm)  	/* Purge any old translation */ -	pitlb		(%sr0,%r28) +	pitlb		(%sr4,%r28)  	ldil		L%icache_stride, %r1  	ldw		R%icache_stride(%r1), %r1 @@ -706,27 +706,29 @@ ENTRY(flush_icache_page_asm)  	sub		%r25, %r1, %r25 -1:      fic,m		%r1(%r28) -	fic,m		%r1(%r28) -	fic,m		%r1(%r28) -	fic,m		%r1(%r28) -	fic,m		%r1(%r28) -	fic,m		%r1(%r28) -	fic,m		%r1(%r28) -	fic,m		%r1(%r28) -	fic,m		%r1(%r28) -	fic,m		%r1(%r28) -	fic,m		%r1(%r28) -	fic,m		%r1(%r28) -	fic,m		%r1(%r28) -	fic,m		%r1(%r28) -	fic,m		%r1(%r28) +	/* fic only has the type 26 form on PA1.1, requiring an +	 * explicit space specification, so use %sr4 */ +1:      fic,m		%r1(%sr4,%r28) +	fic,m		%r1(%sr4,%r28) +	fic,m		%r1(%sr4,%r28) +	fic,m		%r1(%sr4,%r28) +	fic,m		%r1(%sr4,%r28) +	fic,m		%r1(%sr4,%r28) +	fic,m		%r1(%sr4,%r28) +	fic,m		%r1(%sr4,%r28) +	fic,m		%r1(%sr4,%r28) +	fic,m		%r1(%sr4,%r28) +	fic,m		%r1(%sr4,%r28) +	fic,m		%r1(%sr4,%r28) +	fic,m		%r1(%sr4,%r28) +	fic,m		%r1(%sr4,%r28) +	fic,m		%r1(%sr4,%r28)  	cmpb,COND(<<)		%r28, %r25,1b -	fic,m		%r1(%r28) +	fic,m		%r1(%sr4,%r28)  	sync  	bv		%r0(%r2) -	pitlb		(%sr0,%r25) +	pitlb		(%sr4,%r25)  	.exit  	.procend  |