diff options
Diffstat (limited to 'arch/powerpc/lib/copyuser_power7.S')
| -rw-r--r-- | arch/powerpc/lib/copyuser_power7.S | 35 | 
1 files changed, 2 insertions, 33 deletions
diff --git a/arch/powerpc/lib/copyuser_power7.S b/arch/powerpc/lib/copyuser_power7.S index f9ede7c6606..0d24ff15f5f 100644 --- a/arch/powerpc/lib/copyuser_power7.S +++ b/arch/powerpc/lib/copyuser_power7.S @@ -288,7 +288,7 @@ err1;	stb	r0,0(r3)  	std	r0,16(r1)  	stdu	r1,-STACKFRAMESIZE(r1)  	bl	.enter_vmx_usercopy -	cmpwi	r3,0 +	cmpwi	cr1,r3,0  	ld	r0,STACKFRAMESIZE+16(r1)  	ld	r3,STACKFRAMESIZE+48(r1)  	ld	r4,STACKFRAMESIZE+56(r1) @@ -326,38 +326,7 @@ err1;	stb	r0,0(r3)  	dcbt	r0,r8,0b01010	/* GO */  .machine pop -	/* -	 * We prefetch both the source and destination using enhanced touch -	 * instructions. We use a stream ID of 0 for the load side and -	 * 1 for the store side. -	 */ -	clrrdi	r6,r4,7 -	clrrdi	r9,r3,7 -	ori	r9,r9,1		/* stream=1 */ - -	srdi	r7,r5,7		/* length in cachelines, capped at 0x3FF */ -	cmpldi	cr1,r7,0x3FF -	ble	cr1,1f -	li	r7,0x3FF -1:	lis	r0,0x0E00	/* depth=7 */ -	sldi	r7,r7,7 -	or	r7,r7,r0 -	ori	r10,r7,1	/* stream=1 */ - -	lis	r8,0x8000	/* GO=1 */ -	clrldi	r8,r8,32 - -.machine push -.machine "power4" -	dcbt	r0,r6,0b01000 -	dcbt	r0,r7,0b01010 -	dcbtst	r0,r9,0b01000 -	dcbtst	r0,r10,0b01010 -	eieio -	dcbt	r0,r8,0b01010	/* GO */ -.machine pop - -	beq	.Lunwind_stack_nonvmx_copy +	beq	cr1,.Lunwind_stack_nonvmx_copy  	/*  	 * If source and destination are not relatively aligned we use a  |