diff options
| author | Catalin Marinas <catalin.marinas@arm.com> | 2009-07-24 12:32:57 +0100 | 
|---|---|---|
| committer | Catalin Marinas <catalin.marinas@arm.com> | 2009-07-24 12:32:57 +0100 | 
| commit | 8b592783a2e8b7721a99730bd549aab5208f36af (patch) | |
| tree | 468636a17d31f6a29287240c63234e739eabf666 /arch/arm/lib/clear_user.S | |
| parent | 347c8b70b1d5256e445e54e736f88d21877616cf (diff) | |
| download | olio-linux-3.10-8b592783a2e8b7721a99730bd549aab5208f36af.tar.xz olio-linux-3.10-8b592783a2e8b7721a99730bd549aab5208f36af.zip  | |
Thumb-2: Implement the unified arch/arm/lib functions
This patch adds the ARM/Thumb-2 unified support for the arch/arm/lib/*
files.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm/lib/clear_user.S')
| -rw-r--r-- | arch/arm/lib/clear_user.S | 15 | 
1 files changed, 7 insertions, 8 deletions
diff --git a/arch/arm/lib/clear_user.S b/arch/arm/lib/clear_user.S index 844f56785eb..1279abd8b88 100644 --- a/arch/arm/lib/clear_user.S +++ b/arch/arm/lib/clear_user.S @@ -27,21 +27,20 @@ WEAK(__clear_user)  		ands	ip, r0, #3  		beq	1f  		cmp	ip, #2 -USER(		strbt	r2, [r0], #1) -USER(		strlebt	r2, [r0], #1) -USER(		strltbt	r2, [r0], #1) +		strusr	r2, r0, 1 +		strusr	r2, r0, 1, le +		strusr	r2, r0, 1, lt  		rsb	ip, ip, #4  		sub	r1, r1, ip		@  7  6  5  4  3  2  1  1:		subs	r1, r1, #8		@ -1 -2 -3 -4 -5 -6 -7 -USER(		strplt	r2, [r0], #4) -USER(		strplt	r2, [r0], #4) +		strusr	r2, r0, 4, pl, rept=2  		bpl	1b  		adds	r1, r1, #4		@  3  2  1  0 -1 -2 -3 -USER(		strplt	r2, [r0], #4) +		strusr	r2, r0, 4, pl  2:		tst	r1, #2			@ 1x 1x 0x 0x 1x 1x 0x -USER(		strnebt	r2, [r0], #1) -USER(		strnebt	r2, [r0], #1) +		strusr	r2, r0, 1, ne, rept=2  		tst	r1, #1			@ x1 x0 x1 x0 x1 x0 x1 +		it	ne			@ explicit IT needed for the label  USER(		strnebt	r2, [r0])  		mov	r0, #0  		ldmfd	sp!, {r1, pc}  |